Petit pb On Enter d'une zone

Répondre
Partager Rechercher
Bien le bonjour à tous, et bien voilà j'ai un petit problème sur un de mes scripts et comme je comprends pas tout je viens chercher l'avis des experts que vous êtes

Alors j'ai fait un script qui créé un certains nombre de creatures lorsqu'un joueur entre dans la zone, alors à la façon dont réagit le script j'ai l'impression que lorsque je fait un CreateObject() d'une creature sur la zone, ca execute l'évenement on enter de la zone également, es-ce possible ?

Et si c'est possible mon problème viens lorsqu'un joueur qui est seul dans la zone utilise le sort Transformation de tenser, apparament le sort fait également un CreateObjet() ou quelque chose du meme genre car à ce moment là je vois toutes mes creatures se supprimer et réaparaitre ...

(Hum ... j'espère que je me suis fait comprendre ! )

Bon en fait ma première question c'est es-ce que le on enter de la zone est bien apellé lorsqu'on créer une bestiole ?
oui, c'est plus que possible : c'est sur :

Un CreateObject declenche :
- Le OnEnter de la zone
- Le OnSpawn de la creature


A noter qu'une polymorphie aussi, declenche le OnEnter (ca, c'est nul, bioware ! Un peu d'attention aurait corrigé cela)
Ok ! Merci beaucoup ....

Bon alors du coup j'ai problème !
Je gere un compteur de joueur dans la zone, quand il est à zéro normalement je supprime toutes les creatures et quand il est à 1 je les recréer toutes, le problème c'est qu'un lorsqu'il n'y a qu'un seul joueur dans la zone et qu'il fait une polymorphie ben ca passe à 0 puis à 1 et comme c'est bien le joueur ca refait la supression et la création ...

Y a t-il un moyen de savoir que le joueur fait une polymorphie ? Ou es-ce que vous avez une idée pour pallier à ce petit problème ?
Oui c'est ce que je fait !
Le problème est que quand un mage fait une transformation de tenser ca fait le on exit et le on enter un derriere l'autre car le joueur disparait et réapparait sous une autre forme, du coup s'il est seul dans la zone ben ça fait

- Lancement du sort
- Compteur passe à zero --> Suppression des creatures
- Joueur polymorphé
- Compteur repasse à 1 --> Respawn des creatures !

En clair si le joueur est en train de se battre et se transforme, toutes les creatures disparaissent d'un coup pour réapparaitre
à leur point de respawn !
J'ai p'tet une ch'tite idée...

Il faudrait retardé l'execution de ton script du OnExit.
Pour ça, il faut mettre ce script à part, genre "tempo_exit".

Dans le OnExit, tu met:

Code PHP:

SetLocalIntOBJECT_SELF"Tempo"TRUE);
DelayCommand2.0fExecuteScript"tempo_exit"OBJECT_SELF));
DelayCommand2.1fSetLocalIntOBJECT_SELF"Tempo"FALSE)); 
Le script tempo_exit va vérifier qu'il n'y a vraiment plus personne dans la zone et donc faire disparaître les bestioles.

Dans le OnEnter, on vérifie si la variable local Tempo n'est pas TRUE. Si elle est TRUE, cela veut dire que les creatures sont toujours présentes, donc pô de respawn.


C'est p'tet pô de l'optimal mais l'idée est je pense intéressante

(ya tjr moyen de n'utiliser qu'un seul script pour le OnExit...)
Et en attendant, tu previens les developeur de ce "bug" ( ce n en est pas vraiment un je pense ), et il integreront la modif dans un prochain patch ( reste a voir si en veront l utilité ) ! mais bien sur, tu utilise la superbe idée de skanzo
Merci beaucoup à tous, moi ce que j'avais fait en attendant de trouver mieux c'est modifié le code des sorts de polymorphie pour qu'il fixe une variable à 1 quand un joueur dans la zone faisait cette polymorphie ainsi quand elle était à 1 je ne faisait rien et je la repassait à 0 dans le on_enter ...

Mais l'idée de Skanzo est mieux !
mais, c'est bizarre qu'il en est pas été question avant quand même, en tt cas sur ce forum ... parce que des compteurs de PJ y en un peu partout, en tt cas dans les permanents, et des sorts de polymorphie aussi
non ?
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés