[PNJ] Comment créer un dialogue pour un PNJ et problèmes divers

Mikal
Statut : Hors ligne

[PNJ] Comment créer un dialogue pour un PNJ et problèmes divers

.

Message par Mikal »

quasiment rien à voir, mais j'ai un ptit pb avec les PNJ (comme quoi, y'a un lien ^^ )

j'arrive à faire le fichier de la créature, je sais vaguement comment éditer le dialog.tlk pour rajouter des phrases, mais j'arrive pas du tout à faire un fichier dialogue, ou n'importe quoi qui permettrait d'ouvrir une fenêtre de dialogue en lui parlant, et qui me permettrait d'enchainer les répliques, et de faire parler les PJ, etc...

bref, comment on fait ce vindieu de dialogue??? >_<

Mikal, frustré


[Silk : quasiment ? Tu es optimistes... :p Je déplace... Essaye de le faire toi même la prochaine fois ;) ]


[mauvaisefoi](bah ça a à voir, étant donné que j'ai besoin de faire les dialogues de mes pnj ^^ ) [/mauvaisefoi] et pis j'ai pas envie de créer un sujet à chaque fois que j'ai un pb, sinon, vous allez être submergés... :notme:
Angelus Crow
Statut : Hors ligne
.

Message par Angelus Crow »

Je pense qu'il devrait y avoir ce que tu cherches dans ces pages là (lien vers forgottenwars).
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 »

Pour créer des dialogues, tu peux utiliser des programmes comme IDU, IDW (tous deux sur le site TeamBG, mais un peu vieux et parfois buggés) ou DLTCEP (récent, très complet, régulièrement mis à jour) et dans ce cas, ces programmes créent un fichier .DLG et modifient automatiquement le fichier dialog.tlk avec tes nouveaux textes.
Autrement, tu peux utiliser WeiDU qui travaille complètement différemment. Le site par Angelus Crow est un repère de gens qui maîtrisent WeiDU sur le bout des doigts (mais en anglais). ;)
:!: 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 !
Mikal
Statut : Hors ligne
.

Message par Mikal »

merci angelus pour le site, mais j'ai pas compris grand chose... :/
jpense que jvais choper DLTCEP, merci Isaya!

jpense pas que weidu soit necessaire, juste pour faire un paysan avec 2 ou 3 répliques... :-/

Mikal
ferrumach
Berserker ogre
Messages : 1014
Enregistré le : mar. 06 janv. 2004, 05:09
Contact :
Statut : Hors ligne
.

Message par ferrumach »

jpense pas que weidu soit necessaire, juste pour faire un paysan avec 2 ou 3 répliques...
fais attention!!! les weidus n'ecrasent pas les autres dialogues(dou leur avantage)
ils ajoutent simplement tes dialogues aux autres mods
au contraire de la plupart des non weidus

lis la faq sur les mods
Avatar du membre
Walar
Blême
Messages : 979
Enregistré le : jeu. 24 avr. 2003, 20:39
Contact :
Statut : Hors ligne
.

Message par Walar »

Franchement, je te conseille d'utiliser WeiDU... Et même pour faire de simples tests j'utiliserai une méthode d'installation pareille à celles de la quasi totalité des mods actuels (donc WeiDU), plutôt que d'uploader manuellement les fichiers (enfin c'est certainement plus rapide mais se former à WeiDU est bien plus utile si tu veux poursuivre dans l'editing je pense).

Donc pour créer ton personnage, faut d'abord savoir si tu veux un NPC qui puisse entrer dans le groupe ou bien une simple créature avec qui tu as 2 répliques ? (le procédé est presque le même mais c'est un petit peu plus compliqué pour un personnage ralliable au groupe, il faut ajoutter le dialogue permettant de virer le perso et aussi rajoutter quelques lignes dans le fichier .tp2)..

Quant au lien vers le tutoriel que t'as donné Angelus Crow, il est vraiment très utile...
j'arrive à faire le fichier de la créature, je sais vaguement comment éditer le dialog.tlk pour rajouter des phrases, mais j'arrive pas du tout à faire un fichier dialogue, ou n'importe quoi qui permettrait d'ouvrir une fenetre de dialogue en lui parlant, et qui me permettrait d'enchainer les répliques, et de faire parler les PJ, etc...
Pour éclairer vaguement ta question en attendant un tutoriel général :

