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:55:25


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
tails_2
Acolyte
Inscrit le: 18 Mar 2004
Messages: 33
Localisation: A gauche après le rond point (Lyon)
Répondre en citant
Posté le : 16/12/2004 19:05:34 Sujet du message : PBL OnAcquireItem

Voi, j'ai trouvé trois scripts fort intéressant. Mais le problème,c'est que les trois utilise le OnAcquireItem du module. Alors es-ce que je suis obliger de choisir lequel je vais utiliser ou es-ce que je peux les mettres tous. Si je peux tous les mettres j'aimerais savoir comment faire.
Je vous remercie d'avance.
_________________
AH AH AH Je reigne sur tout !! Merde où sont mes clefs ??????
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Laxam
Légende vivante
Inscrit le: 12 Avr 2004
Messages: 425
Localisation: Lyon
Répondre en citant
Posté le : 17/12/2004 11:13:56 Sujet du message :

J'ai pas tout très bien compris mais si je résume :

tu as trouvé 3 scripts qui t'interessent mais les 3 doivent se mettre dans le OnAquireItem du module mais comme il n'y a qu'une place tu te demandes comment faire. J'ai bien compris ?

Si c'est ça il te suffit de faire un mix de tes trois scripts pour n'en faire plus qu'un seul. Comme ça sans avoir tes scripts je ne peux te dire comment faire mais le script résultant sera de la forme :

void main()
{
script 1
script 2
script 3
}

en supprimant ce qui est en double...Confused
_________________
Mon site NWN nouvelle version et mon module Boisperdu en ligne ! Et maintenant un FORUM
La première version française de la doc du NPC Activities (version 2.0)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
tails_2
Acolyte
Inscrit le: 18 Mar 2004
Messages: 33
Localisation: A gauche après le rond point (Lyon)
Répondre en citant
Posté le : 19/12/2004 21:00:40 Sujet du message :

Si tu peux m'aider. Les scripts sont les suivants

1- Pour ma pierre de rappel
NWScript :
void main()
{
//enregistre dans oActivated le dernier objet utilise
object oActivated=GetItemActivated();

// si l'objet est la pierre de retour on prend l'utilisateur et on le teleporte au portail
if (GetTag(oActivated)=="PierreDeRetour")
{
// enregistre dans oUser l'utilisateur de l'objet
object oUser=GetItemActivator();

// On verifie que l'utilisateur est un PJ
if (GetIsPC(oUser))
{
AssignCommand(oUser, JumpToObject(GetObjectByTag("PortailDeRappel")));
}

}
}
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.


2- Pour un système de portail qui te téléporte là où tu es mort
NWScript :
///////debut////////////////// //
#include "NW_i0_plot"
void main()
{
IsRecall();
}
//////fin///////////////////// ////
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.


3 - Pour qu'un PNJ compte le nombre d'objet que possède le PJ
NWScript :
void main()
{
object oTest = GetModuleItemAcquired();
object oPossesseur = GetModuleItemAcquiredBy();
if (GetTag(oTest) == "cristalderoche")
    {
    ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_IMP_FORTITUDE_SAVING_THROW_USE),oPossesseur);
    SetLocalInt(oPossesseur,"cristalquest",GetLocalInt(oPossesseur,"cristalquest") + 1);
    FloatingTextStringOnCreature("En voila un de plus", oPossesseur, TRUE);
    }

// else if (GetTag(oTest) == "????")
// { }
}
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.


Voila les trois scripts
_________________
AH AH AH Je reigne sur tout !! Merde où sont mes clefs ??????
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Laxam
Légende vivante
Inscrit le: 12 Avr 2004
Messages: 425
Localisation: Lyon
Répondre en citant
Posté le : 20/12/2004 10:01:05 Sujet du message :

Pour le 1 et 2, pas de problème, il suffit de faire une "fusion".

void main()
{
//enregistre dans oActivated le dernier objet utilise
// Là on teste l'activation d'un objet

object oActivated=GetItemActivated();

// si l'objet est la pierre de retour on prend l'utilisateur et on le teleporte au portail
// Il faudra bien que ta pierre de rappel ait le tag : "PierreDeRetour" et qu'elle soit utilisable

if (GetTag(oActivated)=="PierreDeRetour")
{
// enregistre dans oUser l'utilisateur de l'objet
object oUser=GetItemActivator();

// On verifie que l'utilisateur est un PJ
if (GetIsPC(oUser))
{
// Il faut bien avoir un WayPoint ou un objet avec le tag "PortailDeRappel", c'est là que sera téléporté le joueur

AssignCommand(oUser, JumpToObject(GetObjectByTag("PortailDeRappel")));
}
}

// Là on test le fait que le joueur obtient un objet
// oTest est l'objet obtenu, oPossesseur est le personnage qui obtient l'objet
object oTest = GetModuleItemAcquired();
object oPossesseur = GetModuleItemAcquiredBy();

// Ton objet devra bien avoir le tag "cristalderoche"
// Là ton script va juste comptabiliser le nombre de cristaux obtenus (avec quelques effets)

if (GetTag(oTest) == "cristalderoche")
{
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_IMP_FORTITUDE_SAVING_THROW_USE),oPossesseur);
SetLocalInt(oPossesseur,"cristalquest",GetLocalInt(oPossesseur,"cristalquest") + 1);
FloatingTextStringOnCreature("En voila un de plus", oPossesseur, TRUE);
}
// pour d'éventuels autres objets...
// else if (GetTag(oTest) == "????")
// { }

}

