La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 23/11/2024 21:56:06
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 |
BenGorre Légende vivante Messages: 301 |
Voila j'ai un script avec une boucle while (assez compliqué)
NWScript :
while(oComp != OBJECT_INVALID || ((GetTag(oComp))!=sReq && oComp!=GetLocalObject(OBJECT_SELF,"ls_"IntToString(nLoop-1)))) Et quand je compile il me met Erreur : UNKNOWN STATE IN COMPILER Quelqu'un voit ou ca va pas? _________________ La mort n'est rien seul le fait de mourir est terrible Henry Fielding 1745 Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2. |
Revenir en haut | |
Ailesnoires Grand Chevalier Messages: 110 Localisation: Vendée |
NWScript :
while( (oComp != OBJECT_INVALID) || (((GetTag(oComp))!=sReq) && (oComp!=GetLocalObject(OBJECT_SELF,"ls_"IntToString(nLoop-1))))) essaye avec ces parenthèses sinon vérifie que tu ais bien déclaré toute tes variables si tu pouvais mettre le script complet ce serait pas du luxe, parfois l'erreur viens de la ligne précedente |
Revenir en haut | |
BenGorre Légende vivante Messages: 301 |
Non si j'avais mis ca c'était que ca venait de la, j'avais verifier les autres lignes.
J'ai regler ce probleme par contre mon script a un probleme je le met pour que vous puissiez m'aider comme il se doit. NWScript :
/*ARTISANAT SCRIPT
Created by BenGorre */ int lsn=1; //lsstype=2 void SetItemLocals() { object oUser = GetLastDamager(); SetLocalString(OBJECT_SELF, "lsn1", GetLocalString(oUser, "lsn1")); SetLocalInt(OBJECT_SELF, "lsc_"+GetLocalString(OBJECT_SELF, "lsn1"), GetLocalInt(oUser,"lsc")); SetLocalString(OBJECT_SELF, "lsi1_"+GetLocalString(OBJECT_SELF, "lsn1"), GetLocalString(oUser,"lsi1")); SetLocalString(OBJECT_SELF, "lsi2_"+GetLocalString(OBJECT_SELF, "lsn1"), GetLocalString(oUser,"lsi2")); SetLocalString(OBJECT_SELF, "lsi3_"+GetLocalString(OBJECT_SELF, "lsn1"), GetLocalString(oUser,"lsi3")); SetLocalString(OBJECT_SELF, "lsi4_"+GetLocalString(OBJECT_SELF, "lsn1"), GetLocalString(oUser,"lsi4")); SetLocalString(OBJECT_SELF, "lsi5_"+GetLocalString(OBJECT_SELF, "lsn1"), GetLocalString(oUser,"lsi5")); SetLocalInt(OBJECT_SELF, "lss_"+GetLocalString(OBJECT_SELF, "lsn1"), -10); SetLocalInt(OBJECT_SELF, "lsv_"+GetLocalString(OBJECT_SELF, "lsn1"), GetLocalInt(oUser, "lsv")); } void main() { object oUser = GetLastDamager(); if (!GetLocalInt(OBJECT_SELF, "lsvar_set")) { SetItemLocals(); SetLocalInt(OBJECT_SELF, "lsvar_set", TRUE); } if (lsn==0) return; object oItem, oComp, oLocal; int bOkay, nCount, nNum, nLoop, nVis, nPres, nVarb; string sCur, sReq; sCur=GetLocalString(OBJECT_SELF, "lsn"+IntToString(nLoop)); nCount=0; nPres=TRUE; while(nCount<nNum && nPres==TRUE) { sReq=GetLocalString(OBJECT_SELF, "lsi"+IntToString(nLoop)+"_"+sCur); oComp = GetFirstItemInInventory(oUser); oLocal = GetLocalObject(oUser,"ls_"+IntToString(nLoop-1)); while(oComp != OBJECT_INVALID && nVarb!=TRUE) { if(GetTag(oComp)==sReq && oComp!=oLocal) { SetLocalObject(oUser, "ls__"+IntToString(nLoop), oComp); nVarb=TRUE; } else { oComp = GetNextItemInInventory(oUser); } } if(nVarb==TRUE) { nCount++; } else { nPres=FALSE; } nLoop++; } if (nCount==nNum) bOkay=TRUE; else bOkay=TRUE; if (bOkay==TRUE) { for (nLoop=1; nLoop<=nNum; nLoop++) { oItem = GetLocalObject(oUser, "ls__"+IntToString(nLoop)); DestroyObject(oItem); } CreateItemOnObject(sCur, oUser); int nVis=GetLocalInt(OBJECT_SELF, "lsv_"+sCur); if (nVis!=-10) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(nVis), OBJECT_SELF); } oItem=OBJECT_INVALID; bOkay=FALSE; nCount=0; sCur=""; sReq=""; nNum=0; } Voila c'est un script d'artisanat déclenché quand on tape sur une enclume(c'est que la base du script) Ca crée bien l'objet dans l'inventaire de l'artisan mais ca ne lui prend pas les ingredients. Merci et bon courage a ceux qui veulent m'aider^^ PS: infos supplementaire -lsn1=Resref de l'objet a creer -lsc= nombre d'ingredients -lsi"n"= ingredient"n" (ou n est un chiffre entre 1et5) -lsv=effetvisuel (VFX_...) _________________ La mort n'est rien seul le fait de mourir est terrible Henry Fielding 1745 Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2. |
Revenir en haut | |
Ailesnoires Grand Chevalier Messages: 110 Localisation: Vendée |
où est-ce que tu définis la valeur de nNum ?
|
Revenir en haut | |
BenGorre Légende vivante Messages: 301 |
dsl oui quand jai fai copier coller j'ai effacer quelques lignes qui était des FloatingTextStringOnCreature pour voir ou le script passait et ou il passait pas, j'ai du enlever nNum.
(en fait les floating mont dit que ca passais partout alors nromalement devrait pas yavoir de probleme) donc voila il faut rajouter cette ligne juste au dessus de la defition de nCount (avant le 1ere while en fait): NWScript : 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. _________________ La mort n'est rien seul le fait de mourir est terrible Henry Fielding 1745 Le serveur Filandre a été stoppé pour le moment, je on travail à la conversion vers NWN2. |
Revenir en haut | |
BenGorre Légende vivante Messages: 301 |
|
Revenir en haut | |
BenGorre Légende vivante Messages: 301 |
|
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
Souvent les boucles while sont construites comme ceci :
NWScript :
object oObject = GetFirst....(); // GetFirstItemInInventory(), GetFirstObjectInArea(), etc... while(oObject ... "condition") { // Bloc d'instructions, puis : oObject = GetNext...(); } L'erreur qu'on retrouve le plus souvent, c'est dans la redéfinition de l'objet oObject avec le GetNext....(), on voit souvent la ligne : "object oObject = GetNext...()" ...au lieu de : "oObject = GetNext...()" qui est correct. _________________ » Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine » 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII |
Revenir en haut | |
BenGorre Légende vivante Messages: 301 |
|
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
Ben oui j'ai bien lu, je disais ça juste pour éviter à d'autres de faire cette bêtise que j'ai faite des dizaines de fois avant
_________________ » Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine » 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII |
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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