![](images/template/bbnwn.gif)
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
![](templates/baldurien/images/baldurien/icon_mini_faq.gif)
![](templates/baldurien/images/baldurien/icon_mini_search.gif)
![](templates/baldurien/images/baldurien/icon_mini_members.gif)
![](templates/baldurien/images/baldurien/icon_mini_groups.gif)
![](templates/baldurien/images/baldurien/icon_mini_register.gif)
![](templates/baldurien/images/baldurien/icon_mini_message.gif)
![](templates/baldurien/images/baldurien/icon_mini_login.gif)
La date/heure actuelle est 18/02/2025 23:17:26
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 |
Junshin Voyageur ![]() Messages: 3 |
Salut !
Je passe parfois mon temps libre à faire un petit module NWN1 pour le plaisir, en total débutant. J'aborde la question du craft customisé, pas les compétences in game. Et là je rencontre un petit problème que, en novice du script, je ne vois pas comment résoudre. Comme le script et moi, ça fait vraiment deux, vous devez connaître, on a tous été novice un jour ![]() Le problème, c'est que ce générateur me permet de créer un script de craft où, en échange d'un exemplaire de chaque composant, le jeu crée un objet. Mais dès que je veux mettre plusieurs exemplaires d'un même composant... Ca utilise un seul de ces composants pour créer l'objet, et ça laisse le reste tel quel ![]() Voici le script que je fais pour m'entraîner. Il utilise un plaçable "Enclume humaine" qui est un Utilisable Inventaire. Les composants doivent être placés dedans, dans mon exemple c'est un TAG Mineraidefer x1. Ensuite, le joueur lance le sort Mains brûlantes sur l'enclume (c'est juste pour donner du style et n'a aucune influence sur le script). Cela crée une épée avec le ResRef item056 et détruit le minerai. Le problème, c'est que je voudrais bien utiliser 4 minerais, et que ça les détruise tous. Or, ça nen détruit qu'un seul à la fois, et c'est là que je me rends compte de mon ignorance totale du monde de scripting ![]() Pourriez-vous m'aider svp ? NWScript : /*BLACKSMITH SCRIPT Created by Lilac Soul's NWN Script Generator, v. 2.3 for download info please visit http://nwvault.ign.com/View. php?view=Other.Detail& id=4683&id=625 */ int lsn=1; //lsstype=0 void SetItemLocals() { SetLocalString(OBJECT_SELF, "lsn1", "item056"); SetLocalInt(OBJECT_SELF, "lsc_item056", 1); SetLocalString(OBJECT_SELF, "lsi1_item056", "Mineraidefer"); SetLocalInt(OBJECT_SELF, "lss_item056", SPELL_BURNING_HANDS); SetLocalInt(OBJECT_SELF, "lsv_item056", -10); } void CreateGold(object oTarget, int nAmount) { CreateItemOnObject("nw_it_gold001", oTarget, nAmount); } void main() { object oOwner=OBJECT_SELF; if (!GetLocalInt(OBJECT_SELF, "lsvar_set")) { SetItemLocals(); SetLocalInt(OBJECT_SELF, "lsvar_set", TRUE); } if (lsn==0) return; object oItem; int bOkay, nGold, nCount, nNum, nLoop, nLoops, nHasGold, nVis; string sCur, sReq; for (nLoop=1; nLoop<=lsn; nLoop++) { sCur=GetLocalString(OBJECT_SELF, "lsn"+IntToString(nLoop)); nNum=GetLocalInt(OBJECT_SELF, "lsc_"+sCur); for (nLoops=1; nLoops<=nNum; nLoops++) { sReq=GetLocalString(OBJECT_SELF, "lsi"+IntToString(nLoops)+"_"+sCur); if (GetStringLeft(sReq, 8)==" gold ") { nGold=StringToInt(GetStringRight(sReq, GetStringLength(sReq)-8)); if (GetGold(oOwner)>=nGold) nCount++; } else if (GetItemPossessedBy(oOwner, sReq)!=OBJECT_INVALID) { SetLocalObject(OBJECT_SELF, "ls__"+IntToString(nLoops), GetItemPossessedBy(oOwner, sReq)); nCount++; } } if (GetLocalInt(OBJECT_SELF, "lss_"+sCur)==-10) bOkay=TRUE; else if (GetLastSpell()==GetLocalInt(OBJECT_SELF, "lss_"+sCur)) bOkay=TRUE; else bOkay=FALSE; if (bOkay && (nCount==nNum)) bOkay=TRUE; else bOkay=FALSE; if (bOkay==TRUE) { if (nGold>0) { nHasGold=GetGold(oOwner); DestroyObject(GetItemPossessedBy(oOwner, "NW_IT_GOLD001")); DelayCommand(0.2, CreateGold(oOwner, nHasGold-nGold)); } for (nLoops=1; nLoops<=nNum; nLoops++) { oItem=GetLocalObject(OBJECT_SELF, "ls__"+IntToString(nLoops)); DestroyObject(oItem); } CreateItemOnObject(sCur, oOwner); int nVis=GetLocalInt(OBJECT_SELF, "lsv_"+sCur); if (nVis!=-10) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nVis), oOwner); } oItem=OBJECT_INVALID; bOkay=FALSE; nGold=0; nCount=0; sCur=""; sReq=""; nNum=0; } } |
Revenir en haut | ![]() ![]() ![]() |
Junshin Voyageur ![]() Messages: 3 |
Personne ne pourrait me dépanner ?
![]() |
Revenir en haut | ![]() ![]() ![]() |
Ivellios Légende vivante Messages: 447 Localisation: Poitiers |
[Une petite bibliothèque] bien pratique quand on veux faire un système simple comme le tien, tout est expliqué, une fois compris tu fais des recettes très vite.
_________________ Scripts, systèmes, fonctions,... c'est par ici... Pyjama pour castor, une vocation, un avenir sûr |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() |
Junshin Voyageur ![]() Messages: 3 |
Merci, je vais voir ça.
|
Revenir en haut | ![]() ![]() ![]() |
![](templates/baldurien/images/baldurien/lang_french/post.gif)
![](templates/baldurien/images/baldurien/lang_french/reply.gif)
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