Pour le script n°2, je sais pas trop se qu'il fait et dans le Lexicon ils disent de ne pas l'utiliser !!
Tu es sûr d'ailleurs qu'il faille le mettre dans le OnAquire du module ? Je suis pas sûr moi j'aurais plutôt tendance à le mettre dans le OnUse du portail mais comme je sais pas trop ce qu'il fait !!
D'ailleurs en y refléchissant, ça me paraît bizarre de mettre le script n°1 dans le OnAcquire du module, car ce n'est pas un objet acquis mais un objet "utilisé", j'ai pas NWN sous là main mais il n'y a pas un événement plus approprié dans les propriétés du module ? Du genre OnActiveItem non ?

J'essayerai de regarder ça ce soir.
_________________
Mon site NWN nouvelle version et mon module Boisperdu en ligne ! Et maintenant un FORUM
La première version française de la doc du NPC Activities (version 2.0)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Laxam
Légende vivante
Inscrit le: 12 Avr 2004
Messages: 425
Localisation: Lyon
Répondre en citant
Posté le : 20/12/2004 10:02:38 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
 
tails_2
Acolyte
Inscrit le: 18 Mar 2004
Messages: 33
Localisation: A gauche après le rond point (Lyon)
Répondre en citant
Posté le : 20/12/2004 10:06:00 Sujet du message :

LOOOOOL C'est pas grave

Pour la pierre de rappel j'utilise ce script dans le onacquier et ca marche bien dc voila.
Pour le portail j'utilise le script qu'à donnée cette personne regarde
[http]
Et pour le script trois j'utilise ce message
[http]

Voila voila, Donc on ne peut pas mettre le script 2 ????
_________________
AH AH AH Je reigne sur tout !! Merde où sont mes clefs ??????
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Laxam
Légende vivante
Inscrit le: 12 Avr 2004
Messages: 425
Localisation: Lyon
Répondre en citant
Posté le : 20/12/2004 10:19:18 Sujet du message :

Bon, la personne qui donne l'exemple semble dire qu'il faut le mettre dans le OnAquire... 9a doit donner ça alors :

NWScript :
#include "NW_i0_plot"

void main()
{
// Le recall
IsRecall();

//enregistre dans oActivated le dernier objet utilise


object oActivated=GetItemActivated();

// si l'objet est la pierre de retour on prend l'utilisateur et on le teleporte au portail
// Il faudra bien que ta pierre de rappel ait le tag : "PierreDeRetour" et qu'elle soit utilisable

if (GetTag(oActivated)=="PierreDeRetour")
{
// enregistre dans oUser l'utilisateur de l'objet
object oUser=GetItemActivator();

// On verifie que l'utilisateur est un PJ
if (GetIsPC(oUser))
{


AssignCommand(oUser, JumpToObject(GetObjectByTag("PortailDeRappel")));
}
}


// oTest est l'objet obtenu, oPossesseur est le personnage qui obtient l'objet
object oTest = GetModuleItemAcquired();
object oPossesseur = GetModuleItemAcquiredBy();

// Ton objet devra bien avoir le tag "cristalderoche"


if (GetTag(oTest) == "cristalderoche")
{
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_IMP_FORTITUDE_SAVING_THROW_USE),oPossesseur);
SetLocalInt(oPossesseur,"cristalquest",GetLocalInt(oPossesseur,"cristalquest") + 1);
FloatingTextStringOnCreature("En voila un de plus", oPossesseur, TRUE);
}

// else if (GetTag(oTest) == "????")
// { }

}
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.


Voilà, tu me diras si ça marche.
_________________
Mon site NWN nouvelle version et mon module Boisperdu en ligne ! Et maintenant un FORUM
La première version française de la doc du NPC Activities (version 2.0)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
tails_2
Acolyte
Inscrit le: 18 Mar 2004
Messages: 33
Localisation: A gauche après le rond point (Lyon)
Répondre en citant
Posté le : 20/12/2004 10:50:58 Sujet du message :

