Donc, je travaille actuellement sur l'ajout de Banter a mon NPC, la base pour un bon PJ. Et outre l’écriture des banters, j'ai un petit problème.
Ça ne cause pas.
Grosso modo, les deux personnages Klare et Aerie sont dans mon groupe et tentent de communiquer, en vain. Je reste donc positif mon script doit marché, le problème vient du dialogue.
J'ai voulu séparer les banters a part histoire d’alléger un peu la totalité du texte de Klare. A tout les coup, c'est la source du problème.
Donc voici le morceau du script du NPC qui est chargé de lancer 3 banters avec Aerie :
Code : Tout sélectionner
// Banters //
// Lancement de cette "competance" du NPC
IF
InParty(Myself)
Global("CKBanterON","LOCALS",0) // les banters n'ont pas encore été initiés
THEN
RESPONSE #100
RealSetGlobalTimer("CKBanterTimer","GLOBAL",20) // Lance un timer pour les banters
SetGlobal("CKBanterON","LOCALS",1) // les banters sont initiés
END
//Activation du mode Banter
IF Global("CKmodebanter","GLOBAL",0) // si le mode banter est inactif
RealGlobalTimerExpired("CKBanterTimer","GLOBAL") // le timer est terminer
THEN
RESPONSE #100
SetGlobal("CKmodebanter","GLOBAL",1) // Activation du mode banter
RealSetGlobalTimer("CKBanterTimer","GLOBAL",20) // on relance le timer
END
// AERIE //
// Banter 1
IF
Global("CKmodebanter","GLOBAL",1) // Le mode banter est activé
Global("CKlareAerie","GLOBAL",0) // Aucune discution n'a encore eu lieu
Global("KlareAerieEND","GLOBAL",0) // Banter non fini
CombatCounter(0)
!Detect([ENEMY])
InParty(Myself)
InParty("Aerie") // ~Aerie~
See("Aerie") // ~Aerie~
!Dead("Aerie") // ~Aerie~
THEN
RESPONSE #100
SetGlobal("BCKAerie","GLOBAL",1) // C'est Aerie qui parle avec Klare
ActionOverride("Aerie",StartDialogOverride("BCKlare","CKlare"))// lancement du banter par Aerie
END
// Banter 2
IF
Global("CKmodebanter","GLOBAL",1) // Le mode banter est activé
Global("CKlareAerie","GLOBAL",1) // 1 discution a eu lieu
Global("KlareAerieEND","GLOBAL",0) // Banter non fini
CombatCounter(0)
!Detect([ENEMY])
InParty(Myself)
InParty("Aerie") // ~Aerie~
See("Aerie") // ~Aerie~
!Dead("Aerie") // ~Aerie~
THEN
RESPONSE #100
SetGlobal("BCKAerie","GLOBAL",1) // C'est Aerie qui parle avec Klare
ActionOverride("Aerie",StartDialogOverride("BCKlare","CKlare"))// lancement du banter par Aerie
END
// Banter 3
IF
Global("CKmodebanter","GLOBAL",1) // Le mode banter est activé
Global("CKlareAerie","GLOBAL",2) // 2 discutions ont eu lieu
Global("KlareAerieEND","GLOBAL",0) // Banter non fini
CombatCounter(0)
!Detect([ENEMY])
InParty(Myself)
InParty("Aerie") // ~Aerie~
See("Aerie") // ~Aerie~
!Dead("Aerie") // ~Aerie~
THEN
RESPONSE #100
SetGlobal("BCKAerie","GLOBAL",1) // C'est Aerie qui parle avec Klare
SetGlobal("KlareAerieEND","GLOBAL",1) // Les banters sont terminés
StartDialogOverride("BCKlare","Aerie") // lancement du banter par Klare
END
Code : Tout sélectionner
/* code dialogue :
@00*** Klare
@01*** AERIE */
APPEND CKlareJ
END
// AERIE //
APPEND BAERIE
END
//Banter 1
CHAIN
IF ~Global("CKmodebanter","GLOBAL",1) // Le mode banter est actif
Global("CKlareAerie","GLOBAL",0) // On a pas encore de discution
Global("BCKAerie","GLOBAL",1)~ // C'est Aerie qui parle avec Klare
THEN BAERIE CKlareAerieB1 // Debut banter 1
~Test~
== CKlareJ ~Test~
== BAERIE ~Test~
== CKlareJ ~Test~
== BAERIE ~Test~
END
IF~~ THEN DO ~ SetGlobal("BCKAerie","GLOBAL",0) // Aerie a parlé
SetGlobal("CKlareAerie","GLOBAL",1) // Un banter fait
SetGlobal("CKmodebanter","GLOBAL",0)~ EXIT // mode banter inactif
//Banter 2
CHAIN
IF ~Global("CKmodebanter","GLOBAL",1) // Le mode banter est actif
Global("CKlareAerie","GLOBAL",1) // On a 1 discution
Global("BCKAerie","GLOBAL",1)~ // C'est Aerie qui parle avec Klare
THEN BAERIE CKlareAerieB2 // Debut banter 2
~Test~
== CKlareJ ~Test~
== BAERIE ~Test~
== CKlareJ ~Test~
== BAERIE ~Test~
END
IF~~ THEN DO ~ SetGlobal("BCKAerie","GLOBAL",0) // Aerie a parlé
SetGlobal("CKlareAerie","GLOBAL",2) // Deux banter fait
SetGlobal("CKmodebanter","GLOBAL",0)~ EXIT // mode banter inactif
//Banter 3
CHAIN
IF ~Global("CKmodebanter","GLOBAL",1) // Le mode banter est actif
Global("CKlareAerie","GLOBAL",2) // On a 2 discutions
Global("BCKAerie","GLOBAL",1)~ // C'est Aerie qui parle avec Klare
THEN BAERIE CKlareAerieB3 // Debut banter 3
~Test~
== BAERIE ~Test~
== CKlareJ ~Test~
== BAERIE ~Test~
END
IF~~ THEN DO ~ SetGlobal("BCKAerie","GLOBAL",0) // Aerie a parlé
SetGlobal("CKlareAerie","GLOBAL",3) // Deux banter fait
SetGlobal("CKmodebanter","GLOBAL",0)~ EXIT // mode banter inactif
J'ai bien réfléchi a une magouille pour compiler le BCklare en tête du fichier .D via WeiDU, mais même si ça venait a fonctionner, je n'ai pas de méthode pour pouvoir ajouter le texte, ou je vois pas comment faire.
Reste donc la solution, tout coller dans le fichier de dialogue classique. Mais j'aimerais vraiment éviter
Donc ma question, y a-t-il un moyen de magouiller qui m'a échappé ?