Avec WeiDU il faut avoir un fichier .d Ensuite, une commande dans le processus d'installation du mod (dans le fichier .tp2 avec WeiDU donc) te permet de mettre directement le dialogue "dans le jeu".

COMPILE ~LEDOSSIERCONTENANTLEMOD\XXXXX.d~

(les ~ font parties du language basique de WeiDU)
Rien besoin de plus (mis à part qu'il faut juste associer le dialogue avec la créature mais suffit de le faire avec cremaker en éditant le profil de ton NPC, il y a un champ pour mettre cela).

Plus techniquement, d'après ce que j'ai compris, cette commande compile le fichier .d en un fichier .dlg et le met dans le dossier \override du jeu (je ne sais pas s'il y a une quelconque association directe avec le fichier dialog.tlk , enfin tant que ça fonctionne... :) )...
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 »

WeiDU fait surtout la différence pour l'installation du mod.
Pour créer des dialogues très simples de personnages non recrutables, DLTCEP fait très bien l'affaire. Et rien ne t'empêchera de convertir le dialogue plus tard au format .d utilisé par WeiDU lorsque tu prépareras le programme d'installation du mod. L'avantage, c'est que tu peux écrire les dialogues plus facilement au départ et que tu peux les tester facilement dans le jeu.
Pour des dialogues plus complexes (faisant intervenir plusieurs personnes notamment), il vaut mieux travailler directement avec WeiDU.

En réponse à Walar, quand WeiDU ajoute un dialogue d'après une commande du fichier TP2, il ajoute automatiquement les textes dans les fichiers dialog.tlk et dialogF.tlk.
Autrement, tu peux aussi utiliser WeiDU pour compiler le fichier .d depuis la ligne de commande (commande simple du genre "weidu tondlg.d"), mais dans ce cas, tu dois lui indiquer par une commande "--tlkout nouv-dialog.tlk" le nouveau fichier dialog.tlk dans lequel il doit ajouter les répliques (à renommer ensuite en dialog.tlk pour l'essayer dans le jeu). Autrement, je crois que ton dialogue ne donnera rien dans le jeu. Pendant la création des dialogues, il est quand même beaucoup plus simple d'utiliser la ligne de commande que de lancer le fichier TP2 à chaque fois.
:!: 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
Walar
Blême
Messages : 979
Enregistré le : jeu. 24 avr. 2003, 20:39
Contact :
Statut : Hors ligne
.

Message par Walar »

Oki merci. Ben alors j'ai pris la mauvaise habitude de relancer le processus d'installation du mod à chaque fois... ;)

Enfin, faudra que j'essaye DLTCEP alors... :blush:
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 »

Si tu prends soin de désinstaller avant, ce n'est absolument pas une mauvaise habitude. Je voulais juste dire que c'était parfois plus rapide de compiler les fichiers directement à partir de la ligne de commande. Il me semble que WeiDU n'ajoute pas les textes dans le fichier dialog.tlk s'ils existent déjà, donc ça ne met pas non plus le bazar dans le fichier. Il y a quand même un inconvénient, car je crois que le fichier dialogF.tlk n'est pas mis à jour, contrairement au processus d'installation.
DLTCEP donne une vision arborescente du dialogue. Tu peux aussi l'utiliser pour visualiser ton dialogue fait avec WeiDU une fois que tu l'as compilé en fichier DLG.
:!: 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 !
Mikal
Statut : Hors ligne
.

Message par Mikal »

euh... c'est encore moi...
j'ai récupéré DLTCEP, mais j'ai encore un pb...
j'arrive à faire des dialogues, mais il refuse de les sauvegarder... soit disant jles aurais ouvert en "read only"
jpense que le pb vient du fait que j'ai besoin d'un fichier .d pour servir de base au dialogue, mais jsais pas comment en faire un... si ça se trouve c'est un truc tout con, genre avec wordpad, mais là, jtrouve pas (et j'ai essayé avec wordpad :timide: )
Avatar du membre
Walar
Blême
Messages : 979
Enregistré le : jeu. 24 avr. 2003, 20:39
Contact :
Statut : Hors ligne
.

Message par Walar »

Pour les fichiers .d Moi j'ai bêtement repris un autre fichier .d que j'ai copié et renommé et dont j'ai ensuite effacé le contenu... :p
Angelus Crow
Statut : Hors ligne
.

Message par Angelus Crow »

Il y a plus simple :

- Créer un nouveau fichier *.txt avec le bloc note par exemple.
- Enregistrer ce fichier.
- le renommer en *.d

Et normalement, ça devrait marcher :happy: .
Avatar du membre
Walar
Blême
Messages : 979
Enregistré le : jeu. 24 avr. 2003, 20:39
Contact :
Statut : Hors ligne
.

Message par Walar »

Euh chez moi ta méthode ne marche pas Angelus Crow. Je viens d'essayer à l'instant. Et l'installation d'un mod test a été abortée par une erreur...
Mikal
Statut : Hors ligne
.

Message par Mikal »

bon, jvous embete une derniere fois, mais jveux etre sur...

il faut avoir un fichier .d qu'on remplit avec son dialogue, comme on en a envie
ensuite, on le remet dans Weidu, en s'arrengeant bien pour qu'il aie pas un nom déjà utilisé ds le fichier dialog.tlk
après, quand on fait la créaure, on lui associe le dialogue en question
j'ai bon?

(jprefere avoir confirmation avant de faire des conneries et bousiller tout mon bg2 ^^ )
Avatar du membre
Walar
Blême
Messages : 979
Enregistré le : jeu. 24 avr. 2003, 20:39
Contact :
Statut : Hors ligne
.

Message par Walar »

Oui c'est exact.
il faut avoir un fichier .d qu'on remplit avec son dialogue, comme on en a envie
Il faut tout de même faire très attention, c'est assez facile de faire une erreur dans le fichier dialogue en oubliant un ~ ou autre chose... ;) (je dis ça en connaissance de cause :oops: )

Pour associer le dialogue à la créature, il y a un champ spécial pour cela dans son profil lorsqu'on l'ouvre avec un éditeur de créature.
Angelus Crow
Statut : Hors ligne
.

Message par Angelus Crow »

Euh chez moi ta méthode ne marche pas Angelus Crow. Je viens d'essayer à l'instant. Et l'installation d'un mod test a été abortée par une erreur...
Ah ... dans ce cas, il ne reste plus qu'à renommer un fichier *.d en un autre fichier *.d.
Avatar du membre
Walar
Blême
Messages : 979
Enregistré le : jeu. 24 avr. 2003, 20:39
Contact :
Statut : Hors ligne
.

Message par Walar »

Enfin, j'ai également vu dans les premières lignes de jenesaisplusquel Readme, qu'ils parlaient en effet de créer un fichier txt en ajoutant *.d en extension. Enfin je dois dire que je n'ai pas saisi la subtilité... :lunette: De plus les fichiers *.d sont une catégorie à part donc, enfin c'est bizarre... ;)

Enfin je reste sur ma méthode un peu bizarre mais que j'ai comprise au moins ! :rigoler: ;)
Mikal
Statut : Hors ligne
.

Message par Mikal »

euh... c'est encore moi ^^
vala, jme suis mis aux dialogues, tout ça, seulement, j'ai beau faire tout ce que jpeux, y'a encore un truc qui va pas...
voilà le dialogue en question:
BEGIN ~GNOLL~ 102191 // non-zero flags may indicate non-pausing dialogue

IF ~See(0.0.0.0)~ THEN BEGIN 0 // from:
  SAY #102191 /* ~Hé les gars, regardez, encore un "aventurier"... Hyahahahahahahuhuhuhark!!!~ */
  IF ~~ THEN REPLY #102192 /* ~Je sais que vous avez l'enfant!~ */ GOTO 1
  IF ~~ THEN REPLY #102193 /* ~Des gnolls... Cela vaut-il la peine que je me batte vraiment...?~ */ GOTO 2
  IF ~~ THEN REPLY #102194 /* ~Bon, venez au massacre les bouses sur pattes, j'ai un mioche à délivrer moi...~ */ GOTO 3
END

IF ~~ THEN BEGIN 1 // from: 0.0
  SAY #102195 /* ~C'est qu'il est intelligent... Faudra venir le chercher mon petit! Que Yeenoghu leur fracasse la cervelle!!! Gnyehehehehehyhyherk!!!!~ */
  IF ~~ THEN DO ~Enemy()~ EXIT
END

IF ~~ THEN BEGIN 2 // from: 0.1
  SAY #102196 /* ~Il se fout de nous!!!! A l'assaut les nazes!!! Et que Yeenoghu fracasse leurs cranes!!! Buhahahahhahyahyark!!!!~ */
  IF ~~ THEN DO ~Enemy()~ EXIT
END

IF ~~ THEN BEGIN 3 // from: 0.2
  SAY #102196 /* ~Il se fout de nous!!!! A l'assaut les nazes!!! Et que Yeenoghu fracasse leurs cranes!!! Buhahahahhahyahyark!!!!~ */
  IF ~~ THEN DO ~Enemy()~ EXIT
END
en gros, ce que je voudrais, c'est que le gnoll en question, quand il voit les PJS arriver, commence à parler; alors que là, il reste comme un gland debout à rien faire, et on est obligé de lui parler pour que le dialogue commence

svp :timide:

ps: faites pas gaffe à la subilité des dialogues ^^
Avatar du membre
Walar
Blême
Messages : 979
Enregistré le : jeu. 24 avr. 2003, 20:39
Contact :
Statut : Hors ligne
.

Message par Walar »

Le fait que le gnoll commence à parler à ton personnage dès qu'il le voit ne dépend pas du fichier dialogue mais du script. Il te faut rajoutter un fichier script à ton personnage contenant par exemple :
IF
  See([PC])
  NumberOfTimesTalkedTo(0)
THEN
  RESPONSE #100
    Dialog(Nearest([PC]))
END
Mikal
Statut : Hors ligne
.

Message par Mikal »

Mais avec ce script, le gnoll se déplace pour parler au PJ, ou il le fait à distance?

parce que ça m'arrangerait si il pouvait le faire de loin, sans bouger de sa place ^^
Avatar du membre
Walar
Blême
Messages : 979
Enregistré le : jeu. 24 avr. 2003, 20:39
Contact :
Statut : Hors ligne
.

Message par Walar »

Il le fait à distance. ;) Mais tu devrais plutôt essayer de répondre à ce genre de questions par toi-même, c'est rapide à faire et ça entraîne un peu parce que bon, c'est tout de même vite vérifiable ça... ;)
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 »

Originally posted by Mikal@dimanche 28 mars 2004, 23h14
il faut avoir un fichier .d qu'on remplit avec son dialogue, comme on en a envie
ensuite, on le remet dans Weidu, en s'arrengeant bien pour qu'il aie pas un nom déjà utilisé ds le fichier dialog.tlk
Un fichier .d contient ton dialogue, écrit selon la forme reconnue par WeiDU. Pour pouvoir l'exploiter dans le jeu, il faut le compiler avec WeiDU en fichier dlg. Cette action, sous réserve d'utiliser les bonnes options, ajoute automatiquement les textes nouveaux dans le fichier dialog.tlk. Tu n'as pas à te soucier de ce qu'il y a déjà dans le fichier dialog.tlk. Par contre, si tu veux que ton dialogue ne pose pas de problème, tu as intérêt à t'assurer que tes fichiers ne portent pas le même nom que ceux qui existent déjà dans le jeu ou dans les autres mods. Ceci explique la mode d'utiliser systématiquement un préfixe propre à chaque mod pour tous ses fichiers. Par exemple, "J#' dans Kelsey. Sur le site TeamBG, il y a un sujet dans le forum général qui recense les préfixes utilisés par différentes personnes. Tu peux y jeter un coup d'oeil avant de choisir le tien pour t'assurer que personne d'autre ne l'utilise. Ce n'est pas une garantie malgré tout car tout le monde n'y indique pas forcément les préfixes qu'ils utilisent.

En réponse aux messages précédents, un fichier .d est un fichier texte tout à fait quelconque. Donc tu peux créer un fichier .txt avec le menu contextuel puis le renommer avec une extension .d, ça fonctionne très bien. Encore faut-il que ton explorateur soit configuré pour affichier les extensions connues des fichiers.

Un dernier mot : plutôt que d'utiliser des nombres pour tes états de dialogue, utilise des noms. C'est plus lisible, surtout si tu utilises un nom explicite. WeiDU se chargera de rajouter ça dans le fichier dialog.tlk en lui attribuant les numéros disponibles. Actuellement ton code ressemble à un dialogue que tu as décompilé plutôt qu'à un dialogue écrit avec WeiDU.


@ Mikal,
Dans DLTCEP, il y a une option dans Settings qui s'appelle 'Read only' qui permet d'indiquer que tu veux toujours ouvrir les fichiers en lecture seule. C'est utile pour s'assurer de ne pas modifier un fichier par mégarde. Décoches l'option pour avoir le droit de modifier.
:!: 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 !
Mikal
Statut : Hors ligne
.

