Affichage des résultats 1 à 6 sur 6

Discussion: [DLG] Comment mettre en oeuvre un dialogue à 7 ?

  1. #1
    Date d'inscription
    January 2008
    Messages 
    127

    [DLG] Comment mettre en oeuvre un dialogue à 7 ?

    Bonjour, ça faisait longtemps!
    Voilà je me demandais si le jeu était capable de gérer autant de personne à la fois pour un dialogue et surtout comment cela se traduit-il dans le .d ?
    Dois-je insérer un APPEND pour chaque personnage ? Ou seulement pour le premier qui intervient dans le dialogue.

    Exemple:
    Dans le .tra:
    J: "" (initie le dialogue à l'arrivée de charname)
    S: "" (premier intervenant)
    A: "" (deuxième)
    P: "" (troisième)
    S: "" (premier)

    Dans le .d: (de J)

    Code:
    IF ~~ THEN BEGIN Discussion
    SAY @0
    IF ~~ THEN EXTERN ~#BS~ 00
    END
     
    IF ~~ THEN BEGIN 01
    SAY @2
    IF ~~ THEN EXTERN ~#BP~ 02
    END
     
    APPEND ~#BS~
    IF ~~ THEN BEGIN 00
    SAY @1
    IF ~~ THEN EXTERN ~#BA~ 01
    END
     
    APPEND ~#BP~
    SAY @3 etc...
    Faut-il uniquement indiquer le premier intervenant dans le APPEND ou tous? Ou je me trompe complètement lol?
    Bonne soirée !
    Dernière modification par Freddy_Gwendo ; 02/04/2016 à 04h13. Motif: Modification du titre de la discussion et mise en page
    [SIGPIC][/SIGPIC]

  2. #2
    Avatar de Vel Cheran
    Vel Cheran est déconnecté a du RP en retard
    Date d'inscription
    December 2007
    Messages 
    2 008

    Re : Mettre en oeuvre un dialogue à 7

    Si beaucoup de personnages disent à la suite une réplique, utiliser un "CHAIN" te simplifiera grandement la tâche.
    Le CHAIN s'utilise pour des PNJ intervenant dans un dialogue. Suivant ton exemple, tu auras donc à la fin du fichier :

    Code:
    CHAIN
    IF ~~ THEN ~J~ Exemple
    @1
    == S IF ~~ THEN @2
    == A IF ~~ THEN @3
    == P IF ~~ THEN @4
    == S IF ~~ THEN @5
    END IF ~~ THEN GOTO Suite
    C'est assez pratique si tu veux faire parler des PNJ du groupe, car tu peux alors préciser :
    == S IF ~InParty("S")~ THEN @3 pour vérifier si le PNJ S est bien dans ton équipe.

    Par contre, s'il y a des personnages externes à ton groupe, il te faudra obligatoirement utiliser plusieurs APPEND. C'est pas tellement plus compliqué, il faut juste penser à les placer en fin de fichier (juste après les CHAIN). Là, tu es obligé par contre d'en faire un par personnage.
    Dernière modification par Freddy_Gwendo ; 02/04/2016 à 04h10. Motif: Mise en page

  3. #3
    Date d'inscription
    April 2003
    Localisation
    Bordeaux
    Messages 
    1 151

    Re : Mettre en oeuvre un dialogue à 7

    Tu as la fonction CHAIN qui sert à ça, dans ton cas ça donnerait dans le #BJ.d
    CHAIN
    IF ~~ THEN #BJ 0
    @0
    == #BS @1
    ==# BA @2
    == #BP @3
    == #BS @4
    END IF ~~ THEN EXIT
    Seule précaution à prendre, il faut que les fichiers
    #BS.dlg, #BA.dlg, #BP.dlg, #BS.dlg existent déjà. Si certains (tous) tes personnages A, S, P n'ont de dialogue propre il suffit de compiler des fichiers .d "vides"

    Le #BS.d serait
    BEGIN ~#BS~
    Le #BA.d
    BEGIN ~#BA~
    etc.

    Si tu as d'autre dialogue dans ton #BJ.d, le CHAIN doit être placé après les dialogues de ton personnage J et avant d'éventuel APPEND


    --------------------------------------------------
    EDIT
    Grillé par Vel Cheran sauf que les CHAIN peuvent marcher avec TOUS les personnages (à condition qu'ils aient un fichier dlg associé) mêmes de personnages hors du groupe qui sont des PNJs purs comme Ribald, Bernard ou Frikraag.
    Par contre j'avais bien oublié de parler des personnes du groupes et du trigger InParty
    Dernière modification par Akadis ; 05/03/2009 à 00h19.
    Développeur du mod Akadis version disponible Beta 3.1b : envoyez moi un M. P
    Responsable de la maintenance du mod
    Kim

  4. #4
    Date d'inscription
    January 2008
    Messages 
    127

    Re : Mettre en oeuvre un dialogue à 7

    D'accord merci pour tout je vais de ce pas me mettre au travail!
    [SIGPIC][/SIGPIC]

  5. #5
    Date d'inscription
    July 2003
    Localisation
    Plaisir
    Messages 
    6 832

    Re : Mettre en oeuvre un dialogue à 7

    En complément de ce qu'on dit mes camarades, j'ajouterai que InParty est nettement insuffisant pour s'assurer que le personnage est en mesure de parler. Il faut le compléter d'autres triggers pour éviter de faire parler un personnage endormi ou paralysé, par exemple.
    A titre d'exemple, le BG1 NPC utilise le test suivant pour vérifier que Garrick peut se mêler à une discussion entre Imoen et Xan :
    ~InParty("garrick") InMyArea("garrick") !StateCheck("garrick",CD_STATE_NOTVALID)~
    De mémoire, le CD_STATE_NOTVALID n'existe pas à l'origine. Il y a des chances que sa définition fasse partie des éléments du pack du moddeur heureux du BG2 Fixpack. Le mieux est de copier dans ton mod le bout de code qui l'ajoute dans le jeu s'il n'existe pas déjà.
    Exemple de code, toujours issu du BG1 NPC, pour l'ajouter :
    /* STATE.IDS patching to ToB - thanks, Cam, if you read it */
    /* adds custom IsValidForPartyDialogue state */
    APPEND ~STATE.IDS~ ~0x80101FEF CD_STATE_NOTVALID~ UNLESS ~CD_STATE_NOTVALID~
    Bonne continuation.

    PS : WeiDU dispose de tous les éléments nécessaires pour ajouter des répliques dans plein de dialogues sans avoir recours aux EXTERN et de façon beaucoup plus simples. En plus les EXTERN ne permettent pas de gérer correctement certaines choses pour lesquelles des commandes telles que I_C_T ont été créées. Pensez-y !

  6. #6
    Avatar de phoeunix
    phoeunix est déconnecté Punching-ball de service (avec un solide penchant masochiste)
    Date d'inscription
    February 2008
    Localisation
    Nice
    Messages 
    471

    Re : Mettre en oeuvre un dialogue à 7

    Effectivement il est dans le pack du moddeur heureux mais ça ne mange pas de pain de l'ajouter à l'install, surtout si on veut avoir un mod indépendant de ce pack. (qui apparemment fait polémique chez les anglosaxons)

Discussions similaires

  1. [BGT] Mettre un kit pour les PNJ
    Par Mikuron dans le forum Baldur's Gate Reloaded : les mods TUTU et Baldur's Gate Trilogy
    Réponses: 10
    Dernier message: 14/09/2017, 22h34
  2. Mettre une cape à son perso
    Par Qoèlet dans le forum NeverWinter Nights & NeverWinter Nights 2 : les modules
    Réponses: 4
    Dernier message: 01/07/2007, 20h43
  3. Mettre le jeu en anglais
    Par DrAzTiK dans le forum La Chambre des Scribes
    Réponses: 12
    Dernier message: 15/11/2006, 23h13
  4. [SK] Mettre un portrait qui est pas au bon format
    Par shalala dans le forum Le Bazar de l'Aventurier
    Réponses: 2
    Dernier message: 18/10/2005, 19h15
  5. Passer le jeu en français
    Par Dark elf dans le forum La Taverne du Berceau de l'Hiver (Icewind Dale 1)
    Réponses: 3
    Dernier message: 07/01/2004, 05h20

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 251 252 253 254 255 256