[DLG] Problème avec la commande INTERJECT
Posté : lun. 01 oct. 2012, 09:52
Comme certains le savent peut être je ne jure que par la commande CHAIN. Je la met sur tous mes dialogues car il me permet de rajouter des interventions d'autres persos facilement tout en m’économisant beaucoup de code.
Cependant dans les cas présent ça m'a posé quelques soucis pour la simple et bonne raison qu'il y a un domaine où il est impossible d'utiliser un CHAIN c'est à dire à l'intérieur d'un append. Et en l’occurrence je me trouve dans le seul cas ou je suis obligé d'en utiliser un à savoir à l'intérieur d'un player1 (pour faire parler Charname). Étant dans un cas figure ou mon fichier comprend un certain nombres de dlg j'ai fini par mettre mon append en début de fichier pour éviter les incohérence du type "ce bloc n'existe pas". Un petit exemple pour vous faire une idée :
Voila. Ayant l'intention de rajouter du texte sur le bloc nommé "SANG" j'ai rajouté un INTERJECT dans le d :
J'utilise ici la commande INTERJECT et non INTERJECT_COPY_TRANS car il me renvoie une erreur : il ne semble pas trouver le state correspondant. A la compilation ça marche mais ingame le bloc se coupe à la fin de la réplique de Korgan alors que Aerie est dans le groupe et qui plus est le bloc ne me renvoie pas sur "SANG02".
Je cale donc un peu sur ce bloc, je vois pas trop ce qui le fait planter en fait. Si vous avez des idées, je prend parce qu’après 90 minutes de test non stop je bloque (je bloque sur un bloc ahaha ! Désolé... )
Cependant dans les cas présent ça m'a posé quelques soucis pour la simple et bonne raison qu'il y a un domaine où il est impossible d'utiliser un CHAIN c'est à dire à l'intérieur d'un append. Et en l’occurrence je me trouve dans le seul cas ou je suis obligé d'en utiliser un à savoir à l'intérieur d'un player1 (pour faire parler Charname). Étant dans un cas figure ou mon fichier comprend un certain nombres de dlg j'ai fini par mettre mon append en début de fichier pour éviter les incohérence du type "ce bloc n'existe pas". Un petit exemple pour vous faire une idée :
Code : Tout sélectionner
BEGIN ~#VAngh~
BEGIN ~#VRat~
BEGIN ~#VMyri~
BEGIN ~#VGard03~
BEGIN ~#VGard04~
BEGIN ~#VMonk6~
BEGIN ~#VMonk7~
BEGIN ~#VMonk8~
BEGIN ~#VMonk9~
BEGIN ~#VMonk10~
BEGIN ~#VMonk11~
BEGIN ~#VMonk12~
BEGIN ~#VMonk13~
BEGIN ~#VJack~
BEGIN ~#VElen~
// On colle les append au début pour zapper les problèmes de fichiers inexistants
APPEND ~Player1~
IF ~Global("#VElenspeak","#V7000",1)~ THEN BEGIN RencontreElenna
SAY @243001
IF ~~ THEN EXTERN ~#VElen~ ELLENALASANGLANTE
END
IF ~~ THEN BEGIN SANG
SAY @243023
IF ~~ THEN EXTERN ~Player1~ SANG02
END
IF ~~ THEN BEGIN SANG02
SAY @243024
IF ~~ THEN EXIT
END
Code : Tout sélectionner
// BOURREAU
CHAIN IF ~~ THEN "#VElen" BOURREAU
@243022
END
IF ~~ THEN EXTERN ~Player1~ SANG
INTERJECT PLAYER1 SANG SANGBIS
== KORGANJ IF ~InParty("Korgan")~ THEN @243125
== MAZZYJ IF ~InParty("Mazzy")~ THEN @243126
== KELDORJ IF ~InParty("Keldorn")~ THEN @243127
== EDWINJ IF ~InParty("Keldorn")~ THEN @243128
== VALYGARJ IF ~InParty("Valygar")~ THEN @243129
== NALIAJ IF ~InParty("Nalia")InParty("Valygar") ~ THEN @243130
== VALYGARJ IF ~InParty("Nalia")InParty("Valygar") ~ THEN @243131
== AERIE IF ~InParty("Aerie")~ THEN @243132
END PLAYER1 SANG02
Je cale donc un peu sur ce bloc, je vois pas trop ce qui le fait planter en fait. Si vous avez des idées, je prend parce qu’après 90 minutes de test non stop je bloque (je bloque sur un bloc ahaha ! Désolé... )