Un grand merci à toi, je te tien au courant dès que j'aurais tester ce script !!!!!!
_________________
AH AH AH Je reigne sur tout !! Merde où sont mes clefs ??????
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
spidernono
Novice
Inscrit le: 26 Aoû 2004
Messages: 17
Répondre en citant
Posté le : 20/12/2004 12:58:17 Sujet du message :

Bonjour à tous,

Je risque d'être un peu hors sujet concernant ce topic, mais bon...

Personnellement, depuis HOTU, je n'utilise plus le OnAquireItem du module pour utiliser des objets du type pierre de rappel...

Je procède comme ça :

1/ Je laisse les scripts par défaut dans les propriétés du module

2/ Je créé ma pierre de rappel, avec un tag spécifique (of course)

3/ Je créé un script qui a comme nom le TAG de l'objet (ex : TAG de la pierre : pr ; NOM du script qui fait la téléportation : pr)

C'est tout, et ça marche nikel quand j'utilise la pierre out tout autre objet.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Jaheira 007
Seigneur
Inscrit le: 24 Juin 2004
Messages: 223
Répondre en citant
Posté le : 20/12/2004 19:31:34 Sujet du message :

Mais attends un peu, tu le place où ton script pour ta pierre de rappel? Il faut bien le placer dans un endroit spécifique pour qu'il marche.
_________________
La nature reprendra ses droits ici, aprés notre passage.
 
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 : 20/12/2004 20:18:41 Sujet du message :

Non, depuis HoU le simple fait de nommer ton script comme le tag de l'objet suffit.
_________________
http://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
spidernono
Novice
Inscrit le: 26 Aoû 2004
Messages: 17
Répondre en citant
Posté le : 21/12/2004 06:29:59 Sujet du message :

Je confirme... A partir du momment où ton script se nomme comme le tag de ton objet, le script n'est placé nulle part, et il marche tout seul !!

Le nom du script par défaut est celui-ci : x2_mod_def_equ (a mettre dans les evènements OnplayerEquipItem)

Et voici un bout du code de ce script :

NWScript :
// ------------------------------ ------------------------------ -------------
    // Generic Item Script Execution Code
    // If MODULE_SWITCH_EXECUTE_TAGBASED _SCRIPTS is set to TRUE on the module,
    // it will execute a script that has the same name as the item's tag
    // inside this script you can manage scripts for all events by checking against
    // GetUserDefinedItemEventNumber( ). See x2_it_example.nss
    // ------------------------------ ------------------------------ -------------
    if (GetModuleSwitchValue(MODULE_SWITCH_ENABLE_TAGBASED_SCRIPTS) == TRUE)
    {
        SetUserDefinedItemEventNumber(X2_ITEM_EVENT_EQUIP);
        int nRet = ExecuteScriptAndReturnInt(GetUserDefinedItemEventScriptName(oItem),OBJECT_SELF);
        if (nRet == X2_EXECUTE_SCRIPT_END)
        {
          return;
        }
    }
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.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Laxam
Légende vivante
Inscrit le: 12 Avr 2004
Messages: 425
Localisation: Lyon
Répondre en citant
Posté le : 21/12/2004 09:26:58 Sujet du message :

Ca marche comment ton truc ? Le script est lancé à quel moment ? Lorsque l'objet est "obtenu", équipé ou utilisé ? Je vois pas bien comment ça marche.Confused
_________________
Mon site NWN nouvelle version et mon module Boisperdu en ligne ! Et maintenant un FORUM
La première version française de la doc du NPC Activities (version 2.0)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
spidernono
Novice
Inscrit le: 26 Aoû 2004
Messages: 17
Répondre en citant
Posté le : 21/12/2004 09:30:18 Sujet du message :

Ca marche quand l'objet est utilisé par exemple, lorsque tu crée ton objet "pierre de rappel" , tu lui assigne le pouvoir unique, sur soi, le script s'exécutera lors de son utilisation.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
tails_2
Acolyte
Inscrit le: 18 Mar 2004
Messages: 33
Localisation: A gauche après le rond point (Lyon)
Répondre en citant
Posté le : 21/12/2004 09:45:26 Sujet du message :

Donc je peux génerer autant de script que je veux je ne les places pas dans onacquier mais je les appels du meme nom que le script de base de onacuier dans le module et ca devrait marcher ?
_________________
AH AH AH Je reigne sur tout !! Merde où sont mes clefs ??????
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
spidernono
Novice
Inscrit le: 26 Aoû 2004
Messages: 17
Répondre en citant
Posté le : 21/12/2004 10:02:26 Sujet du message :

Oui si tu remplis ces conditions :

1/ Dans les évènements du module, le champ OnplayerEquipItem possède le script x2_mod_def_equ

2/ Tes objets on un pouvoir unique

3/ Le nom de ton script est le même (attention à la casse) que le tag de ton objet.
 
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 72.226ms