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] Ajouter une interjection à la fin d'un bloc d'un dialogue existant

Répondre
Avatar du membre
Shinook
Ours des cavernes
Messages : 1102
Enregistré le : mar. 18 mai 2004, 17:12
Localisation : Angers
Contact :
Statut : Hors ligne

[DLG] Ajouter une interjection à la fin d'un bloc d'un dialogue existant

.

Message par Shinook »

J'ai plus ou moins lu le tutorial de Blue sur les banters, et je ne pense pas qu'il y ait une réponse à ma question. Si je veux par exemple ajouter juste une petite intervention à la fin d'un dialogue existant ( par exemple juste avant le combat final contre Irenicus, chaque PNJ a sa petite phrase, et j'aimerais en rajouter une pour quelqu'un d'autre ), comment dois-je faire ?

Avatar du membre
Galathée
Élu de Mystra
Messages : 36360
Enregistré le : mer. 25 août 2004, 15:26
Localisation : Ailleurs
Contact :
Statut : Hors ligne
.

Message par Galathée »

Ce n'est certainement pas la jolie réponse que tu attendais :notme: mais si tu es pressé, je peux toujours te dire que chez Keto, ça ressemble à ça:

Code : Tout sélectionner

EXTEND_BOTTOM PLAYER1 33
IF ~InParty("Keto") !Dead("Keto")
Global("PGKetoKnowsHistory","GLOBAL",1)
Global("PGKetoDidTOLThing","GLOBAL",0)~ THEN DO ~SetGlobal("PGKetoDidTOLThing","GLOBAL",1)~ GOTO P133Keto
IF ~InParty("Keto") !Dead("Keto")
!Global("PGKetoKnowsHistory","GLOBAL",1)
Global("PGKetoDidTOLThing","GLOBAL",0)~ THEN DO ~SetGlobal("PGKetoDidTOLThing","GLOBAL",1)~ GOTO P133KetoNoID
END


APPEND PLAYER1
IF ~~ P133Keto
SAY @2327
++ @2328 EXTERN FWKETOJ tolstorylife2
++ @2329 EXTERN FWKETOJ tolnotcoward2
++ @2330 EXTERN FWKETOJ tolhandlethat2
++ @2331 EXTERN FWKETOJ tolknowid
END

IF ~~ P133KetoNoID
SAY @2332
++ @2328 EXTERN FWKETOJ tolstorylife
++ @2329 EXTERN FWKETOJ tolnotcoward
++ @2330 EXTERN FWKETOJ tolhandlethat
++ @2333 EXTERN FWKETOJ toldeathofall
END

END

APPEND FWKETOJ

IF ~~ tolknowid
SAY @2334 
IF ~~ GOTO tolend
END

IF ~~ tolstorylife2
SAY @2335 
IF ~~ GOTO tolend
END

IF ~~ tolnotcoward2
SAY @2336 
IF ~~ GOTO tolend
END

IF ~~ tolhandlethat2
SAY @2337 
IF ~~ GOTO tolend
END



IF ~~ tolstorylife
SAY @2335 
IF ~~ GOTO tolend
END

IF ~~ tolnotcoward
SAY @2338 
IF ~~ GOTO tolend
END

IF ~~ tolhandlethat
SAY @2339 
IF ~~ GOTO tolend
END

IF ~~ toldeathofall
SAY @2340 
IF ~~ GOTO tolend
END
END



CHAIN FWKETOJ tolend
@2341
= @2342
= @2343
== FWKETOJ IF ~Global("PGKetoKnowsHistory","GLOBAL",1)~ THEN @2344
== FWKETOJ IF ~!G("PGKetoYoshimoBetray",0)~ THEN @2345
= @2346
END
COPY_TRANS PLAYER1 33
Maintenant, bon amusement... ^^

EDIT: ah zut, ça c'est le dialogue de l'arbre, c'est pas ça que tu voulais... Enfin, cela dit, souvent, en regardant dans les scripts des autres persos, on trouve ce qu'on cherche ?
Avatar du membre
Shinook
Ours des cavernes
Messages : 1102
Enregistré le : mar. 18 mai 2004, 17:12
Localisation : Angers
Contact :
Statut : Hors ligne
.

Message par Shinook »

Ben, je sais pas si c'est ça, et je risque pas de trouver, vu que je ne sais pas quelle forme ça doit prendre :notme: .

Avatar du membre
Isaya
Adepte de Grondemarteau
Planaire
Messages : 6990
Enregistré le : mar. 22 juil. 2003, 21:03
Localisation : Plaisir
Contact :
Statut : Hors ligne
.

Message par Isaya »

