Affichage des résultats 1 à 10 sur 10

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

  1. #1
    Date d'inscription
    April 2012
    Localisation
    Picardie, fausses terres de la pluie annuelle.
    Messages 
    41

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

    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:
    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?
    Dernière modification par Freddy_Gwendo ; 25/03/2016 à 20h09. Motif: Modification du titre de la discussion

  2. #2
    Date d'inscription
    December 2007
    Localisation
    Dordogne
    Messages 
    1 141
    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.blogs...nitiation.html
    Ancien moddeur pour bg2, critique sur la sphère roliste et gamedesigner en herbe

  3. #3
    Date d'inscription
    April 2012
    Localisation
    Picardie, fausses terres de la pluie annuelle.
    Messages 
    41
    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.

  4. #4
    Date d'inscription
    April 2011
    Localisation
    Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
    Messages 
    4 644
    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:
    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 tuto d'Armand.
    CARPE DIEM...
    Co-modérateur de La Forge et de La Chambre des Scribes
    Moddeur qui s'arrache les cheveux...

  5. #5
    Date d'inscription
    April 2012
    Localisation
    Picardie, fausses terres de la pluie annuelle.
    Messages 
    41
    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é ?
    Dernière modification par Klare ; 13/03/2013 à 16h54.

  6. #6
    Date d'inscription
    April 2011
    Localisation
    Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
    Messages 
    4 644
    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:
    dialogue de Klare
    
    IF ~~ THEN BEGIN BONJOUR
     SAY ~Bonjour~
     IF ~~ THEN EXTERN ~CKHele~ BONJOUR REP
    END
    
    
    
    APPEND ~CKHele~ 
    IF ~~ THEN BEGIN BONJOUR REP
     SAY ~Toi même !~
    ... <-- Tu continues le dialogue comme tu l'entends
    END
    
    END // 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.
    Dernière modification par Freddy_Gwendo ; 13/03/2013 à 18h34.
    CARPE DIEM...
    Co-modérateur de La Forge et de La Chambre des Scribes
    Moddeur qui s'arrache les cheveux...

  7. #7
    Date d'inscription
    April 2012
    Localisation
    Picardie, fausses terres de la pluie annuelle.
    Messages 
    41
    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.]

  8. #8
    Date d'inscription
    April 2011
    Localisation
    Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
    Messages 
    4 644
    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...

  9. #9
    Date d'inscription
    July 2003
    Localisation
    Plaisir
    Messages 
    6 826
    Citation Envoyé par Klare Voir le message
    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 !

  10. #10
    Date d'inscription
    April 2012
    Localisation
    Picardie, fausses terres de la pluie annuelle.
    Messages 
    41
    C'etait bien ca, je pense que mon probleme est donc reglé.

    Merci de l'information.

Discussions similaires

  1. TEXTSCREEN : comment l'utiliser ?
    Par Cocrane dans le forum Fichiers images
    Réponses: 19
    Dernier message: 05/10/2014, 16h21
  2. [BG2][BUG] comment utiliser le chant du barde ?
    Par elligain dans le forum La Taverne d'Amkethran (Baldur's Gate 2)
    Réponses: 3
    Dernier message: 01/07/2013, 15h32
  3. [LVL1NPC] Comment l'utiliser?
    Par Lycein dans le forum Le Bazar de l'Aventurier
    Réponses: 3
    Dernier message: 18/11/2011, 10h02
  4. [DLTCEP] : Comment utiliser la fonction Search ?
    Par Non inscrit dans le forum Outils de développement
    Réponses: 2
    Dernier message: 25/05/2009, 12h52
  5. Comment utiliser les personnages présents
    Par Egrevyn dans le forum Centre de recrutement
    Réponses: 0
    Dernier message: 06/03/2004, 18h39

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250