Affichage des résultats 1 à 4 sur 4

Discussion: [DLG] Je n'arrive pas à déclencher un dialogue 3 jours après le recrutement d'un PNJ

  1. #1
    Kroc le bô Invités

    [DLG] Je n'arrive pas à déclencher un dialogue 3 jours après le recrutement d'un PNJ

    Bon j'ai un petit problème avec les Dialogues :

    Je voudrais qu'au bout de trois jours après qu'il ai été recruté, Eadem discute avec le PJ.

    Donc déjà, cette discussion est à mettre où ? dans le B ou le J ? ( et il faut bien créer plusieurs fichier .D ? Ou tout mettre dans le même ? )

    Après, il faut donc mettre un script dans l'override :

    Voila ce que j'ai mis :

    Code:
    IF
      Global("EademJoined","LOCALS",1) // bon c'est juste pour vérifier s'il est dans le groupe
      Global("EademTalk01","LOCALS",0) // pour éviter de recommencer le même talk à chaque fois...
    THEN
      RESPONSE #100
        SetGlobalTimer("EADPRTLK","GLOBAL",21600) // Le timer...
    END
    
    IF
      Global("EademJoined","LOCALS",1) // idem qu'au dessus
      Global("EademTalk01","LOCALS",0) // idem qu'au dessus
      GlobalTimerExpired("EADPRTLK","GLOBAL") // Ca parle pour soi même je pense :)
      !StateCheck(Player1,STATE_SLEEPING) // Pour éviter que ça se déroule quand le perso dors... j'ai copié sur un Tuto de Romance que j'ai trouvé
      InParty(Myself)
      See(Player1)
    THEN
      RESPONSE #100
        SetGlobal("EademTalk01","LOCALS",1)
        Dialogue(Player1) // il me semble que cette commande renvoie donc à une discussion se trouvant dans le Fichier.D  J du perso...
    END
    Après j'ai mis ça dans le dialogue :

    Code:
    BEGIN K-eademJ
    
    IF ~Global("EademTalk01","LOCALS",0)~ THEN BEGIN TEST
      SAY ~Test~
      IF ~~ THEN REPLY ~ok~  EXIT
    END
    ( Pour tester donc )

    et pour définir les dialogues j'ai mis ça dans le TP2 :

    Code:
    APPEND ~pdialog.2da~ ~k-eadem K-EademP K-eademJ K-EademD K-EadetP K-EadetJ K-EadetD K-Eadet5~
      UNLESS ~k-eadem~
    
    APPEND ~interdia.2da~ ~k-eadem Beadem k-eadetB~
      UNLESS ~k-eadem~
    donc soit je regarde de travers, soit il y a un problème dans mes adresses dans les scripts toussa... J'aurais besoin d'aide.

    Remarque : j'ai déjà essayé en mettant le '' SetGlobal("EademTalk01","LOCALS",1) '' dans le dialogue plutôt que dans le script mais ça fonctionnait pas non plus .

    Tiens j'ai aussi ajouté ce script au D3PlAYERs pour faire arriver mon perso, calqué sur celui de Shinook ( merci à lui encore )

    Code:
    IF
      Global("Chapter","GLOBAL",1)
      Global("Eadespawn","GLOBAL",0)
    THEN
      RESPONSE #100
        SetGlobalTimer("SPAWNEAD","GLOBAL",7200)
        SetGlobal("Eadespawn","GLOBAL",1)
    END
    
    IF
      GlobalTimerExpired("SPAWNEAD","GLOBAL")
      Global("EademExists","GLOBAL",0)
      PartyRested()
    THEN
      RESPONSE #100
        CreateCreature("K-Eadem",[-1.-1],0)
        SetGlobal("EademExists","GLOBAL",1)
    END
    Je le donne au cas où...

    Voila... merci d'avance pour votre aide .
    Dernière modification par Freddy_Gwendo ; 02/04/2016 à 02h11. Motif: Modification du titre de la discussion et mise en page

  2. #2
    Date d'inscription
    May 2004
    Localisation
    Angers
    Messages
    1 102
    Alors, le script dont tu parles en premier, tu l'as ajouté où ? Pour qu'il fonctionne, il vaut mieux l'ajouter à DPLAYER3.bcs, qui est fait pour cela ( en tout cas, quand je fais ça, ça marche ). Donc, dans ton .tp2, voici ce qu'il faut marquer :
    EXTEND_TOP ~DPLAYER3.bcs~ ~répertoire_ du_ mod\ton_script.baf~
    Je crois qu'on peut utiliser EXTEND_BOTTOM aussi, qui au final revient au même. Il est important aussi que ton script soit de type "décompressé" ( .baf ).

    Sinon, je ne crois pas qu'il y ait d'erreur. A propos de la commande Dialogue() ou Dialog(), il enclenchera le dialogue que tu as mis dans le fichier .cre du personnage ( ici, ton PNJ ), dans la case tout en bas ( dans Cremaker ) appelée DLG File ou quelque chose comme ça. Il ne va pas donc chercher lui-même un fichier spécifique ( le XXXXXXXJ.d puisque c'est celui que tu cites ). Ou alors, si tu veux que ce soit un fichier en particulier, il faut lui indiquer à l'aide de la commande :
    StartDialog(SialogFile*,O:Target*)
    En indiquant d'abord le nom du fichier .d que tu auras compilé dans le .tp2 en .dlg ( inutile de mettre .dlg, le nom seul, entre parenthèses suffit ), puis en indiquant le fichier .cre ( entre parenthèses et sans le .cre ) du personnage avec qui il va parler.


    Je viens de relire ton dialogue, et je me suis aperçu qu'il y a un truc qui ne collait pas avec ton script, pour qu'il puisse s'enclencher.
    Dans ton script, tu as marqué à la fin, comme actions/effets :
    SetGlobal("EademTalk01","LOCALS",1)
    Dans ton .d maintenant, tu as marqué comme condition d'enclenchement :
    Global("EademTalk01","LOCALS",0)
    C'est sans doute une erreur, met comme tu as mis juste avant la variable à 1, et qu'en condition, il faut qu'elle soit à 0, ça ne fonctionnera pas. Il faut donc que tu mettes la variable à 1 dans ta condition, sinon ça ne marchera pas.

    Sinon, je ne vois aucun problème ( normal, tu as repris mon script, petit copieur ).


  3. #3
    Kroc le bô Invités
    Merci beaucoup de ton aide Bon je vais tenter ça Pour le script que je t'ai piqué : Il fonctionne, je l'ai mis à titre d'information, au cas où sa aurait été lui qui faisait tout planté

    Donc, il faut que je copie le texte dans son .dLL dans le cre... mais si il est dans l'équipe, celui ci n'est pas supprimé normalement ?

    Et pour la commande Interract() ( ou un truc du genre ) elle fait quoi ?

    Je m'explique : Les Discusions que les PNJS ont avec le perso, une fois qu'ils sont recrutés, ne sont pas écrit dans le .D de leurs fichier .cre ? mais dans un autre... nan ?

    Bon plus clair : Quand vous créez un perso non joueur recrutable : Vous lui faîte un seul fichier.D ou plusieurs : un pour quand on le voit, un pour quand il est dans l'équipe, un pour les Banters, un pour le Dreamscript ? parce que j'avoue que je suis paumé là dedans .

    Merci d'avance.

  4. #4
    Date d'inscription
    July 2003
    Localisation
    Plaisir
    Messages
    6 400
    Le fichier B est conçu pour les "Banters" (ou bavardages) et ne contient généralement que les intéractions entre les personnages du groupe, hors personnage principal.
    Le fichier J contient tout ce qui concerne le personnage dans le cadre du groupe : les échanges directs avec le personnage principal, les interventions en milieu d'un dialogue avec un personnage externe au groupe (il me semble).
    La commande Interact() permet de déclencher un échange entre des personnages du groupe (banter). Voir le site IESDP pour des détails. Il implique directement le fichier B (via le fichier 2DA qui recense le fichier de banter pour chaque personnage).

    Un fichier D peut provoquer la création de plusieurs fichiers DLG : le P, le B, le J et le quatrième qui sert souvent lors du tout premier dialogue. Tu peux tout gérer à partir d'un seul fichier D (mais ça fait alors un fichier D très long). Tu peux aussi créer une multitude de fichiers D qui ajoutent des trucs dans un ou plusieurs des fichiers DLG. Il n'y a pas de règle précise, c'est plutôt en fonction de contraintes spécifiques à ton mod.

    Rappel : bien des questions trouvent réponse sur le site IESDP ou dans les tutorials. Je sais que c'est en anglais mais il faudra bien faire cet effort si vous voulez vraiment maîtriser ce que vous faites.
    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 !

Discussions similaires

  1. Réponses: 7
    Dernier message: 05/08/2007, 09h53
  2. [WeiDU] Erreurs pendant la compilation d'un dialogue
    Par BODHI dans le forum Dialogues
    Réponses: 12
    Dernier message: 03/02/2005, 18h21
  3. [TASHIA] Problème de dialogue
    Par Luthien dans le forum Compagnons d'Amn : Les modules dit "PNJ"
    Réponses: 4
    Dernier message: 30/10/2004, 10h17

Les tags pour cette discussion

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