La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 22/09/2024 17:36:42


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Manlight
Novice
Inscrit le: 02 Mar 2005
Messages: 13
Répondre en citant
Posté le : 02/03/2005 01:58:32 Sujet du message : Perdre un objet ramssé

Bonjour,

J'explique : Lorsque qu'un PJ meurs, j'ai fait un script qui permet de déposer un objet à terre suivant son alignement.

Maintenant, si un autre PJ ramasse cet objet, je voudrais que cet objet soit détruit s'il est du même alignement que le PJ mort

Merci
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Laxam
Légende vivante
Inscrit le: 12 Avr 2004
Messages: 425
Localisation: Lyon
Répondre en citant
Posté le : 02/03/2005 19:17:27 Sujet du message :

J'ai pas très bien compris ce que tu souhaites faire mais si ça doit se déclencher lorsque le joueur ramasse l'objet, c'est dans OnAquireItem du module qu'il faut mettre ton script.
D'après ce que j'ai compris, il faut ensuite tester l'alignement du joueur qui aquire l'objet (avec le Lexicon et l'aide contextuel de l'éditeur) tu devrais pouvoir trouver.
Pour connaître l'alignement du mort et bien dans ton script qui dépose l'objet, tu récupère l'objet du mort et tu le stockes dans une variable sur l'objet.
_________________
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
 
Manlight
Novice
Inscrit le: 02 Mar 2005
Messages: 13
Répondre en citant
Posté le : 02/03/2005 20:32:39 Sujet du message :

Alors je réexplique : Very Happy

J'ai ce script que j'ai réussi à faire :

NWScript :
object oPC = GetEnteringObject();
object oTarget;
location lTarget;
oTarget = oPC;
lTarget = GetLocation(oTarget);
int iAlign = GetAlignmentGoodEvil(oPC);

    //regarde l'alignement
    if (iAlign == ALIGNMENT_GOOD)
      {
      CreateObject(OBJECT_TYPE_ITEM, "coeurdevivant", lTarget);
      }

      if (iAlign == ALIGNMENT_NEUTRAL)
      {
      CreateObject(OBJECT_TYPE_ITEM, "item", lTarget);
      }

      if (iAlign == ALIGNMENT_EVIL)
      {
      CreateObject(OBJECT_TYPE_ITEM, "item001", lTarget);
      }
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.


Ce script fait tomber l'objet que je veux par alignement.

Mais ce que je veux faire, c'est si un alignement bon prend un objet de son alignement (ici : "coeurdevivant") je veux qu'il disparaisse de son inventaire.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Laxam
Légende vivante
Inscrit le: 12 Avr 2004
Messages: 425
Localisation: Lyon
Répondre en citant
Posté le : 03/03/2005 19:25:28 Sujet du message :

Et bien il faut faie ce que j'ai dit :

NWScript :
object oPC = GetEnteringObject();
object oTarget;
location lTarget;
oTarget = oPC;
lTarget = GetLocation(oTarget);
int iAlign = GetAlignmentGoodEvil(oPC);

    //regarde l'alignement
    if (iAlign == ALIGNMENT_GOOD)
      {
      CreateObject(OBJECT_TYPE_ITEM, "coeurdevivant", lTarget);
      // Ca stocke l'alignement du mort sur l'objet
      // Remarque ce que tu peux faire aussi c'est mettre cette valeur
     
     
     
      SetLocalInt(GetObjectByTag("Tag_du_coeurdevivant"), "vAlign", iAlign);
      }

      if (iAlign == ALIGNMENT_NEUTRAL)
      {
      CreateObject(OBJECT_TYPE_ITEM, "item", lTarget);
      SetLocalInt(GetObjectByTag("Tag_du_item"), "vAlign", iAlign);
      }

      if (iAlign == ALIGNMENT_EVIL)
      {
      CreateObject(OBJECT_TYPE_ITEM, "item001", lTarget);
      SetLocalInt(GetObjectByTag("Tag_du_item001"), "vAlign", iAlign);
      }
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.


Ensuite il faut géré le fait de ramasser l'objet (je crois qu'il y a un truc en version 1.65 qui fait qu'il suffit d'avoir un script qui porte le même nom que le tag (là si quelqu'un peut confirmer) Quoiqu'il en soit si ce n'est pas le cas, ce script tu lme mettras dans le OnAquire Item du modude :

NWScript :
void main()
  {
  //objet aquis
  object oItem = GetModuleItemAcquired();
  if ((GetTag(oItem) == "1er tag") || ((GetTag(oItem) == "2eme tag") || (GetTag(oItem) == "3eme tag") )
    {
   
    object oPC = GetModuleItemAcquiredBy();
    // alignement
    int iAlign = GetAlignmentGoodEvil(oPC);
    int vAlign = GetLocalInt(oItem, "vAlign");
    if (iAlign == vAlign)
        {
       
        DestroyObject(oItem);
        }
    }
/* warning: 1 unclosed block {} */
/* warning: 1 unclosed parenthesis () */
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à, en espérant que ça fonctionne
_________________
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
 
Manlight
Novice
Inscrit le: 02 Mar 2005
Messages: 13
Répondre en citant
Posté le : 04/03/2005 20:01:08 Sujet du message :

C'est bon merci ca a marché. Laughing

Attention Laxam t'avait ouvert une parenthèse de trop, j'ai cherché un moment avant de comprendre pourquoi le vérificateur de jeter Laughing
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Laxam
Légende vivante
Inscrit le: 12 Avr 2004
Messages: 425
Localisation: Lyon
Répondre en citant
Posté le : 04/03/2005 20:23:47 Sujet du message :

désolé pour la parenthèse, j'ai fait le script sans l'editeur alors ça arrive...
Très bien si ça a répondu à ta question.
_________________
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
 
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 109.749ms