Comme bien souvent :notme2: , la réponse est dans la documentation !
Jette un coup d'oeil à la doc Weidu (pourquoi chercher ailleurs ? :p ), dans la partie "Tutorials", plus particulièrement celle concernant COPY_TRANS. Le numéro d'état de dialogue 25 correspond au dialogue particulier indiqué dans le tutorial (les enfers, si j'ai bien lu). Il existe d'autres numéros d'états particuliers pour le dialogue de l'arbre de vie et peut-être d'autres encore. Pour plus de précisions, tu peux consulter un autre mod de PNJ car ces états sont normalement référencés dans les fichiers D avec le numéro lui-même au lieu d'un nom.
Tu peux aussi trouver ce numéro en cherchant dans le dialogue d'un PNJ original pour savoir quel est le numéro pour l'intervention en question.
:!: Peu disponible
Guide d'installation (et FAQ) de Baldur's Gate, Baldur's Gate II, Baldur's Gate Trilogy (BGT), BG1Tutu, Widescreen, BGEE
Pensez à utiliser à la fonction Recherche pour trouver une réponse à votre question !
Avatar du membre
Shinook
Ours des cavernes
Messages : 1102
Enregistré le : mar. 18 mai 2004, 17:12
Localisation : Angers
Contact :
Statut : Hors ligne
.

Message par Shinook »

Bon, pour ça, c'est régler et compris, merci à vous deux ;) ( un peu en retard d'ailleurs ). Par contre, j'aurais une autre question. Les fonctions COPY_TRANS, INTERJECT_COPY_TRANS1 et 2, EXTEND_BOTTOM marchent seulement, me semble-t-il, pour un PNJ "dans" le groupe. Or, je voudrais ajouter Flora à côté des 3 dryades dans le Donjon d'Irenicus ( ça c'est fait ), et rajouter des interjections/interventions aux différents dialogues des dryades, qui se passent constamment la parole ( les fichiers IDRYAD1, IDRYAD2 et IDRYAD3 sont les .dlg de chacune des dryades ), AVANT qu'elle n'entre dans le groupe. Je suppose que modifier directement les fichiers ne seraient pas un bon moyen. Comment faire, donc ?

Avatar du membre
Shinook
Ours des cavernes
Messages : 1102
Enregistré le : mar. 18 mai 2004, 17:12
Localisation : Angers
Contact :
Statut : Hors ligne
.

Message par Shinook »

Ca y est, j'ai trouvé :) . Déjà, j'ai utilisé la fonction INTERJECT ( je n'ai pas retesté les autres. cf le tutorial de WeiDU.org ). Ensuite, j'ai intégré tous les blocs qui devaient intervenir dans le discussion des Dryades dans le fichier .dlg indiqué dans le .cre de Flora ( ici, Flora.dlg ). Ca donne quelque chose comme :

Code : Tout sélectionner

INTERJECT IDRYAD2 0 florainterject1
== FLORA IF ~~ THEN [color=red]// FLORA correspond au fichier qui va permettre d'identifier qui parle[/color]
~Blah blah blah.~
END DRYAD3 0 [color=red]// Le fait d'indiquer DRYAD3 permet de faire le lien avec la suite du dialogue, sous forme d'un dialogue à plusieurs.[/color]


Cependant, il demeure un autre problème. Il n'y a pas de problème tant que l'interjection intervient entre deux autre interventions des Dryades, mais lorsque l'interjection de Flora doit aboutir ensuite sur un changement de variable, ou proposer des interventions du PJ, comment faire ? Cette forme du bloc INTERJECT ne m'est pas familière, et je ne sais pas si je peux rajouter des choses comme DO ou REPLY...

Avatar du membre
Isaya
Adepte de Grondemarteau
Planaire
Messages : 6990
Enregistré le : mar. 22 juil. 2003, 21:03
Localisation : Plaisir
Contact :
Statut : Hors ligne
.

Message par Isaya »

INTERJECT sert à ajouter des liens entre les dialogues de différents personnages. Si tu veux retomber sur un dialogue classique (plus particulièrement une intervention du personnage principal), il se peut que tu sois obligé de revenir à la solution indiquée dans le tutorial sur Interject dans la doc Weidu, celle qui montre comment il fallait procéder avant l'apparition d'Interject. Comme elle est basée sur une construction classique de message, tu peux y insérer un échange classique. Depuis l'exemple, il te suffit alors de remplacer la partie "IF ~~ THEN EXTERN SAHPR2 10" par les REPLY que tu veux proposer.

Par ailleurs, si on se réfère à la description formelle d'INTERJECT, il semble que tu puisses utiliser le END pour indiquer un lien vers un état particulier d'un dialogue. Tu peux donc indiquer ici celui dans lequel tu veux permettre au personnage principal d'intervenir.
:!: Peu disponible
Guide d'installation (et FAQ) de Baldur's Gate, Baldur's Gate II, Baldur's Gate Trilogy (BGT), BG1Tutu, Widescreen, BGEE
Pensez à utiliser à la fonction Recherche pour trouver une réponse à votre question !
Avatar du membre
Shinook
Ours des cavernes
Messages : 1102
Enregistré le : mar. 18 mai 2004, 17:12
Localisation : Angers
Contact :
Statut : Hors ligne
.

Message par Shinook »

Ok, parfait, ça marche en utilisant la forme plus classique de EXTEND_BOTTOM... merci ;) . Et moi, j'avance bien avec Flora, sauf que j'arrête pas de tout recommencer sans arrêt :notme2: ...

Répondre

Retourner vers « Dialogues »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité