Oyez, oyez !

Les résultats du vote sur les meilleurs RPG de tous les temps sont désormais dévoilés dans ce message !

Merci à toutes et à tous pour votre participation !

N'hésitez pas à aller commenter, ajouter des jeux auxquels vous n'auriez pas pensé...

[DLG] Problème avec la commande INTERJECT

Répondre
Avatar du membre
Armand
Adepte de Grondemarteau
Ours des cavernes
Messages : 1141
Enregistré le : lun. 03 déc. 2007, 22:04
Localisation : Dordogne
Statut : Hors ligne

[DLG] Problème avec la commande INTERJECT

.

Message par Armand »

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 :

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
Voila. Ayant l'intention de rajouter du texte sur le bloc nommé "SANG" j'ai rajouté un INTERJECT dans le d :

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
  
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é... :suicide2: )
http://toutlemondesontrolistes.blogspot ... ation.html
Ancien moddeur pour bg2, critique sur la sphère roliste et gamedesigner en herbe
Avatar du membre
mirandir
Adepte de Grondemarteau
Ver charognard
Messages : 674
Enregistré le : mer. 09 févr. 2011, 10:30
Contact :
Statut : Hors ligne
.

Message par mirandir »

Euh, ça fonctionne ça pour faire parler CHARNAME ??

Code : Tout sélectionner

APPEND ~[B]Player1[/B]~


IF ~Global("#VElenspeak","#V7000",1)~ THEN BEGIN RencontreElenna
SAY @243001
IF ~~ THEN EXTERN ~#VElen~ ELLENALASANGLANTE
END
« Pssst. Tu as remarqué comme elle me dévore du regard ? Hein ? Tu as vu ça ? La façon dont elle a regardé la courbe de mon os occipital ? »
Avatar du membre
Armand
Adepte de Grondemarteau
Ours des cavernes
Messages : 1141
Enregistré le : lun. 03 déc. 2007, 22:04
Localisation : Dordogne
Statut : Hors ligne
.

Message par Armand »

Oui bien sur le problème se situe pas la. Mon append se situe à la fin de mes begin donc pas de souci, après pour les CHAIN le fonctionnement est différent.
http://toutlemondesontrolistes.blogspot ... ation.html
Ancien moddeur pour bg2, critique sur la sphère roliste et gamedesigner en herbe
Avatar du membre
mirandir
Adepte de Grondemarteau
Ver charognard
Messages : 674
Enregistré le : mer. 09 févr. 2011, 10:30
Contact :
Statut : Hors ligne
.

Message par mirandir »

Ok. Eh bien, je savais pas :gign:

Pour ton INTERJECT, il ne manquerait pas un GOTO à la fin par zazard ?
« Pssst. Tu as remarqué comme elle me dévore du regard ? Hein ? Tu as vu ça ? La façon dont elle a regardé la courbe de mon os occipital ? »
Avatar du membre
Armand
Adepte de Grondemarteau
Ours des cavernes
Messages : 1141
Enregistré le : lun. 03 déc. 2007, 22:04
Localisation : Dordogne
Statut : Hors ligne
.

Message par Armand »

Pas si l'on suit les instructions du read me de weidu, la syntaxe est assez particulière en l’occurrence et faut dire que la manip est assez old school donc peu usité. Après peut être que c'est moi qui interprète mal mais de ce que je vois dans les instructions à la suite du END il faut mettre le nom du dlg cible en premier argument suivi du nom du bloc cible.

Aprés de ce que je vois in game l'erreur devrait venir d'ailleurs. Bon aprés si j'avais eu un euro chaque fois que j'ai dit ça... :gign:
http://toutlemondesontrolistes.blogspot ... ation.html
Ancien moddeur pour bg2, critique sur la sphère roliste et gamedesigner en herbe
Avatar du membre
mirandir
Adepte de Grondemarteau
Ver charognard
Messages : 674
Enregistré le : mer. 09 févr. 2011, 10:30
Contact :
Statut : Hors ligne
.

Message par mirandir »

Perso, dans le mod que je suis en train de finaliser, j'utilise des INTERJECT et terminer par GOTO nomdunblocdanslemêmefichierdialogue fonctionne bien.

Mais je suis incapable de me souvenir pourquoi je n'ai pas suivi le readme sur ce coup là.
« Pssst. Tu as remarqué comme elle me dévore du regard ? Hein ? Tu as vu ça ? La façon dont elle a regardé la courbe de mon os occipital ? »
Avatar du membre
Armand
Adepte de Grondemarteau
Ours des cavernes
Messages : 1141
Enregistré le : lun. 03 déc. 2007, 22:04
Localisation : Dordogne
Statut : Hors ligne
.

Message par Armand »

Ben en l’occurrence je suis dans aucun fichier dialogue si ce n'est dans le dlg player1 vu que j'utilise des CHAIN je n'ai pas besoin d'être "dans un fichier". Après je peux toujours essayer de le mettre dans un BEGIN peu importe lequel d’ailleurs. Mais je pense que le problème doit provenir de la particularité du fichier dlg player1.


EDIT : désolé j'avais mal compris ton message je vais essayer avec le GOTO voir...

EDIT 2 : weidu aime pas ça avec le GOTO j'ai eu droit à une syntax error.
http://toutlemondesontrolistes.blogspot ... ation.html
Ancien moddeur pour bg2, critique sur la sphère roliste et gamedesigner en herbe
Avatar du membre
Armand
Adepte de Grondemarteau
Ours des cavernes
Messages : 1141
Enregistré le : lun. 03 déc. 2007, 22:04
Localisation : Dordogne
Statut : Hors ligne
.

Message par Armand »

En fait l'erreur était toute conne, c'est à s'en faire rager tellement c'était simple. Vu qu'ils 'agit d'interjection ici je dois faire référence au fichier dialogue AERIEJ et non AERIE. Un bête oubli qui fait tout planter vu que le fichier dialogue ne correspond pas du tout à la situation. :gign:
http://toutlemondesontrolistes.blogspot ... ation.html
Ancien moddeur pour bg2, critique sur la sphère roliste et gamedesigner en herbe
Répondre

Retourner vers « Dialogues »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités