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] Comment utiliser les CHAIN... les BEGIN ?

Répondre
Avatar du membre
Klare
Tasloï
Messages : 75
Enregistré le : lun. 16 avr. 2012, 17:16
Localisation : Picardie, fausses terres de la pluie annuelle.
Statut : Hors ligne

[DLG] Comment utiliser les CHAIN... les BEGIN ?

.

Message par Klare »

Alors voila, je me suis lancé dans l'ajout d'un marchand dans mon mod... seulement voila, j'ignore tout à fait comment faire pour que mon premier personnage, Klare, intervienne dans le dialogue.

J'ai donc pensé à la commande CHAIN présentée ici. Sauf que... Je ne comprend pas tout (ou je ne comprend pas du tout).

Le BEGIN des deux NPC doivent toujours être dans le même bloc texte ? Mais pourquoi s'ils sont compilés ensuite ?

Ou bien, je peux utiliser mon plan actuel, faire un .D pour les deux personnages et juste utiliser CHAIN dans le bloc .d du marchand pour appeler Klare ?

Ce qui me donnerait des blocs :

Code : Tout sélectionner

BEGIN "CKHele"

IF ~True()~ THEN BEGIN Elayne01
 SAY ~Encore a fouiller dans les poches d'Helene?~
 IF ~~ THEN REPLY ~Oui.~ DO ~StartStore("CKhele", LastTalkedToBy())~ EXIT
 IF ~~ THEN REPLY ~Non, pas maintenant.~ EXIT
END

BEGIN "CKHelF"

IF ~True()~ THEN BEGIN Croc01 
 SAY ~Grrrrr~
 IF ~~ THEN EXTERN ~CKHele~ ICI
END

CHAIN IF ~~ THEN "CKHele" ICI
 ~La ferme Croc~
END
IF ~~ THEN EXTERN ~CKHelf~ Croc02

IF ~~ THEN BEGIN Croc02 
 SAY ~*couinne*~
 IF ~~ THEN EXIT
END
Ce qui dans ma tête donne :
On parle avec Croc CKhelF
On obtient :
une phrase de Croc, une de Helene, une nouvelle de Croc?

En pratique :
Error Weidu, try again ^^

En clair, c'est 100% CHAIN ou rien?
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 »

La méthode 100% CHAIN (que j'ai passablement vendu dans mes tutos alors je vais pas forcément trés impartial) permet entre autre de ne pas s’embêter avec l'ordre de compilation. En fait tu génère des dlg via les begin contenu dans tes d et par conséquent ils se compilent dans l'ordre où tu compiles les d dans ton tp2. Donc c'est vrai qu'à titre personnel j'ai tendance à mettre mes BEGIN en début de fichier et de tout faire en chain afin d'organiser mon fichier comme je l'entends. Mais en theorie tu peux parfaitement melanger les deux du moment que tu ecri sà l'intérieur de tes BEGIN lorsque tu place tes IF.

Je ne saurais d'emblée pas te dire d'ou vient l'erreur peut etre de tes EXTERN (ici un GOTO suffirait) et vu que tu code en if sur cette partie peut etre que c'est ça qui pose problème. Peut etre que si tu fourissait l'erreur que te renvois weidu on pourrait t'aider...

Par ailleurs je ne comprend pas ton utilisation d'un CHAIN en plein milieu ici alors que tu ne t'en servais pas jusqu'alors ?
http://toutlemondesontrolistes.blogspot ... ation.html
Ancien moddeur pour bg2, critique sur la sphère roliste et gamedesigner en herbe
Avatar du membre
Klare
Tasloï
Messages : 75
Enregistré le : lun. 16 avr. 2012, 17:16
Localisation : Picardie, fausses terres de la pluie annuelle.
Statut : Hors ligne
.

Message par Klare »

Et bien l'objectif du CHAIN etait de faire parler le PNJ CKhele au milieu du dialogue prevue entre CKhelf et CHARNAME lorsque celui ci embete la bete.


L'idée etant que, CHARNAME lance le dialogue avec un personnage : CkhelF

CkhelF lui reponde agressivement,
Un autre personnage CKhele, situé a coté lui donne l'ordre de se coucher,
le pnj CkhelF se couche

Fin du dialogue

Or, j'ai cru comprendre [notament avec ton tuto] que c'etait CHAIN qui permetait d'aller arracher des paroles a d'autres PNJ justement.
Pour le message d'erreur, je modifirai le .d dans l'apres midi pour la retrouver.
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message par Freddy_Gwendo »

Si tu tu contentes de ces seules lignes de dialogue et que tu débutes dans le modding, oublie les CHAIN.

Ce qui ne fonctionne pas dans ton dialogue, c'est que tu appelles des blocs inexistants. Par exemple, IF ~~ THEN EXTERN ~CKHele~ ICI appelle le bloc ICI du fichier CKHele.dlg. Or ce bloc n'existe pas puisque tu l'as créé dans le fichier CKHelf.dlg.


Pour tes lignes, le codage "basique" serait celui-ci :

Code : Tout sélectionner

BEGIN ~CKHele~

IF ~True()~ THEN BEGIN Elayne01
 SAY @1 //~Encore a fouiller dans les poches d'Helene?~
 IF ~~ THEN REPLY @2 DO ~StartStore("CKhele", LastTalkedToBy())~ EXIT // ~Oui.~ 
 IF ~~ THEN REPLY @3 EXIT // ~Non, pas maintenant.~ 
END

IF ~~ THEN BEGIN ICI
 SAY @4 //~La ferme Croc~
END
IF ~~ THEN EXTERN ~CKHelf~ Croc02

BEGIN ~CKHelF~

IF ~True()~ THEN BEGIN Croc01 
 SAY @5 //~Grrrrr~
 IF ~~ THEN EXTERN ~CKHele~ ICI
END

IF ~~ THEN BEGIN Croc02 
 SAY @6 //~*couinne*~
 IF ~~ THEN EXIT
END

Si tu souhaites utiliser les blocs CHAIN, il faut déclarer l'ensemble des dialogues à utiliser au début du fichier .d,

BEGIN ~CKHele~
BEGIN ~CKHelF~

puis passer de l'un à l'autre dans les blocs CHAIN comme indiqué dans le [Thread=26182]tuto d'Armand[/thread].
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Klare
Tasloï
Messages : 75
Enregistré le : lun. 16 avr. 2012, 17:16
Localisation : Picardie, fausses terres de la pluie annuelle.
Statut : Hors ligne
.

Message par Klare »

Merci a vous deux, j'arrive desormais a faire parler mes PNJ comme je l'ai voulu.

Petit point etrange, les accents ne semble pas passer dans le dialogues des NPC [ é > @trucmachin ]
alors que ca fonctionne tres bien dans les dialogues du PNJ recrutable, une fausse manipulation de ma part?

EDIT : Nouveau probleme rencontré, EXTERN ca fonctionne tres bien du moment que je travaile sur un même document .D, lorsque j'ai essayer de faire intervenir Klare depuis sont .D et son CKlareJ, c'est le drame, Weidu ne veut plus.

J'essaye avec mon dialogue remodifier pour que les deux PNJ interviennent entre eux, plus de soucis. EXTERN est donc limité ?
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message par Freddy_Gwendo »

Je ne suis pas certain d'avoir saisi ton problème.

Mais si par exemple tu souhaites faire intervenir CKHele dans un dialogue de Klare en utilisant EXTERN, tu dois procéder ainsi :

Code : Tout sélectionner

dialogue de Klare

IF ~~ THEN BEGIN BONJOUR
 SAY ~Bonjour~
 IF ~~ THEN EXTERN ~CKHele~ BONJOUR REP
END



[color="#FFFF00"]APPEND ~CKHele~[/color] 
IF ~~ THEN BEGIN BONJOUR REP
 SAY ~Toi même !~
... <-- Tu continues le dialogue comme tu l'entends
END

[color="#FFFF00"]END[/color] // END supplémentaire pour la fin de la procédure APPEND
Ceci ne fonctionne que si tu as déjà créé le fichier CKHele ailleurs.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Klare
Tasloï
Messages : 75
Enregistré le : lun. 16 avr. 2012, 17:16
Localisation : Picardie, fausses terres de la pluie annuelle.
Statut : Hors ligne
.

Message par Klare »

Ca a resolu mon probleme, merci !
[Ca va m'aider pour la suite cette commande... ]

Une idée quant a l'origine du bug d'affichage des lettres? [au pire je retire les accents.]
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message par Freddy_Gwendo »

Désolé, mais là, je n'ai aucune soluce.

D'ailleurs, je n'ai jamais rencontré ce genre de problème sauf la restriction bien connue des caractères spéciaux (oe, etc...) qu'il faut éviter à tout prix.

Peut-être as-tu installé un mod qui modifie les fonts ?

Je pense que quelqu'un plus au fait des différents mods graphiques pourrait te répondre.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
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 »

Klare a écrit :Petit point etrange, les accents ne semble pas passer dans le dialogues des NPC [ é > @trucmachin ]
alors que ca fonctionne tres bien dans les dialogues du PNJ recrutable, une fausse manipulation de ma part?
La présence d'une combinaison @ et d'un autre caractère bizarre est révélatrice d'un texte encodé en UTF8. Je ne sais pas quel éditeur tu utilises pour tes textes, mais il est manifestement configuré pour écrire les caractères spéciaux de cette façon. Je suppose que tu as employé des éditeurs différents pour tes fichiers de dialogue ou tra, ou que tu as repris un fichier qui était avec le mauvais encodage.

Avec un éditeur comme Notepad++, tu peux non seulement choisir l'encodage (il faut ANSI pour les vieux jeux Infinity Engine) mais tu peux aussi visualiser quel encodage il considère qu'un fichier utilise. Par contre il ne va pas convertir tes textes existants d'UTF8 vers ANSI, même si tu demandes à changer l'encodage. Il existe des outils pour ça, iconv sous Linux et Cp Converter sous Windows notamment. Liens trouvables avec n'importe quel bon moteur de recherche.
:!: 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
Klare
Tasloï
Messages : 75
Enregistré le : lun. 16 avr. 2012, 17:16
Localisation : Picardie, fausses terres de la pluie annuelle.
Statut : Hors ligne
.

Message par Klare »

C'etait bien ca, je pense que mon probleme est donc reglé.

Merci de l'information.
Répondre

Retourner vers « Dialogues »

Qui est en ligne

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