Affichage des résultats 1 à 4 sur 4

Discussion: [SCRIPT] Script de comportement de Perso

  1. #1
    Date d'inscription
    January 2005
    Messages
    180

    [SCRIPT] Script de comportement de Perso

    Salut à vous,

    je ne sais absolument pas si je suis au bon endroit.
    C'est pas vraiment un mod que je veux développer mais bon.

    En gros, je suis occupé à modifier un script eseries pour inclure une petite routine, qui, traduite en français, donne:
    "si le joueur appuie K et que j'ai des baies, je mange mes baies jusqu'à être guéri totalement".

    Je l'ai créé dans un script etest.bs. Tout fonctionne : quand je le mets comme script du personnage, j'appuie K et le personnage me dit (comme prévu): "j'ai des baies dans ma poche. Tu as l'oeil, cher joueur "
    "miam - c'est bon. Joueur, pense à manger
    miam - c'est vraiment bon. Joueur, va boire un coup.
    miam - aaah ça fait du bien d'être seul sans joueur pour vous donenr des ordres
    miam - tiens, déjà de retour?"
    puis à la fin
    "je suis guéri! merci joueur de prendre soin de moi!"

    (Je vous ai romancé la chose).


    donc, mon mini script fonctionne

    Je mets le code en spoil
     Cliquer ici pour révéler le texte


    Tout content que j'ai fait le script, je m'en vais maintenant le coller dans les scripts "normaux" de eseries. Parce que mon script, à part soigner, i lfait rien .


    Je le colle à la toute fin du fichier.(en vérité des 6 fichiers de scripts), après la routine d'attaque normale. Bref, après ça:
    Code:
    // * MINIMUM ATTACK
    IF
      ActionListEmpty()
      See(NearestEnemyOf(Myself))                                              // but we can still see AN enemy
      !InParty(LastSeenBy(Myself))                                             // and they're not in our party (double-check)
      !Allegiance(LastSeenBy(Myself),GOODCUTOFF)                               // and not an Ally, Familiar, Minion or Simulacrum
    THEN
      RESPONSE #100
        AttackOneRound(NearestEnemyOf(Myself))                                 // and attack
    END
    J'installe le mod eseries.
    Je redémarre BG2.

    Je clique sur K cette fois (en fait, je reprends toujours une sauvegarde où le personnage blessé a genre 100 baies sur lui - c'est mon druide -> et ça explique d'où me vient l'idée ... je voulais éviter de cliquer 100 fois sur la baie).

    Et....... rien ne se passe.
    La petite ligne "tiens j'ai des baies dans ma poche", sensée m'indiquer que le personnage a lancé la routine de manger les baies ne s'affiche pas.

    Je ne comprends pas.

    Quelqu'un peut il m'aider?

    Sith
    Sith

  2. #2
    Date d'inscription
    July 2003
    Localisation
    Plaisir
    Messages
    6 631

    Re : Scripts de comportement de Perso

    Je suppose que tu as vérifié que ce n'était pas qu'un problème d'affichage du message et que les baies restaient bien patiemment dans ton inventaire ?

    Quand tu ajoutes quelque chose à la fin d'un script, tu prends le risque que cette partie ne soit jamais atteinte. J'explique. Un script s'exécute de la façon suivante (je vais aussi utiliser du bon français ) :
    1. vérification des conditions du premier bloc : si elles sont atteintes, j'exécute le bloc d'actions et je recommence l'exécution au début du script, sauf si la fin du bloc d'action est l'instruction Continue
    2. si les conditions du premier bloc ne sont pas atteintes, je fais pareil pour le deuxième, et ainsi de suite jusqu'à la fin du script
    3. à la fin du script, si je n'ai trouvé aucune condition atteinte, je recommence au début du script à la prochaine itération (fonction de la période de rafraîchissement d'IA dans les options)

    Autrement dit, si une quelconque condition du script eseries est vérifiée en permanence avant tes ajouts, les actions en question seront effectuées et ton bloc ne sera jamais atteint.

    Pour vérifier si c'est le problème, mets tes ajouts en début de fichier.
    Sur le fond, tu as raison de les mettre à la fin, car ces tests ne sont pas prioritaires. Mais essaie quand même pour t'assurer que ça ne vient pas de toi.

    Par ailleurs, je pense que tu as oublié une condition importante pour sortir de ta boulimie de baies : si tu n'as pas assez de baies pour remonter à 100 %, ton script va continuer à vérifier la présence de baies en permanence, tout simplement parce que tu n'auras pas remis à 0 ta variable qui indique que tu es en train de te soigner.
    A mon avis, tu devrais ajouter une sortie du mode de soin dès que tu n'as plus aucune baie. Cela évitera que ton script passe son temps à vérifier la présence de baies, ce qui peut être long avec des sacs de contenance bien remplis.

    Ceci dit, cela n'a aucun rapport avec le problème que tu rencontres.
    Dernière modification par Isaya ; 17/04/2009 à 19h41. Motif: Correction d'une phrase incomplète
    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 !

  3. #3
    Date d'inscription
    January 2005
    Messages
    180

    Re : Scripts de comportement de Perso

    Isaya, merci de l'éclaircissement:
    notamment, les 3 points que tu indiques m'expliquent sans aucun doute le problème rencontré.

    En effet, tu as raison, mon script est imparfait . Je n'avais pas pensé à ce cas.

    Je vais y retravailler, et je viendrai poster le compte rendu
    Sith

  4. #4
    Date d'inscription
    January 2005
    Messages
    180

    Re : Scripts de comportement de Perso

    J'ai rajouté une partie pour clore la variable (à 0) si on n'a plus de baie.

    En mettant tout mon bloc de texte au début, tout fonctionne parfaitement.
    Il y avait donc sans doute un script en boucle, qui empêchait d'aller jusqu'à la fin du fichier.

    Peut être même vers le dernier bloc, qui concerne le truc minimal.

    Enfin, je suis content

    Prochain script: faire un sorcier sous enchainement qui ne gaspille pas tous ses sorts sur 1 seul monstre fort...
    Script après: faire un script pour mage/guerrier qui utilise ses sorts pour frapper au contact.
    Sith

Discussions similaires

  1. Réponses: 9
    Dernier message: 08/04/2016, 14h30
  2. Réponses: 5
    Dernier message: 28/03/2016, 09h48
  3. Réponses: 2
    Dernier message: 09/06/2015, 22h27
  4. Réponses: 20
    Dernier message: 14/03/2014, 10h27
  5. [SPL] Comment appliquer un script avec un sort (effet #82 Set AI Script) ?
    Par Ulfhedinn dans le forum Sorts et projectiles
    Réponses: 2
    Dernier message: 22/07/2012, 00h17

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