Affichage des résultats 1 à 5 sur 5

Discussion: [SCRIPT] Déclenchement de l'évènement sur un PNJ

  1. #1
    Date d'inscription
    mars 2010
    Localisation
    Paris
    Messages 
    1 298

    [SCRIPT] Déclenchement de l'évènement sur un PNJ

    Je désire déclencher un évènement quelque soit la créature qui passe sur la zone.

    Le script se déclenche uniquement si c'est une créature du groupe.

    IF
    Entered([ANYONE])
    THEN
    RESPONSE #100
    OpenDoor("PS5")
    END
    Le code simple mais ça ne marche pas. :-(

    J'ai essayé différentes configurations avec DLTCEP mais au passage d'un PNJ, la porte ne s'ouvre pas contraitement à une créature du groupe.
    Miniatures attachées Miniatures attachées -trigger.png  

  2. #2
    Date d'inscription
    avril 2011
    Localisation
    Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
    Messages 
    5 837
    En général pour déclencher un message lorsque le groupe passe sur une zone, j'utilise ceci :

    Code:
    IF
      OR(4)
    	Name("Info11",Myself)
    	Name("Info12",Myself)
    	Name("Info13",Myself)
    	Name("Info14",Myself)
      OR(3)
    	Range([PC],15)
    	Entered([PC])
    	IsOverMe([PC])
    THEN
      RESPONSE #100
    	DisplayStringHead(Myself,@2001002) // ~Ce bâtiment tombe en ruines. Il n'est pas prudent d'y pénétrer.~
    	TriggerActivation(Myself,FALSE)
    END
    
    IF
      Name("Info01",Myself)
      OR(3)
    	Range([PC],15)
    	Entered([PC])
    	IsOverMe([PC])
    THEN
      RESPONSE #100
    	DisplayStringHead(Myself,@2000002) // ~Lorsque vous arrivez sur le quai, votre attention est immédiatement attirée par les volutes de fumée qui s'en échappent. Le sol est jonché de cadavres de soldats et la puanteur est insoutenable.~
    	TriggerActivation(Myself,FALSE)
    END
    
    IF
      Name("Info02",Myself)
      OR(2)
    	Entered([PC])
    	IsOverMe([PC])
    THEN
      RESPONSE #100
    	DisplayStringHead(LastTrigger,@2000003)	// ~Ce pavement en marbre a été totalement dévasté et ne contient plus que quelques gravats épars et des débris de pierres.~
    	TriggerActivation(Myself,FALSE)
    END
    
    IF
      Name("Info03",Myself)
      OR(2)
    	Entered([PC])
    	IsOverMe([PC])
    THEN
      RESPONSE #100
    	DisplayStringHead(LastTrigger,@2000004)	// ~Tous ces cadavres mutilés, ce silence et ce port déserté... Un frisson de danger parcourt votre nuque. Quelque chose ici n'est pas normal.~
    	TriggerActivation(Myself,FALSE)
    END
    Pas ailleurs, tu n'as pas besoin de cocher la case Walk : là encore, de mémoire, elle ne fonctionnait pas correctement dans BG2.

    Enfin, à tout hasard : ce n'est pas le nom de la porte que tu dois inclure dans OpenDoor(), mais celui de son Identifiant. D'où l'intérêt de leur donner le même.

    Édit : Fais aussi attention à l'utilisation de [ANYONE]. Si mes souvenir sont exacts, il me semble qu'il n'était pas présent dans tous les fichiers IDS et donc pas tout le temps reconnu par le moteur et que des mods l'ont ajouté. Essaie de le remplacer par [0] pour voir.

    Je ne l'ai plus en tête, mais il me semble qu'un moins un script de BG2 permet de le faire. As-tu essayé une recherche de l'action OpenDoor avec NI ?



    Après réflexion : assure-toi que ta porte est bien fermée.

    Code:
    IF
    	IsOverMe([ANYONE])
    	Global("MyVariable","MyMap",0)
    	OpenState("PS5",FALSE)
    THEN
    	RESPONSE #100
    		SetGlobal("MyVariable","MyMap",1)
    //		Unlock("PS5") ==> Si ton passage secret est verrouillé.
    		OpenDoor("PS5")
    END
    Dernière modification par Freddy_Gwendo ; 02/04/2017 à 14h07.
    CARPE DIEM...
    Co-modérateur de La Forge et de La Chambre des Scribes
    Moddeur qui s'arrache les cheveux...

  3. #3
    Date d'inscription
    mars 2010
    Localisation
    Paris
    Messages 
    1 298
    Pas mieux avec [0].

    Ca fonctionne bien si c'est un perso du groupe.

    Rien ne se passe si c'est un PNJ.

    Pour le moment, je n'ai pas testé ton code proposé.


    Cocrane

  4. #4
    Date d'inscription
    avril 2011
    Localisation
    Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
    Messages 
    5 837
    Tu as essayé avec LastTrigger ? Ou tout simplement Range (LastTrigger,1) sans IsOverMe ?
    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
    mars 2010
    Localisation
    Paris
    Messages 
    1 298
    Bilan des essais (pour faire simple):

    Entered réagit uniquement si c'est un PC qui passe sur la zone.

    Isoverme réagit quelque soit la créature qui est sur la zone. Par contre, tant que la créature est sur la zone, le script se déclenche en boucle.

    Ranged réagit quelque soit la créature et le script se déclenche en boucle tant que la créature est à la bonne distance.


    Je n'ai pas trouvé le moyen de tester efficacement l'inverse de Hors zone avec Isoverme. Que je mette '!' ou pas le script se déclenche. Je voulais gérer une priorité à l'ouverture, vu que j'ai une zone qui provoque l'ouverture et une autre qui la ferme.

    Conclusion, j'ai opté pour Ranged.

    Cocrane

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/06/2015, 22h09
  2. Réponses: 8
    Dernier message: 07/05/2015, 11h56
  3. [Evènement]La Fête du Cinéma 2007
    Par Duo dans le forum Cinéma, Vidéos et Télévision
    Réponses: 3
    Dernier message: 21/06/2007, 18h22
  4. [Evènement] LES PLEINS POUVOIRS
    Par Perdigan Foxglove dans le forum Les archives de Lumenis
    Réponses: 28
    Dernier message: 01/05/2004, 11h09
  5. [Evénement] Le tournoi
    Par dragum dans le forum Les archives des quêtes de Melandis
    Réponses: 331
    Dernier message: 20/05/2003, 18h25

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