La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 03/05/2025 00:18:15


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
zogzog59
Grand Chevalier
Inscrit le: 16 Jan 2005
Messages: 123
Répondre en citant
Posté le : 24/03/2006 20:05:02 Sujet du message : fabrication artisanale d'arbalète

glop glop encore moi ^^ ...

j'essaye de faire un script pour créer une arballète (par exemple) en utilisant un trépier.

je voudrai que si le Pj possède des outils de menuisier dans son inventaire, et qu'il dépose dans l'inventaire du trépier un morceau de bois,et qu'après un jet de caractéristique (ici un jet de reflexe), il s'en suit, la création d'une arbalète dans l'inventaire du trépier.Tout cela après que le pj ai fermé l'inventaire du trépier.

mais comme tout débutant en script mon script ne marche pas,et ne se compile pas, où plus concrètement il est à chier Embarassed

NWScript :
void main()
{

object oItem = GetFirstItemInInventory(OBJECT_SELF);
string sTag = "tag_du_bois";
string oOutil = "resref_hachette";
string sItemTemplate1 = "resref_de_objet_a_cree";
object oTarget = OBJECT_SELF;
object oPc = GetLastUsedBy();

if (GetIsObjectValid(oItem))
    {
    if (GetTag(oItem) == sTag )
        {
      if(GetItemPossessedBy(oPc,oOutil))
          {
          int iReflex=ReflexSave(oPC,20);
          CreateItemOnObject(sItemTemplate1, oTarget);
          }
        }
    }

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


merci de votre aide mes seigneurs ^^.
_________________
Les vaux module rp
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
-MeteZ-
Seigneur
Inscrit le: 19 Mar 2006
Messages: 205
Localisation: Région Parisienne (95)
Répondre en citant
Posté le : 24/03/2006 20:15:05 Sujet du message :

Essaye comme ca ?
NWScript :
void main()
{

object oItem = GetFirstItemInInventory(OBJECT_SELF);
string sTag = "tag_du_bois";
string sOutil = "resref_hachette";
string sItemTemplate1 = "resref_de_objet_a_cree";
object oTarget = OBJECT_SELF;
object oPc = GetLastUsedBy();

if (GetIsObjectValid(oItem))
{
if (GetTag(oItem) == sTag )
{
if(GetItemPossessedBy(oPc,sOutil) != OBJECT_INVALID)
{
int iReflex = ReflexSave(oPc,20);
CreateItemOnObject(sItemTemplate1, oTarget);
}
}}}
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.


J'ai juste refait la synthaxe.
_________________
"Ne dit pas affronter les ténèbres celui qui n'a jamais connu la tombée de la nuit."
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 24/03/2006 20:15:46 Sujet du message :

NWScript :
void main()
{

//object oItem = GetFirstItemInInventory(OBJECT _SELF);
string sTag = "tag_du_bois";
string sOutil = "Tag_hachette"; // la c'est le tag
string sItemTemplate1 = "resref_de_objet_a_cree";
object oPc = GetLastUsedBy();

if (GetItemPossessedBy(OBJECT_SELF,sTag)!=OBJECT_INVALID //si il y a du bois dans l'inventaire
    && GetItemPossessedBy(oPc,sOutil)!=OBJECT_INVALID //si le pj a l'outil
    && ReflexSave(oPC,20) ) //si le jet reussit
    CreateItemOnObject(sItemTemplate1); //sur OBJECT_SELF par defaut


}
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
 
zogzog59
Grand Chevalier
Inscrit le: 16 Jan 2005
Messages: 123
Répondre en citant
Posté le : 24/03/2006 23:56:29 Sujet du message :

merci pour vos réponses voici le script final avec la ligne pour détruire le bois une fois le jet de caractéristique réussit. Very Happy

NWScript :
void main()
{

//object oItem = GetFirstItemInInventory(OBJECT _SELF);
string sTag = "NW_bois";// tag du morceau de bois
string sOutil = "hach_bucheron";
string sItemTemplate1 = "wbwxl002";
object oPc = GetLastUsedBy();
object oDestroy = GetObjectByTag("NW_bois");

if (GetItemPossessedBy(OBJECT_SELF,sTag)!=OBJECT_INVALID //si il y a du bois dans l'inventaire
    && GetItemPossessedBy(oPc,sOutil)!=OBJECT_INVALID //si le pj a l'outil
    && ReflexSave(oPc,20))//si le jet reussit
    {
    CreateItemOnObject(sItemTemplate1); //sur OBJECT_SELF par defaut
    AssignCommand(OBJECT_SELF,DestroyObject(oDestroy,0.2));
    }

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

_________________
Les vaux module rp
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 25/03/2006 00:06:46 Sujet du message :

NWScript :
void main()
{

//object oItem = GetFirstItemInInventory(OBJECT _SELF);
string sTag = "NW_bois";// tag du morceau de bois
string sOutil = "hach_bucheron";
string sItemTemplate1 = "wbwxl002";
object oPc = GetLastUsedBy();
object oDestroy = GetItemPossessedBy(OBJECT_SELF,sTag);

if (oDestroy !=OBJECT_INVALID //si il y a du bois dans l'inventaire
    && GetItemPossessedBy(oPc,sOutil)!=OBJECT_INVALID //si le pj a l'outil
    && ReflexSave(oPc,20))//si le jet reussit
    {
    CreateItemOnObject(sItemTemplate1); //sur OBJECT_SELF par defaut
    AssignCommand(OBJECT_SELF,DestroyObject(oDestroy,0.2));
    }

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


C'est mieux comme ça. GetObjectByTag() il faut le réserver pour quand on est sur que le tag est unique, là il peut y avoir plusieurs morceaux de bois sur le module, donc en détruire un pas bon. Et comme ça on définit qu'une fois oDestroy c'est toujours ça de gagné. C'est un peu pour chipoter, mais bon Razz
 
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 63.593ms