FLAG

Aides pour les développeurs de mods (scénarios)
Post Reply
Mr Mick
Posts: 331
Joined: Sun Dec 28, 2003 1:00 am
Location: au milieu des champs beaucerons

Post by Mr Mick »

Quelqu'un pourrait-il expliquer, au moins les bases, du fonctionnement des flags ?

Le Jedi Fou
Posts: 59
Joined: Tue Apr 08, 2003 2:00 am
Location: Rennes

Post by Le Jedi Fou »

Alors les flags ont 2 états : 1 et 0.
Tu as un certain nombre de flags attachés au joueur (et qui doivent être surtout utilisés pour le multijoueur afin de mettre différentes choses sur chaque joueur), et un certain autre nombre de "Global Flags" qui sont accessibles partout.
A la base, tu dois faire en sorte qu'une action passe un Global Flag de l'état 1 à l'état 0 (ou inversement).
Puis cela te servira plus tard pour une condition.

Exemple : dans un dialogue, tu dis au NPC Aline une insulte. Sur cette ligne de dialogue tu as ajouté en Resultat que le Global Flag 5 passait à 1.
Ensuite tu vas parler au NPC Maurice, le père d'Aline dans le scénario. Tu peux rajouter un test pour un dialogue afin que la ligne ne s'affiche que si le Global Flag 5 est à 1, c'est à dire uniquement si tu as insulté le NPC Aline. Ainsi tu pourras dire "J'ai insulté ta fille, cette grosse truie". Mais tant que tu n'as pas insulté Aline, ce choix de dialogue ne s'affichera pas.

Et bien entendu tu peux te servir des Flags pour plein d'autres choses : pour des quetes, pour des réputations, pour l'apparition d'un personnage, pour faire évoluer ton scénario, etc...

Mr Mick
Posts: 331
Joined: Sun Dec 28, 2003 1:00 am
Location: au milieu des champs beaucerons

Post by Mr Mick »

Une fois de plus, merci au Jedi d'avoir défendu ma paix intellectuelle :). Cela dit, là, c'est vraiment les bases, et j'aimerais finir ma formation asssez rapidement (Obi Wan va pas être comptent) :) . Tu ne pourrais pas "m'enseigner" un (ou même deux) exemple(s) d'utilisation.
Les flags ne s'utilisent-ils que dans les dialogues ? Il m'a semblé en voir également dans certains scripts.
Il suffit de créer un flag dans un dialogue pour le rendre opérationnel ? Il n'y a rien d'autre à faire ? Les flags s'enchaîneraient-ils les uns aux autres (de dialogue en dialogue) de cette façon ?

Le Jedi Fou
Posts: 59
Joined: Tue Apr 08, 2003 2:00 am
Location: Rennes

Post by Le Jedi Fou »

Ok alors voilà un exemple de dialogue utilisant un Global Flag.

Donc d'abord tu vas dans le répertoire semes de ton module et là tu as le fichier globalflags.mes auquel tu rajoutes la ligne
{1}{insulte a Aline}

Tu fais un dialogue avec Aline
{1}{Bonjour, je suis Aline.}{Bonjour, je suis Aline.}{}{}{}{}
{2}{Rien à foutre de ta vie grosse truie.}{}{1}{}{0}{gf 1 1}
{3}{Ok. A bientot.}{}{1}{}{0}{}

Donc quand tu l'insultes, tu changes le Global Flag 1 à 1, tu l'actives quoi (1 = on, 0 = off).

Ensuite un dialogue avec Maurice, le père. Tu as 2 solutions, la meilleure étant de passer par un script pour amorcer le dialogue avec le père. Donc édite le script 00002Maurice.scr

0. If Global Flag 1 is set
THEN dialog 50
ELSE dialog 1
1. Return and SKIP default

Ce qui veut dire que si le Global Flag 1 est activé (mis sur 1), c'est à dire si tu as insulté Aline, alors le dialogue avec Maurice commence à la ligne 50. Par contre si tu n'as pas insulté Aline, le Global Flag 1 n'est pas activé, et dans ce cas le dialogue avec Maurice commence à la ligne 1.

Editons le dialogue de Maurice

{1}{Salut toi! Tu m'as l'air d'un garçon fort sympathique.}{Bonjour mademoiselle, vous m'avez l'air charmante.}{}{}{}{}
{2}{Sacré Maurice, toujours à faire des compliments}{}{1}{}{0}{}

{50}{Dis donc, c'est toi qui insultes ma fille Aline? Tu mérites une correction!}{Garce! Ma fille m'a raconté comment vous l'avez insultée. Je ne suis pas du genre à me battre avec une femme, mais avec vous je ferai une exception.}{}{}{}{}
{51}{Je vous prie de m'excuser monsieur Maurice! J'avais pris votre fille pour quelqu'un d'autre.}{}{1}{}{0}{gf 1 0}
{52}{Apparement le père a l'air encore plus con que la fille. Allez viens là mon gros, tu vas recevoir la trempe de ta vie}{}{1}{}{0}{co}

Et voilà. Donc si tu as insulté Aline avant de parler à Maurice, le dialogue commencera à la ligne 50. Là tu as 2 choix : soit tu t'excuses (ligne 51) et le Global Flag 1 repasse à 0, comme ça à la prochaine discussion Maurice ne t'en voudra plus; soit tu en remets une couche et tu te bats avec Maurice :)

Voilà c'est l'un des multiples exemples d'utilisation du Global Flag. Et il y a d'autres façons de gérer la situation que je viens de décrire.
Si jamais un moddeur expérimenté voit une faute dans mon exemple, n'hésitez pas à la signaler :D

triblonto
Chasseur de ténèbres
Chasseur de ténèbres
Posts: 1029
Joined: Tue Jan 08, 2002 1:00 am
Location: Bordeaux
Contact:

Post by triblonto »

M. Mick : ne doubles pas toujours tes questions en messages privés et messages déposés sur le forum. J'aurais pu te répondre ici, avant de t'envoyer ma réponse en message privé.
http://arcanumlab.free.fr
Aides à la création de modules

Mr Mick
Posts: 331
Joined: Sun Dec 28, 2003 1:00 am
Location: au milieu des champs beaucerons

Post by Mr Mick »

Merci une fois de plus à toi, brave guerrier Jedi, ton aide, combinée à celle de Triblonto, me permet d'avancer dans la réalisation de mon module. J'espère ne pas finir par te gonfler avec mes questions, et pouvoir compter encore sur ton "coup de main" si nécessaire.
A plus.

Mr Mick
Posts: 331
Joined: Sun Dec 28, 2003 1:00 am
Location: au milieu des champs beaucerons

Post by Mr Mick »

Excuse-moi TRIBLONTO, mais comme je te l'ai dis en privé, plus on m'en dit, plus j'avance...
Maintenant, je commencerai par le forum "public"... C'est vrai que ça permet de servir à plus de monde.

Post Reply