Page 1 sur 1

[DLG] Bloqué, dialogue suivant ne se lance pas

Posté : jeu. 05 avr. 2018, 11:42
par Faust
Bonjour,


Après avoir réussi à intégrer mon dialogue de recrutement à mon PNJ, je n'arrive pas à lancer le second dialogue qui devrait se déclencher après un événement.

Le PNJ doit parler à CHARNAME après avoir récupéré un objet lâché par un monstre. Le trigger s'active mais aucune fenêtre de dialogue apparaît, le PNJ se tourne vers CHARNAME, rien d'autre ne se passe.

Voici les fichiers impliqués:

Elrn.D
► Afficher le texte



El[r]in.BCS
► Afficher le texte


El[r]inJ.D

► Afficher le texte


Voici la partie du fichier TP2 concernée pour la liaison du fichiers .D avec le personnage:
► Afficher le texte




Merci pour vos lumières.

Posté : jeu. 05 avr. 2018, 11:56
par Freddy_Gwendo
Je n'ai jamais travaillé sur les NPC, mais je sais que leurs fichiers de dialogue répondent à une règle bien précise. Si la death variable de ton NPC est NAME,

NAMEP = dialogues avant de le recruter (et/ou lorsque tu le vires du groupe).
NAMEJ = dialogues lorsqu'il fait partie du groupe.
BNAME = banters

Lorsque NAME rejoint le groupe, son dialogue NAMEP est désactivé et remplacé par NAMEJ. C'est sans doute ce qui se passe quand le script de ton NPC lui ordonne de parler, mais il n'a rien à dire s'il ne trouve pas NAMEJ.dlg.

De mémoire, il me semble que le tuto sur les NPC explique ce processus. ;)


Edit :

Par ailleurs, ton script établit la variable Global("HireEl[r]in","GLOBAL",3), alors que le dialogue utilise celle-ci : Global("El[H]ire","GLOBAL",3)

Posté : jeu. 05 avr. 2018, 12:25
par Faust
Freddy_Gwendo a écrit :Je n'ai jamais travaillé sur les NPC, mais je sais que leurs fichiers de dialogue répondent à une règle bien précise. Si la death variable de ton NPC est NAME,

NAMEP = dialogues avant de le recruter (et/ou lorsque tu le vires du groupe).
NAMEJ = dialogues lorsqu'il fait partie du groupe.
BNAME = banters

Lorsque NAME rejoint le groupe, son dialogue NAMEP est désactivé et remplacé par NAMEJ. C'est sans doute ce qui se passe quand le script de ton NPC lui ordonne de parler, mais il n'a rien à dire s'il ne trouve pas NAMEJ.dlg.

De mémoire, il me semble que le tuto sur les NPC explique ce processus. ;)


Edit :

Par ailleurs, ton script établit la variable Global("HireEl[r]in","GLOBAL",3),alors que le dialogue utilise celle-ci : Global("El[H]ire","GLOBAL",3)

En fait j'avais regardé le TUTO (lacouronne/guides-tutoriels/15077-tutor ... ement.html), Isaya avait parlé de :
- le fichier xxxP.DLG contient habituellement les répliques de sortie du groupe mais aussi ceux pour le réintégrer ;

- le fichier xxxJ.DLG (J pour joined probablement) contient généralement les répliques du personnage quand il est dans le groupe (dialogue avec le personnage principal, intervention avec un personnage extérieur au groupe, notamment) ;
- le fichier xxxB.DLG (B pour banter, bavardage) contient les échanges avec les autres personnages du groupe (hors personnage principal, sauf s'il est appelé à intervenir, comme dans les querelles de romance) "
;Ah oui, boulette sur le GLOBAL, c'est peut-être ça du coup.

EDIT:

La modification du global ne change rien, je vais vérifier que le fichier El[r] inJ existe bien. Pourtant j'y ai bien enregistré un script et comme le script du PNJ le cible bien ça devrait fonctionner.

Sinon j'essayerai avec les autres fichiers .D comme tu m'as conseillé.

EDIT2: Bon le problème était que je me gardais BG2 ouvert après désinstallation et réinstallation de mon module, je me contentais de charger la sauvegarde se trouvant avant le début du module. J'imagine que le fichier .DLG ne pouvait pas se mettre à jour à cause de ça. Et je te confirme Freddy que c'est bien le fichier El[r]inJ qui est pris en compte maintenant!

A part ça la seule chose que j'ai changé dans le script du personnage est:

StartDialogueNoSet([PC])

Merci!