Page 1 sur 1

[PNJ] Mon PNJ se multiplie à l'infini...

Posté : mer. 22 oct. 2003, 12:30
par Glim
Lorsque j'arrive dans la zone où le PnJ devrait être il se produit plusieurs choses :

1, Le pnj est déjà allié (cercle vert)
2, Dès que j'arrive dans la zone il vient à ma rencontre
3, Après m'avoir parlé une autre est créé et me parle, et ainsi de suite
4, Le dialogue avec Jan s'enclenche presque immédiatement

Pour la 4 cela pourrait venir du fait que Glim est compté allié et donc qu'il doit s'en approcher

Voila le script que j'ai rajouté au quartier du gouvernement:

Code : Tout sélectionner

IF
  Global("GlimExist","AR1000",0)
THEN
  RESPONSE #100
    SetGlobal("GlimExist","AR1000",1)
    CreateCreature("Glim", [9137.2046],3)
END
Une idée?

Posté : mer. 22 oct. 2003, 12:47
par Silk
Peux-tu détailler un peu plus les problèmes rencontrés ? Ce n'est pas très clair... :lunette:

Posté : mer. 22 oct. 2003, 13:53
par Glim
Glim viens à ma rencontre alors qu'il devrait pas et il est compté comme un allié le cercle en dessous est vert se qui fait qu'en s'approchant de moi de là où il est il rencontre Jan. Ensuite arrivé à moi il me parle, vien dans mon groupe(je lui ai mis un script où il me parle puis m'accompagne pour tester) puis un autre apparait,me parle, m'acompagne,ansi de suite en boucle. Il se multipli à l'infini

Posté : mer. 22 oct. 2003, 14:00
par Silk
Tu peux nous donner l'intégralité des scripts associés ? Le dialogue, etc ?

Posté : mer. 22 oct. 2003, 14:39
par Glim

Code : Tout sélectionner

IF
  Global("GlimExist","AR1000",0)
THEN
  RESPONSE #100
    SetGlobal("GlimExist","AR1000",1)
    CreateCreature("Glim", [9137.2046],3)
END
Voici la portion de script rajouté au quartier du gouvernement

Code : Tout sélectionner

BEGIN GlimCouteauvif

IF ~NumTimesTalkedTo(0)~ THEN BEGIN PremiereRencontre
  SAY ~Que voulez-vous?~ 
  IF ~~ THEN DO ~SetGlobal("GlimDansGroupe","LOCALS",1) JoinParty()~ EXIT
END
Et voici le seul dialogue que j'ai associé à la créature, le jeu a généré de lui même en cour de partie un fichier xxxP.DLG

Posté : mer. 22 oct. 2003, 18:35
par Grenouillebleue
Bizarre, bizarre :8:

Personnellement, je dirais:
1, Le pnj est déjà allié (cercle vert)
Regarde dans ton fichier .cre, dans la partie "other attributes", ce que tu as mis dans Enemy/Ally. Tu devrais avoir Neutral.
2, Dès que j'arrive dans la zone il vient à ma rencontre
Tu dois avoir créé un script pour ça, avec quelque chose du genre (en épuré)

Code : Tout sélectionner

IF
  See(player1)
  NumTimesTalkedTo(0)
THEN
  RESPONSE #100
    Dialog(player1)
END
La fonction dialog(playerX) ne se déclenche que si les deux personnages se touchent, donc ton script fait que Glim se dirigera vers toi et ne parlera qu'une fois qu'il sera à côté de toi.

Si tu veux éviter ça, mets Dialogue(Nearest([PC])) à la place, et il parlera à distance
3, Après m'avoir parlé une autre est créé et me parle, et ansi de suite
Peux-tu me faire une copie du script de Glim (son fichier .baf) ?
4, Le dialogue avec Jan s'enclenche presque imédiatement
Quel dialogue avec Jan ? Tu parles d'un banter ? Si c'est le cas, c'est que tu n'as pas créé de timer pour tes banters.

Tu peux par exemple utiliser ça:

Code : Tout sélectionner


// Met le timer en marche

IF
  InParty("Glim") 
  Global("Glimstartbanter","LOCALS",0) 
THEN
    SetGlobal("Glimstartbanter","LOCALS",1) 
    RealSetGlobalTimer("Glimbanter","GLOBAL",600) 
END

// Banter

IF
  Global("Glimstartbanter","LOCALS",1) 
  InParty("Glim")
  InParty("Jan")
  See("Jan")
  !Dead("Jan")
  Global("JANGLIM1","LOCALS",0)
  RealGlobalTimerExpired("Glimbanter","GLOBAL")
THEN
  RESPONSE #100
    SetGlobal("JANGLIM1","LOCALS",1)
    SetGlobal("Glimstartbanter","LOCALS",0)
    StartDialog("BGLIM","Jan")
END

Posté : jeu. 23 oct. 2003, 19:08
par Glim
J'ai oublé de dire que je les mis à l'emplacement test du Tuto, dans le quartier du gouvernement ce qui fait que comme il était allié et qu'il parcourait la moitié de la carte il rencontrait Jan.

Maintenant il est neutre et ne s'approche plus mais il se multiplie toujours.
Tous ce que j'ai indiqué est ce que je lui ai associé

Posté : jeu. 23 oct. 2003, 20:07
par Isaya
As-tu renseigné la "variable de mort" (quelle horreur en français), bref la "death variable" dans le fichier .CRE ? Es-tu certain qu'elle est bien unique ?
Peux-tu vérifier que ta variable GlimExist est bien à 1 (avec la console) ? Si ce n'est pas le cas, c'est que tu as quelque part un script (ou un dialogue) qui la remet à 0.
Sinon, vérifie que ta variable a bien le même nom partout (aux majuscules près). Enfin, vérifie que tu n'as pas tapé par erreur des O (o) à la place de 0 (zéro).

Posté : ven. 24 oct. 2003, 11:07
par Glim
Effectivement je n'avais pas indiqué les mêmes nom de variable, maintenant ça fontionne.

Si personne n'a rien à ajouter, un modérateur peut il fermer le sujet?

Posté : ven. 24 oct. 2003, 13:00
par Silk
Je clos le sujet, toutes les questions ayant trouvé une solution :)