Page 1 sur 2
[BG TCD] Création d'un fichier .D et .TRA de base à partir d'un texte
Posté : lun. 20 juin 2016, 23:15
par Cocrane
BG TCD: Baldur's gate Texte conversion Dialogue
Mise à jour du 05/03/2017
Voici un outil simple qui a pour but de transformer vôtre dialogue (fichier .TXT) en fichier de base .D et .TRA.
Principe de fonctionnement
- le programme gère les dialogues entre deux ou plusieurs personnes.
- une phrase commence par le nom du personnage qui parle entre crochets.
Exemple:
[Elvira] Bonjour, comment ca va?
- Si le personnage qui parle est un membre du groupe son nom est "PC" pour "Player Character"
- Si une nouvelle personne parle, on change de ligne.
- Si la nouvelle phrase est une réponse à la précédente, on ajoute une tabulation avant d'écrire le texte.
Exemple:
[Elvira] Bonjour, comment ca va?
(1 Tabulation)[Luncida] Bien, j'espère qu'ils vont comprendre!
- les lignes vides sont acceptées. (facilite la lecture)
- En cas de réponses multiples possibles, il faut respecter le même nombre de tabulations pour chaque réponse.
Exemple:
[Elvira] Bonjour, comment ca va?
(1 Tabulation)[Luncida] Bien, j'espère qu'ils vont comprendre!
<Tabulation 1><Tabulation 2>[PC] Pas d'inquiétudes, je capte tout!
<Tabulation 1><Tabulation 2><Tabulation 3>[Elvina] Génial, on va pouvoir continuer.
<Tabulation 1><Tabulation 2>[PC] Arf, je comprends rien à ton histoire de tabulation...
<Tabulation 1><Tabulation 2><Tabulation 3>[Elvina] Pas grave, relis depuis le début! :-)
-Si une discussion est terminée, la suivante commence sans tabulation.
Exemple:
// Discussion 1
[Elvira] Bonjour, comment ca va?
(1 Tabulation)[Luncida] Bien, j'espère qu'ils vont comprendre!
<Tabulation 1><Tabulation 2>[PC] Pas d'inquiétudes, je capte tout!
<Tabulation 1><Tabulation 2><Tabulation 3>[Elvina] Génial, on va pouvoir continuer.
<Tabulation 1><Tabulation 2>[PC] Arf, je comprends rien à ton histoire de tabulation...
<Tabulation 1><Tabulation 2><Tabulation 3>[Elvina] Pas grave, relis depuis le début! :-)
// Discussion 2
[Luncida] Une fois qu'on a capté le principe, on est plus contrait d'écrire, les BEGIN IF THEN END et les CHAIN IF, ca se fait tout seul!
- les mots-clés suivants sont gérés
BEGIN
IF THEN ... END
CHAIN IF THEN ... END IF tHEN ...
APPEND
SAY
REPLY
GOTO
EXTERN
EXIT
- Les conditions et autres mots clés seront donc à ajouter après génération du fichier .D. La structure étant là, il reste à la compléter.
- Les commentaires de type // ou /* */ ne sont pas gérés.
- La gestion du son n'a pas été testée. (nom du fichier son entre crochet à la fin de la ligne).
- La gestion du sexe du Pnj n'est pas gérée.
- Le fichier .D et TRA sont créés à l'endroit où est présent le fichier .TXT d'origine avec le même nom. Attention, Si les fichiers existent déjà, ils seront remplacés.
- Le programme ayant besoin de créer quelques fichiers, ils seront générés dans le répertoire C:\TEMP\.
LIEN
Mise à jour 05/03/2017 Ajout de la gestion d'un cas (CHAIN sans réplique d'un [PC])
Mise à jour 15/10/2017 Correction plantage au 1ier démarrage (Merci Faust!)
http://www.mediafire.com/file/cehm8hy54jbvk5d/BG_TCD.exe]
http://www.mediafire.com/file/cehm8hy54 ... BG_TCD.exe[/URL]
Cocrane
Posté : mar. 21 juin 2016, 11:55
par mirandir
Salut,
Merci pour le partage. Par contre, j'avoue avoir du mal à comprendre l'intérêt / la valeur ajouté de l'outil. Peut-être pourrais-tu donner des exemples de fichiers texte avant d'utiliser ton outil et après, pour que ce soit plus clair ?
Posté : mar. 21 juin 2016, 21:11
par Cocrane
Voici un cas concret. (les tabulations ne sont pas prises en compte par le site.) Les fichiers sont en pièces jointes.
Fichier exemple.txt
Code : Tout sélectionner
Qui va là?
C'est une bonne question t'en pense quoi?
J'en penses que si tu continues d'approcher, tu vas te retrouver un joli carreaux en pleinte tête!
T'as vraiment aucun humour... C'est moi <CHARNAME>!
Aucun humour? La prochaine fois, je tire et je poserai la question après.
Quel con! Il peut pas se taire, j'étais venu te tuer inconito!
Dommage pour toi! Arrêtes de bouger, je ne voudrai pas te rater!
Tu raterais une vache dans un couloir gros lard. Tires si tu l'oses!
Regardes autour de toi ducon et sauves toi avant que j'arrive!
C'est <CHARNAME>, je suis venu te remplacer.
C'est pas trop tôt. J'ai cru qu'on allait me laisser mourir de froid!
C'est pas l'envie qui me manquait mais il aurait ensuite fallu que je cache ton cadavre. Et le sol et un bien trop dur!
C'est clair que tu n'as pas les bras pour creuser et le capitaine t'aurait arraché la tête. Bonne garde! (sourire)
Va te rechauffer à l'intérieur, une bonne soupe t'attend!
C'est pas de refus. Et toi gardes bien les yeux ouvert!
Résultat
Fichier Exemple.D
Code : Tout sélectionner
BEGIN ~exemple~
IF ~~ THEN BEGIN 0
SAY @1 /* ~Qui va là?~ */
IF ~~ THEN
REPLY @2 /* ~C'est une bonne question t'en pense quoi?~ */
GOTO 1
IF ~~ THEN
REPLY @3 /* ~Quel con! Il peut pas se taire, j'étais venu te tuer inconito!~ */
GOTO 3
IF ~~ THEN
REPLY @4 /* ~C'est <CHARNAME>, je suis venu te remplacer.~ */
GOTO 4
END
IF ~~ THEN BEGIN 1
SAY @5 /* ~J'en penses que si tu continues d'approcher, tu vas te retrouver un joli carreaux en pleinte tête!~ */
IF ~~ THEN
REPLY @6 /* ~T'as vraiment aucun humour... C'est moi <CHARNAME>!~ */
GOTO 2
END
IF ~~ THEN BEGIN 2
SAY @7 /* ~Aucun humour? La prochaine fois, je tire et je poserai la question après.~ */
IF ~~ THEN
EXIT
END
IF ~~ THEN BEGIN 3
SAY @8 /* ~Dommage pour toi! Arrêtes de bouger, je ne voudrai pas te rater!~ */
IF ~~ THEN
REPLY @9 /* ~Tu raterais une vache dans un couloir gros lard. Tires si tu l'oses!~ */
EXIT
IF ~~ THEN
REPLY @10 /* ~Regardes autour de toi ducon et sauves toi avant que j'arrive!~ */
EXIT
END
IF ~~ THEN BEGIN 4
SAY @11 /* ~C'est pas trop tôt. J'ai cru qu'on allait me laisser mourir de froid!~ */
IF ~~ THEN
REPLY @12 /* ~C'est pas l'envie qui me manquait mais il aurait ensuite fallu que je cache ton cadavre. Et le sol et un bien trop dur!~ */
GOTO 5
IF ~~ THEN
REPLY @13 /* ~Va te rechauffer à l'intérieur, une bonne soupe t'attend!~ */
GOTO 6
END
IF ~~ THEN BEGIN 5
SAY @14 /* ~C'est clair que tu n'as pas les bras pour creuser et le capitaine t'aurait arraché la tête. Bonne garde! (sourire)~ */
IF ~~ THEN
EXIT
END
IF ~~ THEN BEGIN 6
SAY @15 /* ~C'est pas de refus. Et toi gardes bien les yeux ouvert!~ */
IF ~~ THEN
EXIT
END
Fichier exemple.TRA
@1=~Qui va là?~
@2=~C'est une bonne question t'en pense quoi?~
@3=~Quel con! Il peut pas se taire, j'étais venu te tuer inconito!~
@4=~C'est <CHARNAME>, je suis venu te remplacer.~
@5=~J'en penses que si tu continues d'approcher, tu vas te retrouver un joli carreaux en pleinte tête!~
@6=~T'as vraiment aucun humour... C'est moi <CHARNAME>!~
@7=~Aucun humour? La prochaine fois, je tire et je poserai la question après.~
@8=~Dommage pour toi! Arrêtes de bouger, je ne voudrai pas te rater!~
@9=~Tu raterai une vache dans un couloir gros lard. Tires si tu l'oses!~
@10=~Regardes autour de toi ducon et sauves toi avant que j'arrive!~
@11=~C'est pas trop tôt. J'ai cru qu'on allait me laisser mourir de froid!~
@12=~C'est pas l'envie qui me manquait mais il aurait ensuite fallu que je cache ton cadavre. Et le sol et un bien trop dur!~
@13=~Va te rechauffer à l'intérieur, une bonne soupe t'attend!~
@14=~C'est clair que tu n'as pas les bras pour creuser et le capitaine t'aurait arraché la tête. Bonne garde! (sourire)~
@15=~C'est pas de refus. Et toi gardes bien les yeux ouvert!~
Édit de Freddy : seule la balise
Posté : mar. 21 juin 2016, 21:15
par Cocrane
Voici les pièces jointes.
Cocrane
Posté : jeu. 23 juin 2016, 06:48
par Freddy_Gwendo
Intéressant pour écrire rapidement des dialogues simples.
Dommage que ça ne gère pas les dialogues à plusieurs intervenants... Pourtant les plus nombreux et les plus ch.... à coder.
Édit : j'ai mis en page ton message d'exemple pour faire ressortir les tabulations.
Posté : jeu. 23 juin 2016, 19:20
par Cocrane
Pour les dialogues à plusieurs, je ne suis pas contre le développer quelque chose.
Il faut trouver une logique simple afin de pouvoir rester dans l'esprit, j'écris mon dialogue dans un fichier texte tout bête et je le convertis ensuite.
Cocrane
Posté : ven. 24 juin 2016, 06:54
par Freddy_Gwendo
Pour une question de lisibilité, pourrais-tu remplacer ces lignes
Code : Tout sélectionner
IF ~~ THEN
REPLY @2 /* ~C'est une bonne question t'en pense quoi?~ */
GOTO 1
IF ~~ THEN
EXIT
par celles-ci :
Code : Tout sélectionner
IF ~~ THEN REPLY @2 /* ~C'est une bonne question t'en pense quoi?~ */ GOTO 1
IF ~~ THEN EXIT
Posté : ven. 24 juin 2016, 09:56
par Cocrane
Je préfère la notation d'origine pour la lisibilité (normal je l'ai écris comme ça
). Cela permet notamment de voir la succession d'action qui s'enchaine si il y a un 'DO' ligne par ligne. Mais je peux créer une case à cocher pour choisir comment va se présenter le code. Ca permettra de choisir.
Cocrane
Posté : sam. 25 juin 2016, 11:44
par Cocrane
Proposition d'évolution pour traiter un dialogue multi-PNJ
Chaque ligne de dialogue ou changement de PNJ commence par "[nom du PNJ]".
Exemple:
Code : Tout sélectionner
[MASSENA] C'est un serviteur de Cyric, je le reconnais! J'ai comme une envie de tuer!
[EKILIS] Tiens donc un serviteur de Bhaal. Pourquoi servir un dieu qui n'existe plus? Tu es seul sur une route sans avenir mon ami.
Rejoints tes frères et Cyric t'accordera des pouvoirs bien au de là de ce que tu imagines.
[MASSENA] Servir Cyric? Bhaal sera bientôt de retour et Cyric tremblera devant lui!
[EKILIS] Quel gâchis vous ne trouvez pas?
[PC] Entre tuez-vous et on verra qui a raison!
Je ne sais si ca va être simple a adapter dans le code existant mais ça me semble la solution la plus simple au niveau écriture du texte à transformer en .D et .TRA
Cocrane
Posté : sam. 25 juin 2016, 11:50
par Freddy_Gwendo
Ca donnerait à peu près ceci :
Code : Tout sélectionner
CHAIN MASSENA 0
@1 // C'est un serviteur de Cyric, je le reconnais! J'ai comme une envie de tuer!
== EKILIS @2 // Tiens donc un serviteur de Bhaal. Pourquoi servir un dieu qui n'existe plus? Tu es seul sur une route sans avenir mon ami.
== EKILIS @3 // Rejoints tes frères et Cyric t'accordera des pouvoirs bien au de là de ce que tu imagines.
== MASSENA @4 // Servir Cyric? Bhaal sera bientôt de retour et Cyric tremblera devant lui!
== EKILIS @5 // Quel gâchis vous ne trouvez pas?
END
IF ~~ THEN REPLY @5 EXIT // Entre tuez-vous et on verra qui a raison!
Posté : dim. 26 juin 2016, 12:17
par mirandir
Ça serait effectivement assez sympa de pouvoir gérer les dialogues à plusieurs.
Petites questions sur l'outil en lui-même :
- quel(s) encodage(s) (UTF8, ISO-8859-15, ...) et fin(s) de ligne (Unix, Windows) prend-t'il en charge concernant le fichier texte d'entrée ? Et concernant les fichiers de sortie ?
- en quel langage est-il écrit ?
- y a-t-il possibilité de le porter sous d'autres OS (Linux, Mac) ?
Posté : dim. 26 juin 2016, 19:33
par Cocrane
mirandir a écrit :quel(s) encodage(s) (UTF8, ISO-8859-15, ...) et fin(s) de ligne (Unix, Windows) prend-t'il en charge concernant le fichier texte d'entrée ? Et concernant les fichiers de sortie ?
J'ai fait un test avec un fichier texte basique créé avec un notepad. D'après ce que je vois dans la doc, on parle uniquement de UTF08 si on désire effectuer des conversions particulières.
mirandir a écrit :en quel langage est-il écrit ?
Logiciel Windev
mirandir a écrit :y a-t-il possibilité de le porter sous d'autres OS (Linux, Mac) ?
En version 11, on a Windows 32 ou 64 bits et Linux. Je vais regarder ce que propose la version 21 qui est disponible.
Au sujet du CHAIN, pouvez-vous me confirmer que les textes de tous les PNJ doivent se retrouver dans le même fichier TRA?
Cocrane
Posté : dim. 26 juin 2016, 19:46
par Freddy_Gwendo
Cocrane a écrit :
Au sujet du CHAIN, pouvez-vous me confirmer que les textes de tous les PNJ doivent se retrouver dans le même fichier TRA?
Ce n'est pas obligatoire.
Si tous les textes de DLG.D (dialogue1.D, dialogue2.D, dialogue3.D...) sont dans le fichier DLG.tra, alors tu compiles comme ça
Et tous les fichiers de dialogue contenus dans DLG.d seront créés à partir du fichier DLG.TRA.
Sinon, si les textes de DLG.D sont répartis dans des fichiers spécifiques à chaque dialogue à créer, tu compiles comme ceci
Code : Tout sélectionner
COMPILE ~monmod/dialogues/DLG.d~ USING ~monmod/tra/dialogue1.tra~
USING ~monmod/tra/dialogue2.tra~
USING ~monmod/tra/dialogue3.tra~
...
Mais le plus simple, c'est effectivement d'affecter un fichier tra unique par fichier.d à compiler, quelque soit le nombre de fichiers de dialogue que créé fichier.d.
Posté : dim. 26 juin 2016, 20:11
par Cocrane
Ta réponse me donne des éléments mais je vais préciser ma demande pour être sur.
On a un fichier texte où on a un mélange de:
- De répliques entre deux PNJ
- De répliques entre plusieurs PNJ
On lance l'outil BG TCD dans le but de préparer les fichiers au format attendus par WEIDU.
On écrit le TP2 qui va bien et on compile.
Dans ce cadre, je créé:
- un fichier .D et .TRA
OU
- un fichier .D et .TRA par PNJ différent identifié avec le .TRA qui commence à 1 pou chaque fichier.
Dans ce cas, C'est le premier PNJ qui lance une discussion multiple qui porte le CHAIN?
Cocrane
Posté : dim. 26 juin 2016, 20:19
par Freddy_Gwendo
Pour te faciliter la vie, privilégie la solution 1 car la deux ne fonctionnera pas dans nombre de cas.
Tu tombes bien, je suis en train de finaliser mes dialogues de la quête spécifique du kit de chevaucheuse de licorne. Je mets en pièces jointes le début du fichier d générique qui gère plusieurs fichiers.
Ne fais pas attention aux variables utilisées : elles me permettent de gérer les ajouts de mods à des dialogues existants. C'est un cas de dialogues particulier. En revanche, regarde comment sont traités les CHAIN. Ça te donnera une idée.
Préviens moi quand tu l'as téléchargé que je le retire de la discussion (spoiler).
Posté : dim. 26 juin 2016, 21:06
par Cocrane
Téléchargé!
Cocrane
Posté : dim. 26 juin 2016, 21:34
par Freddy_Gwendo
Je n'ai pas testé, mais manifestement ton utilitaire ne gère pas les textes du type
@1 = ~Bonjour monsieur.~ [SON01] ~Bonjour madame.~ [SON02]
Tu le confirmes ?
Posté : dim. 26 juin 2016, 21:39
par Cocrane
Je n'ai pas travaillé sur le féminin / masculin des textes.
Il prend le texte tel qu'il est écrit. Tu avais quoi comme ligne à l'origine?
Cocrane
Posté : dim. 26 juin 2016, 21:45
par Freddy_Gwendo
J'ai pas testé justement : j'attendais ta confirmation.
Mais vu la présentation de ton exemple, je me suis dit que ça ne fonctionnerait pas. Au mieux, il me créerait une ligne de dialogue incluant les deux formes, masculine et féminine.
Posté : dim. 26 juin 2016, 22:05
par Cocrane
Si on part sur une gestion du féminin / masculin, il faut prévoir un séparateur de texte tout en respectant le principe de tout avoir sur la même ligne.
Exemple: "|"
Par contre, si on ajoute la gestion du son avec des [] comme dans le futur codage, il faut que je m'assure qu'il n'y a pas de confusion entre le nom du PNJ et le son.
Cocrane
Posté : sam. 04 févr. 2017, 16:07
par Cocrane
Je viens de retravailler le programme pour qu'il puisse gérer des dialogues Mono et/ou multi PNJ.
Je viens de faire un test mais j'ai une anomalie signalée par WEIDU. (fichier en pièce jointe)
La situation est la suivante:
- 2 PNJ:
Elvina
Luncida
- on a des passages qui donnent un codage
> BLOCK type
IF THEN BEGIN
SAY
Etc...
> BLOCK type
CHAIN IF
@
==
END etc...
Mon problème est à priori le suivant, Weidu reclame un 2nd DLG pour Luncida. Je pensais que l'on pouvait faire un seul fichier .D et .TRA pour plusieurs PNJ. Visiblement j'ai raté un point.
J'ai regardé d'autre fichiers, je ne vois pas où ça coince.
A la base, je n'avais pas mis un APPEND pour Luncida mais un 2nd BEGIN dans le fichier. Du coup, j'ai eu une nouvelle anomalie.
Qu'en pensez vous?
Cocrane
Posté : dim. 05 févr. 2017, 00:11
par Isaya
Tu peux faire un seul fichier D mais, si tu fais intervenir deux personnages, il faudra forcément deux dialogues différentes, donc deux fichiers DLG.
Les BEGIN ~blabla~, APPEND ~blabla~, EXTERN ~blabla~ et enfin le blabla après == dans un CHAIN font référence pour blabla à un dialogue, c'est à dire au terme de l'installation à un fichier DLG qui portera ce nom blabla.DLG, c'est à dire à un vrai fichier pour le jeu et non un fichier D. Le seul moyen d'en créer un, c'est BEGIN et ça doit se faire avant les autres, qui vont chercher si le dialogue existe (soit dans le jeu, soit dans le même fichier D, soit peut-être encore, parce que tu passes plusieurs fichiers D en même temps à l'instruction COMPILE dans un fichier tp2) et vont échouer si ce n'est pas le cas.
Un parcours rapide de ton fichier D confirme qu'il manque un BEGIN ~Luncida~. Il faut impérativement qu'il apparaisse vers le début, avant que tu y fasses référence dans un APPEND, un EXTERN ou un CHAIN. Le plus simple est que tu le mettes au tout début.
Tu peux tout à fait mettre deux BEGIN de dialogues à la suite. Le x#tiaxquest.d du BG1 NPC en enchaîne trois au début.
Une fois le dialogue créé par le BEGIN, tu pourras y faire référence et le remplir, que ce soit avec APPEND (pour coder les EXTERN auxquels tu fais référence) ou pour les CHAIN.
Remarque : j'ai constaté que tu n'avais pas mis de tildes autour de Luncida après les == des CHAIN. Je ne suis pas certain que ça fonctionne bien, j'ai toujours vu des tildes autour des noms de dialogue dans les mods.
Posté : dim. 05 févr. 2017, 20:12
par Cocrane
Salut Isaya,
bonne nouvelle le fichier compile avec les deux corrections signalées:
- ajout d'un BEGIN en début de fichier pour Lucinda.
- ajout des Tildes à chaque référence de Luncida.
Je vais pouvoir proposer cette nouvelle version bientôt.
Merci.
Cocrane
Posté : sam. 25 févr. 2017, 23:00
par Cocrane
Mise à jour à disposition.
Détail dans le 1ier message.
Cocrane
Posté : dim. 05 mars 2017, 10:50
par Cocrane
Posté : dim. 05 mars 2017, 11:43
par Cocrane
J'ai le cas suivant.
Dialogue multi-PNJ:
COMPILE ~PDBA1CH8\DLG\COURGLIT.d~ ~override~ USING ~PDBA1CH8\DLG\COURGLIT.tra~ // Dialogue URglit + Taguar
"
BEGIN ~URGLITE~
BEGIN ~TAGUAR~
CHAIN IF ~~ THEN ~TAGUAR~ 8
@1/* ~Je vais enfin être débarassé de toi... Arghhhh.~ */
== ~URGLITE~ IF ~~ THEN @2/* ~Taguar Nooonnnn!~ */
== ~URGLITE~ IF ~~ THEN @3/* ~=(Elle vous regarde plein de haine) Tout ça, c'est votre FAUTE. Je vous MAUDIT tous!~ */
END IF ~~ THEN EXIT
APPEND ~URGLITE~
CHAIN IF ~~ THEN ~URGLITE~ 9
@14/* ~Taguar! C'est bien toi?~ */
== ~TAGUAR~ IF ~~ THEN @15/* ~Urglite? Ils ont préféré empoisonner le champion de Bhaal que de l'affronter! Tous des lâches et tout est de ta faute!~ */
== ~URGLITE~ IF ~~ THEN @16/* ~Comment oses-tu? Tu préférais la guerre à notre palais. Tu m'as abandonné à tous ces comploteurs!~ */
== ~TAGUAR~ IF ~~ THEN @17/* ~Abandonné? Tu en avais jamais assez. Il fallait toujours plus de richesses et de pouvoir! J'ai fait de toi une grande reine!~ */
== ~URGLITE~ IF ~~ THEN @18/* ~'TA GRANDE REINE', ils l'ont jeté dans un caveau prétextant que j'étais folle et maudite.~ */
== ~URGLITE~ IF ~~ THEN @19/* ~=Je suis morte de froid. TU M'AS TUE!~ */
== ~TAGUAR~ IF ~~ THEN @20/* ~Sale petite ingrate. Même morte, Tu es là à me tourmenter. J'en est ASSEZ de toi! Je vais te détruire!~ */
END IF ~~ THEN EXIT
CHAIN IF ~~ THEN ~URGLITE~ 10
@22/* ~=(urglite tend la main vers Taguar) Je voulais juste être avec toi...~ */
== ~TAGUAR~ IF ~~ THEN @23/* ~Tu as été mon plus grand fléau. Disparait maintenant!~ */
END IF ~~ THEN EXIT
END
"
A la compilation, le 1ier CHAIN IF de Urglite est annoncé "erreur de syntaxe". J'inverse URGLITE ET TAGUAR. C'est TAGUAR qui est en erreur de syntaxe.
On ne peut pas avoir des CHAIN pour des personnes différents dans un même fichier multi PNJ?
Posté : dim. 05 mars 2017, 12:08
par Freddy_Gwendo
Quand tu utilises des CHAIN sur plusieurs fichiers, tu ne dois pas utiliser de APPEND. Les deux BEGIN du début suffisent.
Posté : dim. 05 mars 2017, 12:31
par Isaya
Comme CHAIN oblige à préciser le dialogue concerné, tu peux considérer que le APPEND est intégré dans la commande.
Par ailleurs, lorsque tu fais parler deux fois de suite le même personnage :
Cocrane a écrit :
CHAIN IF ~~ THEN ~TAGUAR~ 8
@1/* ~Je vais enfin être débarassé de toi... Arghhhh.~ */
== ~URGLITE~ IF ~~ THEN @2/* ~Taguar Nooonnnn!~ */
== ~URGLITE~ IF ~~ THEN @3/* ~=(Elle vous regarde plein de haine) Tout ça, c'est votre FAUTE. Je vous MAUDIT tous!~ */
END IF ~~ THEN EXIT
tu n'es pas obligé de répéter le nom du dialogue ; avec le symbole = (unique), tu indiques qu'il s'agit d'une autre réplique du même personnage qu'avant. De même, s'il n'y a pas de condition, tu peux te passer du IF.
Code : Tout sélectionner
CHAIN IF ~~ THEN ~TAGUAR~ 8
@1/* ~Je vais enfin être débarassé de toi... Arghhhh.~ */
== ~URGLITE~ @2/* ~Taguar Nooonnnn !~ */
= @3/* ~=(Elle vous regarde plein de haine) Tout ça, c'est votre FAUTE. Je vous MAUDIS tous !~ */
END IF ~~ THEN EXIT
Cocrane a écrit :On ne peut pas avoir des CHAIN pour des personnes différents dans un même fichier multi PNJ?
Au contraire, si tu veux que le CHAIN fonctionne avec deux PNJ ajoutés par ton mod, il te faut soit compiler le fichier .d qui effectue le BEGIN de l'autre dialogue AVANT (dans le tp2) celui qui fait le BEGIN du second dialogue et les CHAIN, soit tout mettre dans le même fichier .d.
Posté : dim. 05 mars 2017, 20:26
par Cocrane
Merci pour vos retours.
Mon fichier est corrigé et ça marche.
Je ferai évoluer l'outil pour tenir compte de vos remarques.
Cocrane
Posté : sam. 14 oct. 2017, 11:51
par Cocrane
En pièces jointes, un exemple de dialogue à 3.
Cocrane