Message par Mikal »

Actuellement ton code ressemble à un dialogue que tu as décompilé plutôt qu'à un dialogue écrit avec WeiDU.
bah euh... jl'ai pas fait avec WeiDU, alors forcément... c'est grave? :timide:

ps: dsl Walar, jme suis fait la réflexion aussi après relecture ^^ jle ferai pus!
pps: au fait, ds le bout de script en question, ca veut dire quoi le #Response100 ?
ppps: pkoi est-ce que le jeu ne s'arrete pas quand je parle?!? >_<
Avatar du membre
Walar
Blême
Messages : 979
Enregistré le : jeu. 24 avr. 2003, 20:39
Contact :
Statut : Hors ligne
.

Message par Walar »

bah euh... jl'ai pas fait avec WeiDU, alors forcément... c'est grave?
Euh, en fait tu l'as certainement écrit dans un fichier texte, ce qui veut dire l'écrire avec WeiDU (on n'écrit pas directement sur le programme les dialogues). Ce qu'Isaya veut dire, c'est qu'on aurait dit que tu as extrait un fichier *.d original du jeu avec WeiDU. Car :
IF ~~ THEN BEGIN 2 // from: 0.1
  SAY #102196 /* ~Il se fout de nous!!!! A l'assaut les nazes!!! Et que Yeenoghu fracasse leurs cranes!!! Buhahahahhahyahyark!!!!~ */
Tout ce qui est en rouge n'est pas nécessaire. Cela ne figure que dans les fichiers *.d originaux du jeu de base.
pps: au fait, ds le bout de script en question, ca veut dire quoi le #Response100 ?
Cela signifie que cela a 100% de chance de se produire. On peut en mettre plusieurs si on veut ajoutter de l'aléatoire dans le dialogue.
ppps: pkoi est-ce que le jeu ne s'arrete pas quand je parle?!? >_<
Euh, je saisis pas ta question... :heu:
Mikal
Statut : Hors ligne
.

Message par Mikal »

en fait, j'ai fait le dialogue directement avec DLTCEP, et ça a donné ça... jvais virer les parts en question

sinon, ce que je voulais dire, c'est que quand le dialogue est en cours, les autres PNJ du coin continuent à bouger (et, en l'occurence, les troufions gnolls attaquent le PJ pendant qu'il parle... ça compromets fortement la discussion :p )
Avatar du membre
Walar
Blême
Messages : 979
Enregistré le : jeu. 24 avr. 2003, 20:39
Contact :
Statut : Hors ligne
.

Message par Walar »

Suffit de les mettre en alignement neutre et de changer une variable à 1 à la fin du dialogue. Cette variable les fait devenir ennemis si elle est mise à 1 (ce bout la doit être dans leurs scripts).
Mikal
Statut : Hors ligne
.

Message par Mikal »

en fait, ce que j'aimerais, c'est que ce soit comme dans les dialogues de bg2, cad que le jeu soit en pause quand on parle
j'ai bien trouvé la commande Pause(), mais y'a rien pour "dépauser", donc...
Avatar du membre
Walar
Blême
Messages : 979
Enregistré le : jeu. 24 avr. 2003, 20:39
Contact :
Statut : Hors ligne
.

Message par Walar »

Enfin, je dois dire que ton problème est vraiment bizarre. Je ne l'ai pas moi (je viens d'essayer à l'instant même et durant les dialogues le jeu est en pause)... ;) Donc visiblement y'a un problème chez toi... ;)

C'est peut-être

!Pause()
Unpause()

Je sais pas moi...
Mikal
Statut : Hors ligne
.

Message par Mikal »

comme disent mes profs, je viens de faire preuve d'une "bêtise incommensurablement bête"...

je jouais en multi ^^
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 »

Dans DLTCEP (pour BG2) tu peux choisir de faire le dialogue en pause ou non. Il suffit d'utiliser le bouton "Freeze flag". Dans BG2, certains dialogues n'arrêtent pas les autres personnages et ils n'ont pas cette indication.
Dans WeiDU, le dialogue est peut-être systématiquement avec l'indication de pause (je ne suis pas sûr).
Ce n'est donc pas la peine de rajouter des scripts pour ça.
:!: 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 !
Répondre

Retourner vers « Dialogues »

Qui est en ligne

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