Les messages

Écrit le 28/11/2003 par squintik
Dernière mise à jour : 30/01/2006

Introduction

L'affichage de messages pendant votre map est quelque chose de facile mais pas forcément connu de tout le monde.
Ces messages peuvent servir à faire des dialogues (pour une map solo) ou juste pour mettre un petit message comme quoi c'est vous qui avez fait cette map. C'est plus simple à faire que des sons... et vous pouvez aussi mettre les 2 ensembles.
Pour des maps ou des mods solo c'est quasiment indispensable. (vous pouvez aussi vous en servir pour les titres des chapitres)
Pour pouvoir afficher un message, vous avez besoin d'une de ces 2 entités :
env_message ou game_text
Pour la première il faut aussi modifier le titles.txt.

Choix de l'entité

Donc, comme je l'ai dit dans l'intro, il y a 2 entités qui permettent d'afficher un message.
Chacun a ses avantages et ses inconvénients et le choix dépend donc de ce que vous voulez faire.
- L'entité env_message vous oblige à fournir le titles.txt avec votre map (car c'est dans ce fichier que vous définirez le message).
Vous pourrez faire un message de plusieurs lignes, et si vous voulez tester vos messages, vous avez juste à modifier le titles.txt et pas besoin de recompiler la map (c'est toujours ça de gagné).
- L'entité game_text (nouvelle entité) a comme seul avantage de ne pas avoir besoin de fournir votre titles.txt avec votre map.
Par contre, vous ne pouvez pas afficher un message de plus d'1 ligne (70 caractères) et vous devez compiler votre map chaque fois que vous voulez changer le message.
Utilisez-le si vous voulez juste afficher un seul petit message.
Donc dans le tutorial, je décris comment faire pour l'env_message après vous adapterez pour le game_text, c'est exactement pareil.

Le Titles.txt

Kesako ? C'est un fichier situé dans votre répertoire .../Half-Life/valve/ ou dans le répertoire du mod pour lequel vous mappez.
(si vous ne l'avez pas, ouvrez le pak0.pak, avec Packexplorer par exemple, clic droit > extract)
C'est dans ce fichier que vous écrirez votre message et que vous définirez toutes les caractéristiques du message.
Rajoutez ce dont vous avez besoin à la fin du fichier sinon vous n'aurez plus les messages dans HL.
Bon d'abord, on va s'occuper des caractéristiques de votre message.
Je vais prendre un exemple, et j'expliquerai à partir de cet exemple.

//MESSAGES POUR LA MAP BIDULE
$position -1 0.6
$effect 2
$color 0 128 192
$color2 255 0 0
$fxtime 0.2
$fadein 0.03
$fadeout 0.5
$holdtime 1.5

WELCOME
{
Bienvenue sur cette map créée par machin (machin@chose.com).
J'espère que vous apprécierez !
}

Et voilà ce que ça donne :

http://www.game-lab.com/images/tuts/hl1_messages/mess_preview.jpg

Juste avant d'expliquer chaque ligne du titles.txt, je précise juste que quand je parle de surbrillance
c'est pour parler de la couleur rouge de la photo ... c'est à dire la couleur qui passe sur le texte comme un effet de scanner en fait.

//MESSAGES POUR LA MAP BIDULE

C'est un commentaire (grâce aux"//") pour organiser un peu le titles.txt... sinon on s'y pomme facilement.

$position -1 0.6

Cette ligne définit la position de votre message sur l'écran.

$position x y
avec x et y compris entre 0 et 1 ou -1 si vous voulez le centrer.
Dans ce cas, ça donne le message centré horizontalement et plutôt vers le bas.

$effect 2

Pour choisir l'effet voulu : 0 ; 1 ou 2. Testez pour voir ce que ça donne et celui que vous préférez.

$color 0 128 192

Définit la couleur de votre texte : $color r g b (regardez d'abord votre couleur sous Paint ou PSP pour avoir ces valeurs).
Ici c'est un bleu.

$color2 255 0 0

Définit la couleur de la surbrillance (le rouge sur la screen) : $color2 r g b

$fxtime 0.2

Cette ligne définit la durée pendant laquelle reste la surbrillance sur une lettre (en secondes).
Sur la screen, on voit bien que le rouge reste un peu sur les lettres, et disparaît progressivement.
Chaque lettre mettra 0.2 seconde avant de redevenir bleue.

$fadein 0.03

Correspond au temps d'affichage des lettres si l'effet est 0 ou 1 et au temps entre chaque lettre si c'est l'effet 2.

$fadeout 0.5

C'est le temps de disparition des lettres.

$holdtime 1.5

C'est le temps (en secondes) que restera le message après que la surbrillance ait été finie.

WELCOME

C'est le nom de votre message. Les majuscules ne sont pas obligatoires du tout mais je vous le conseille (c'est plus clair).
Faites gaffe de pas prendre le même nom qu'un autre message dans ce titles.txt.

{
Bienvenue sur cette map créée par machin (machin@chose.com).
J'espère que vous apprécierez !
}

C'est votre message. Si vous écrivez sur la même ligne que la première accolade, vous n'aurez rien à l'écran.
Vous devez mettre une accolade, passez à la ligne pour écrire votre message...
Puis, arrivé à la dernière ligne de votre message, passez de nouveau à la ligne pour mettre l'accolade de fin.
Vous ne devez pas mettre plus de 70 caractères par ligne, sinon c'est le caca.
Je ne sais pas s'il y a une limite de lignes, mais c'est pas important parce qu'on peut quand même en faire pas mal,
et évitez les messages trop longs, sinon soit le joueur n'a pas le temps de le lire, soit il n'a pas envie de lire toute une page...
On a plus envie de lire 2 petits messages, qu'un seul long... En tout cas il me semble !

Env_message

Vous avez fini l'essentiel... il reste juste l'env_message et ce sera totalement fini.
Name: ce que vous voulez...
Target: si vous voulez déclencher une entité en même temps que le message, mettez son Name ici.
Message Name: le titre de votre message ; dans l'exemple c'est WELCOME.
Sound Effect: si vous voulez qu'il y ait un son qui accompagne votre message...
Volume: volume du son qui accompagne... entre 0 et 10.
Sound Radius: la zone dans laquelle on entendra le son ( petit, moyen, grand ou partout)

Flags:
Play Once: vous ne pourrez déclencher l'env_message qu'une fois

Conclusion

Bon alors, c'est pas si dur que ça ! Le truc chiant, c'est que si vous ne mappez pas pour un mod, il faut fournir le titles.txt... ou alors il faut utiliser les messages d'Half-Life ...
Bon après, faites vous une map de test vite fait et démerdez vous tout seul pour tester un peu les différentes possibilités.