FLAG
-
- Posts: 59
- Joined: Tue Apr 08, 2003 2:00 am
- Location: Rennes
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...
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...
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 ?
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 ?
-
- Posts: 59
- Joined: Tue Apr 08, 2003 2:00 am
- Location: Rennes
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
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
-
- Chasseur de ténèbres
- Posts: 1029
- Joined: Tue Jan 08, 2002 1:00 am
- Location: Bordeaux
- Contact:
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
Aides à la création de modules