La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/11/2024 21:35:28


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Lavok
Légende vivante
Inscrit le: 22 Oct 2002
Messages: 434
Localisation: Sphère planaire
Répondre en citant
Posté le : 23/04/2003 16:58:18 Sujet du message : O rage ! O désespoir ! O saleté de script foireux !

Voilà la situation : je désire créer une barrière qui repoussera celui essayant de la franchir alors qu'elle est activée à un petit waypoint pas très loin. Toutes les six secondes, la barrière est activée pour trois secondes. Il est bien évident qu'il est très facile de franchir la barrière, il suffit d'attendre qu'elle soit désactivée. Mais ça se passe dans un contexte bien particulier où le joueur aura tendance à être pressé. Lorsque la barrière ( délimitée par des petits pilliers ) est activée, on a droit à un effet visuel d'éclair entre deux objets invisibles placés sur les pilliers. Jusque là, aucun problème. Par contre, pour une raison que j'aimerais connaître, à partir du moment où on s'éloigne assez pour que le son produit par l'éclair ( en fait, il y en a deux, pour les deux sens ) soit imperceptible, et qu'on y retourne, on constate quelque chose d'assez étrange. Lorsque l'éclair devait ne pas être là, il y est et quand il devait y être, il y est en double ! C'est d'autant plus étrange que si on est hors de vue de la barrière au début puis qu'on s'en approche, il n'y a aucun problème. Et même pas besoin d'avoir traversé la barrière pour faire planter le tout. Si quelqu'un a une explication, elle serait bienvenue.

Voici donc les scripts concernés.
Dans le 'OnHeartBeat' d'un objet invisible :
Code :

void main()
{
object oWP =GetWaypointByTag("WP_Linda1A");
object oEclair = GetNearestObjectByTag("Eclair1A", oWP);
object oEclair2 = GetNearestObjectByTag("Eclair2A", oWP);
effect eVis =  EffectBeam(VFX_BEAM_LIGHTNING, oEclair, BODY_NODE_CHEST);
effect eVis2 =  EffectBeam(VFX_BEAM_LIGHTNING, oEclair2, BODY_NODE_CHEST);
AssignCommand(oEclair, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVis, oEclair2, 3.0));
AssignCommand(oEclair2, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVis2, oEclair, 3.0));
SetLocalInt(OBJECT_SELF, "eclair1", 1);
DelayCommand(3.0, SetLocalInt(OBJECT_SELF, "eclair1", 0));
}

Et dans le 'OnEnter' d'un trigger placé entre les deux pilliers :
Code :

void main()
{
object oEnter = GetEnteringObject();
object oWP = GetWaypointByTag("WP_Nickelburg");
effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_2);
if(GetLocalInt(GetNearestObjectByTag("Zone"), "eclair1")==1)
{
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oEnter);
AssignCommand(oEnter, ClearAllActions());
 AssignCommand(oEnter, JumpToObject(oWP));
 }
}

_________________
ToB : Une seule chose semble certaine : tant que le trône de sang de Bhaal restera vide, le chaos règnera.

Moi : Une seule chose semble certaine : tant que la tête de singe de Bush restera vide, le chaos règnera.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Taern
Ecuyer
Inscrit le: 11 Avr 2003
Messages: 45
Localisation: 92
Répondre en citant
Posté le : 23/04/2003 21:51:49 Sujet du message :

Bon alors déja je ne suis pas sûr que créer 2 effets de rayon (un par colonne) soit vraiment nécessaire Razz Essaie de n'en laisser qu'un pour voir si cela arrange le problème.

A part ça, j'avais cru entendre que la féquence du OnHeartBeat n'était pas toujours fixe ... Malgré tout on s'attendrais plutot ici à ce qu'il se déclenche MOINS soivent lorsque le PJ est loin du plaçable. Or ce n'est pas ce qui semble se passer, si 2 rayons se superposent Smile

Oh et puis je ne crois pas que les AssignCommand soient très utiles non plus, vu que la source et la destination du rayon sont déja spécifiées dans ApplyEffetToObject et EffectBeam. Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Numéro ICQ Ignorer l'utilisateur
 
Lavok
Légende vivante
Inscrit le: 22 Oct 2002
Messages: 434
Localisation: Sphère planaire
Répondre en citant
Posté le : 24/04/2003 17:30:26 Sujet du message :

En fait, j'ai fait deux éclairs parce que, dans cet effet graphique, un des deux bouts est fini par une sorte de boule. Pour ne pas que ce soit assymétrique, j'en ai rajouté un deuxième dans l'autre sens.

Je peux toujours essayer avec un seul éclair, mais ça ne constitue pas une solution définitive même au cas où ça marcherait vu que c'est assez moche.

Avant, je mettais aussi la condition que la variable soit à 0 et je dissipais tous les effets. Cela n'ayant rien changé au problème, je les ai enlevés. J'ai plutôt l'impression qu'au lieu de se déclencher une deuxième fois en moins de temps que prévu, le premier effet se transforme en permanent et ne se dissipe plus ( même avec RemoveEffect()) !

Et puis bon, pour les AssignCommand, avant j'avais placé le script à un endroit où ils étaient nécessaires, et malgré le fait qu'ils ne le sont plus maintenant, je ne les ai pas retirés, eux.
_________________
ToB : Une seule chose semble certaine : tant que le trône de sang de Bhaal restera vide, le chaos règnera.

Moi : Une seule chose semble certaine : tant que la tête de singe de Bush restera vide, le chaos règnera.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 1 sur 1 ¤


Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 39.202ms