Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Aide pour un script ! SVP, aidez-moi ! J'en dors plus !

Par Mel Ethybem le 26/12/2002 à 23:29:52 (#2885095)

Bonjour à tous !
Cela ne fait pas tellement longtemps que je chipote sur le toolset Aurora et j'ai un petit problème de script. Je vous explique :

Dans un dialogue j'ai créé un noeud qui ne passe qu'une fois (le personnage se présente) : avec les variables locales 'nFirstTimeTalked' en '1' j'y suis arrivé (bien que ça déconne de temps en temps, mais bon :maboule: pas grave). Mais je n'arrive pas à refaire la même chose avec un deuxième personnage !! Comment faire pour assigner un script de "phrase unique" à plusieurs personnes ?? C'est à dire que je refais l'étape du script 'nFirstTimeTalked' au deuxième personnage, je lance le jeu pour tester, et là le deuxième personnage fonctionne bien, mais le premier ne le fait plus ! Le nom de mes scripts sont bien tous différent. Est-ce normal ? Dites-moi tout ce qui vous passe par la tête à ce sujet. Merci d'avance !

Mel Ethybem

Par coolstar le 26/12/2002 à 23:36:41 (#2885147)

Normal! Il faut mettre un nom de Variable (sVarName!) différent pour chaque cas... car la Valeur (iValue!) ECRASE systématiquement celle qui précède pour une même Variable... :D

;)

Par Jaha Effect le 26/12/2002 à 23:39:15 (#2885169)

Tu dois changer le nom de ta variable local, et pas utiliser la même :)

Jaha Effect :D

Par Mel Ethybem le 26/12/2002 à 23:39:56 (#2885172)

C'est cool que tu ais répondu aussi vite, mais je suis une "pine" en programation --> je ne sais pas si c'est en rapport avec la remarque que tu as faite. Ecoute, j'ai donné le nom de 'nFirstTimeTalked' en '1' à mon script (j'ai trouvé ça sur un tutorial en fait). Qu'est ce que je dois changé alors ?

Par coolstar le 26/12/2002 à 23:42:25 (#2885195)


// Set oObject's local integer variable sVarName to nValue
void SetLocalInt(object oObject, string sVarName, int nValue)


C'est le 'string sVarName' qui doit être chaque fois différent, pour chaque nouveau cas... :rolleyes:

...

Par Mastokk le 26/12/2002 à 23:45:22 (#2885225)

Alors si j'ai bien compris, ton problème n'est pas dur à résoudre.
je vais ré-exposer ton problème pour être certain de l'avoir compris:
Tu as 2 NPC (non Player Character ; Personnage non joueur), et tu leur fais dire un dialogue. Seulement tu veux que ce dialogue n'apparaisse qu'une seule fois. Pour faire ça, tu as créé une variable locale appelée "nFirstTimeTalked" que tu mets à 1.
Ton problème est qu'une fois qu'un PC (Player Character ; Personnage joueur) a parlé au premier NPC, il ne peut pas avoir la phrase du second NPC.

Si ton problème s'expose bien dans ces termes, il vient du fait que tu as la même variable locale pour tes 2 NPC. Ce qui veut dire qu'une fois que le PC à parlé au premier NPC, la variable locale est mise à 1 et donc elle est considérée à 1 aussi sur le 2eme NPC. Pour résoudre ton problème, il suffit donc de donner un nom différent à la variable locale du dialogue de ton second NPC.
Une variable locale n'est pas rattachée à l'objet qui lui a donné une valeur. Tu peux y faire référence n'importe où sur ton module. C'est pour ça que le dialogue ne s'affiche pas sur le 2eme NPC. Ces variables locales pourront par exemple te permettre de déclencher des dialogues suite à l'arrivée des PC dans une zone qu'ils ne connaissaient pas.

exemple:

Tes PC arrivent dans la ville et ne connaissent rien de la région. Quand ils parlent aux gens, ceux-ci n'ont rien de spécial à leur dire. Les PC explorent un peu et arrivent dans une crypte. Et bien par l'intermédiaire d'une variable locale, tu peux mettre la valeur 1 à la variable "crypte" par exemple et celle-ci déclenchera des possibilités de dialogues avec les NPC en ville, permettant à tes PC de poser des questions sur la crypte :).

Voilà j'espère t'avoir aidé, tu n'as donc qu'à mettre des noms de variables locales différents dans chaque dialogue.


Edit \ Et voilà ce que c'est que d'écrire des tartines, on se fait grillé sur la ligne :D :rolleyes:

Par Jaha Effect le 26/12/2002 à 23:46:01 (#2885228)

"nFirstTimeTalked" est le nom de la variable local que tu utilise sur un PNJ, sur un autre il faut que tu remplace dans le scripte toutes les occurrence "nFirstTimeTalked" par un autre nom.
exemple: avec un pnj qui s'appel Robert appel ta variable local "RobertFTTalk" le tout est que tu t'y retrouve. :D

Jaha Effect :D

Par coolstar le 26/12/2002 à 23:48:27 (#2885241)

Pourquoi vous faites rien que de tartiner les mêmes choses?? :D

Par Mel Ethybem le 26/12/2002 à 23:49:44 (#2885247)

Je vous remercie tous !

Je crois que mon problème est résolu. En fin de compte, c'est très logique. Si, j'ai encore des choses à dire, je n'hésite pas à revenir. On se verra peut-être un jour sur mon module :mdr: ! looool

Mel Ethybem

Par Jaha Effect le 26/12/2002 à 23:50:14 (#2885250)

Provient du message de coolstar
Pourquoi vous faites rien que de tartiner les mêmes choses?? :D


PARCE QUE !!! :D

Jaha Effect :D

Par Mel Ethybem le 26/12/2002 à 23:50:28 (#2885253)

Provient du message de coolstar
Pourquoi vous faites rien que de tartiner les mêmes choses?? :D


Que veux-tu dire ?

Par coolstar le 26/12/2002 à 23:50:48 (#2885255)

C'est pour Mastokk et Jaha! :D


;)

Par Mel Ethybem le 26/12/2002 à 23:52:53 (#2885270)

OK, pas de prob' ! Encore merci pour votre aide... :D

Par Mastokk le 26/12/2002 à 23:55:49 (#2885294)

Provient du message de coolstar
Pourquoi vous faites rien que de tartiner les mêmes choses?? :D


Parce que les tartines c'est bon ! :D

Par Jaha Effect le 26/12/2002 à 23:56:25 (#2885299)

Provient du message de coolstar
C'est pour Mastokk et Jaha! :D


;)


Gna gna gna :p

Jaha Effect :D

Par Mastokk le 26/12/2002 à 23:58:03 (#2885313)

Provient du message de Jaha Effect
Gna gna gna :p

Jaha Effect :D



Fast fast fast ? :p

JOL Archives 1.0.1
@ JOL / JeuxOnLine