
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.







La date/heure actuelle est 03/05/2025 00:18:15
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
zogzog59 Grand Chevalier ![]() Messages: 123 |
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 ![]() 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); } } } } merci de votre aide mes seigneurs ^^. _________________ Les vaux module rp |
Revenir en haut | ![]() ![]() ![]() |
-MeteZ- Seigneur ![]() Messages: 205 Localisation: Région Parisienne (95) |
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); } }}} 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 | ![]() ![]() ![]() |
Sith Vicious Grand Sage du Conseil ![]() Messages: 693 |
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 } |
Revenir en haut | ![]() ![]() ![]() |
zogzog59 Grand Chevalier ![]() Messages: 123 |
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.
![]() 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)); } } _________________ Les vaux module rp |
Revenir en haut | ![]() ![]() ![]() |
Sith Vicious Grand Sage du Conseil ![]() Messages: 693 |
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)); } } 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 ![]() |
Revenir en haut | ![]() ![]() ![]() |


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