Affichage des résultats 1 à 1 sur 1

Discussion: [TUTORIEL] [SCRIPTS/DIALOGUES] L’utilisation du trigger d'état CD_STATE_NOTVALID

  1. #1
    Date d'inscription
    December 2007
    Localisation
    Dordogne
    Messages 
    1 141

    Flèche [TUTORIEL] [SCRIPTS/DIALOGUES] L’utilisation du trigger d'état CD_STATE_NOTVALID

    [TUTORIAL] L’utilisation du CD_STATE_NOTVALID pour vos scripts




    L’utilisation du CD_STATE_NOTVALID.


    Pour s’assurer que les personnages ne parlent pas quand ils ne sont pas censés pouvoir le faire.


    Note d'armand : Ce tutorial a été écrit il y a déjà quelques années par phoeunix, je le reproduis ici aujourd'hui avec son aimable autorisation. Merci à lui.


    Voici la traduction d'un tutoriel écrit par K'aeloree sur le forume SHS, avec son aimable autorisation.




    Ce tutoriel explique l’utilisation du CD_ STATE_NOTVALID, et pourquoi vous devriez l’utiliser.




    Introduction.




    Dans les scripts originaux, il existe une fonction appelée "IsValidForPartyDialogue()". Elle est utilisée tout au long de SoA et ToB ; cependant, elle ne fonctionne pas correctement quand elle est utilisée pour le personnage qui initie le dialogue. Par exemple, Minsc et Aerie ont un dilaogue avec Delon que Minsc initie ; toute vérification de IsValidForPartyDialogue("Minsc") se trouverait fausse.
    Avec ce problème en tête, CamDawg, administrateur de G3, a trouvé un moyen de vérifier si les personnages ne sont PAS disponible pour un dialogue de groupe, et il a créé le CD_ STATE_NOTVALID, qui est utilisé dans la plupart des mods PNJ récents.




    Quand devrais-je utiliser cette fonction et pourquoi ?




    Pour commencer, CD_ STATE_NOTVALID se comprend facilement : CD est le préfixe de CamDawg, et CD_ STATE_NOTVALID signifie "Le personnage n’est pas disponible pour dialoguer".
    Pour s’en servir, il suffit d’ajouter une simple ligne de code dans les triggers :




    Code:
    !StateCheck("MyNPC",CD_STATE_NOTVALID)



    Ceci peut être assez déroutant, puisqu’il s’agit d’une formulation doublement négative : cela signifie "si le personnage n’est pas pas disponible pour le dialogue." En d’autres termes, "Si le PNJ est disponible pour le dialogue."




    En utilisant cette ligne de code, on peut vérifier toutes sortes de choses qui pourraient empêcher un personnage de dialoguer : être mort, endormi, étourdi, réduit au silence, pétrifié etc. Ceci en fait un outil très utile, car cela signifie qu’il n’y a plus besoin de vérifier chaque état (STATE) individuellement.
    Un exemple de l’usage de CD_STATE_NOTVALID dans un banter de Xan pour BG2 SoA et ToB, par Xyluok :




    Code:
     CHAIN
    IF ~InParty("Keldorn")
    See("Keldorn")
    !StateCheck("Keldorn",CD_STATE_NOTVALID)
    !StateCheck("O#Xan",CD_STATE_NOTVALID)
    CombatCounter(0)
    !See([ENEMY])
    Global("O#XanKeldorn1","GLOBAL",0)~ THEN BO#XAN O#XanKeldorn1
    @3214 
    DO ~SetGlobal("O#XanKeldorn1","GLOBAL",1)~
    == BKELDOR @3215 
    == BO#XAN @3216
    == BKELDOR @3217
    == BO#XAN @3218
    == BKELDOR @3219
    == BO#XAN @3220
    == BKELDOR @3221
    == BO#XAN @3222
    EXIT



    Que dois-je faire pour pouvoir l’utiliser ?




    Pour pouvoir vous servir de CD_STATE_NOTVALID, il faut ajouter un tout petit morceau de code dans votre .tp2, avec l’aimable autorisation de CamDawg.




    Note : Vérifier que vous ajoutez ce bout de code avant de compiler vos scripts ou dialogues contenant CD_STATE_NOTVALID dans votre .tp2, sinon cela créera des erreurs.
    Code:
     // Adds CD_STATE_NOTVALID state
    APPEND ~STATE.IDS~ ~0x80101FEF CD_STATE_NOTVALID~
    UNLESS ~CD_STATE_NOTVALID~



    C’est tout ! Une fois que vous avez ce bout de code dans votre .tp2, vous pouvez utiliser CD_STATE_NOTVALID n’importe où dans les dialogues et les scripts.
    Dernière modification par Freddy_Gwendo ; 20/03/2016 à 13h47. Motif: Modification du titre de la discussion

    http://toutlemondesontrolistes.blogs...nitiation.html
    Ancien moddeur pour bg2, critique sur la sphère roliste et gamedesigner en herbe

Discussions similaires

  1. Réponses: 12
    Dernier message: 24/06/2019, 16h04
  2. Réponses: 2
    Dernier message: 21/02/2019, 15h33
  3. [TUTORIEL] Création de kit pour BG2
    Par Lothringen dans le forum Guides et tutoriels
    Réponses: 5
    Dernier message: 29/03/2013, 22h09
  4. [BG] Editeur texte pour scripts
    Par Silk dans le forum [ARCHIVES] Outils de la préhistoire
    Réponses: 2
    Dernier message: 23/10/2003, 22h57
  5. Mes scripts pour BG fonctionnent pas !
    Par yoloosis dans le forum [ARCHIVES] Outils de la préhistoire
    Réponses: 9
    Dernier message: 22/08/2003, 23h17

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