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 22:47:47


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
S@ntoS
Seigneur
Inscrit le: 12 Déc 2004
Messages: 169
Localisation: J'aimerais bien le savoir.
Répondre en citant
Posté le : 23/01/2005 17:06:19 Sujet du message : Script sur le "OnEnter", "OnExit" Aréa.

Salut,

Je rencontre une difficulté avec ce sript. Il est placé dans le « On Enter » d'une zone. Il fonctionne parfaitement. Problème, quand le PJ quitte la zone, il demeure affecté par l'effet. Or, j'aimerai que l'effet ne se produise que dans la zone concernée. Bien sur, je m'attendais à rencontrer cette anomalie, mais je ne parviens à la résoudre. Je me doute bien qu'il faudrait déclarer un script dans le « OnExit » de la zone. Mais j'ignore lequel. Bien entendu, j'ai testé la fonction
« DURATION_TYPE_TEMPORARY , X secondes », pas très concluante.

Si quelqu'un pouvait m'aider, merci.
@+.f€r. Surprised

NWScript :Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.

_________________
L'oiseau vole, le serpent rampe et l'homme... heu, j'en sais rien. Surprised
Le RP, cé vrémant tro z'injuste !Calimero
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
S@ntoS
Seigneur
Inscrit le: 12 Déc 2004
Messages: 169
Localisation: J'aimerais bien le savoir.
Répondre en citant
Posté le : 23/01/2005 17:22:56 Sujet du message :

J'ai essayé ça (voir script plus bas) dans le « OnExit » de la zone. Ça ne marche pas. Surprised



NWScript :Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.

_________________
L'oiseau vole, le serpent rampe et l'homme... heu, j'en sais rien. Surprised
Le RP, cé vrémant tro z'injuste !Calimero
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
S@ntoS
Seigneur
Inscrit le: 12 Déc 2004
Messages: 169
Localisation: J'aimerais bien le savoir.
Répondre en citant
Posté le : 23/01/2005 19:45:39 Sujet du message :

Je viens de trouver une parade, en plaçant le script dans le « OnHearthBeat » de la zone et en plaçant un « TEMPORARY_EFFECT » de 6 secondes. Vous aurez compris le tour de passe-passe. La méthode s'avère néanmoins peu orthodoxe.

Si quelqu'un avait mieux à me proposer, je lui en serai reconnaissant.

@+.f€r. Surprised
_________________
L'oiseau vole, le serpent rampe et l'homme... heu, j'en sais rien. Surprised
Le RP, cé vrémant tro z'injuste !Calimero
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Aldigo
Chevalier
Inscrit le: 23 Jan 2005
Messages: 70
Répondre en citant
Posté le : 23/01/2005 22:01:04 Sujet du message :

Salut à toi S@ntos.

Ta première solution me semble la bonne, débutant dans ce domaine je te prpose cette solution qui fonctionne.
Quelqu'un à peut être mieux.

Script à me mettre dans OnEnter :

// On Enter

/* Script generated by
Lilac Soul's NWN Script Generator, v. 1.6

For download info, please visit:
[http] */

//Put this OnEnter
void main()
{

object oPC = GetEnteringObject();

if (!GetIsPC(oPC)) return;

object oTarget;
oTarget = oPC;

//Visual effects can't be applied to waypoints, so if it is a WP
//apply to the WP's location instead

int nInt;
nInt = GetObjectType(oTarget);

if (nInt != OBJECT_TYPE_WAYPOINT) ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_DUR_GLOW_LIGHT_BLUE), oTarget);
else ApplyEffectAtLocation(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_DUR_GLOW_LIGHT_BLUE), GetLocation(oTarget));

}


Script à mettre dans On Exit :

//OnExit
#include "nw_i0_spells"

void main()
{
object oPC=GetExitingObject();

if (!GetIsPC(oPC)) return;

RemoveSpecificEffect(EFFECT_TYPE_VISUALEFFECT,oPC);

}

En espérant que cela réponde à ta question.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
S@ntoS
Seigneur
Inscrit le: 12 Déc 2004
Messages: 169
Localisation: J'aimerais bien le savoir.
Répondre en citant
Posté le : 23/01/2005 22:41:13 Sujet du message :

Puisque tu débutes, c'est un bon début. Ton script fonctionne parfaitement. Merci beaucoup, Aldigo.
Pourrais-tu m'indiquer l'URL du « Lilac Soul's NWN Script Generator, v. 1.6 » pour que je le mentionne en début de script ?

@+.f€r. Surprised
_________________
L'oiseau vole, le serpent rampe et l'homme... heu, j'en sais rien. Surprised
Le RP, cé vrémant tro z'injuste !Calimero
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 23/01/2005 23:07:31 Sujet du message :

 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Athanagorn
Acolyte
Inscrit le: 12 Déc 2004
Messages: 38
Répondre en citant
Posté le : 24/01/2005 10:29:56 Sujet du message :


S@ntoS a écrit :
J'ai essayé ça (voir script plus bas) dans le « OnExit » de la zone. Ça ne marche pas. Surprised



NWScript :Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.
La démarche pour supprimer un effect est un peu particulière. ce que tu faitici, c'est créer un nouvel effect, que tu essaies ensuite de supprimer, sans l'avoir appliqué d'ailleurs.
Ce qu'il faut faire pour supprimer un effect, c'est boucler sur la liste (chainée) des effect avec GetFirstEffect / GetNextEffect, vérifier si l'effect en cours correspond à ton effect avec GetEffectType, GetEffectSubType, GetEffectDurationType, eventuellement aussi avec GetEffectCreator ou GetEffectSpellId, et ensuite le supprimer (le cas echéant) avec RemoveEffect.

J'ai pas NWN sous la main, mais je suis sûr à 95% que RemoveSpecificEffect est une fonction qui doit ressembler à ceci:

NWScript :
void RemoveSpecificEffect(int nEffectTypeID, object oTarget)
{
  effect eEff = GetFirstEffect(oTarget);
  while(GetIsEffectValid(eEff))
  {
    if(nEffectTypeID==GetEffectType(eEff)) RemoveEffect(eEff);
    eEff = GetNextEffect();
  }
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


En fait, je viens de relire la description de NWNLexicon, et j'en suis maintenant sûr à 99%.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
S@ntoS
Seigneur
Inscrit le: 12 Déc 2004
Messages: 169
Localisation: J'aimerais bien le savoir.
Répondre en citant
Posté le : 24/01/2005 12:07:51 Sujet du message :

Salut,

Oui, cela fonctionne. Le script est beaucoup plus simple et plus clair. Je prends. Merci beaucoup à tous pour votre aide.

@+.f€r. Surprised
_________________
L'oiseau vole, le serpent rampe et l'homme... heu, j'en sais rien. Surprised
Le RP, cé vrémant tro z'injuste !Calimero
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
S@ntoS
Seigneur
Inscrit le: 12 Déc 2004
Messages: 169
Localisation: J'aimerais bien le savoir.
Répondre en citant
Posté le : 24/01/2005 12:13:17 Sujet du message :

Ah, j'allais oublier !
Merci pour les explications Atha, car effectivement, j'ignorais comment m'y prendre pour supprimer un effet, et quelle commande appliquer.

++ Surprised
_________________
L'oiseau vole, le serpent rampe et l'homme... heu, j'en sais rien. Surprised
Le RP, cé vrémant tro z'injuste !Calimero
 
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.719ms