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 13:34:27


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 25/06/2005 16:56:05 Sujet du message : Erreur while: mais elle est ou l'erreur?

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


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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ailesnoires
Grand Chevalier
Inscrit le: 21 Oct 2004
Messages: 110
Localisation: Vendée
Répondre en citant
Posté le : 26/06/2005 01:03:08 Sujet du message :

NWScript :
while(
(oComp != OBJECT_INVALID)
||
(((GetTag(oComp))!=sReq)
&&
(oComp!=GetLocalObject(OBJECT_SELF,"ls_"IntToString(nLoop-1)))))
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.


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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 26/06/2005 10:06:08 Sujet du message :

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;

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


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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ailesnoires
Grand Chevalier
Inscrit le: 21 Oct 2004
Messages: 110
Localisation: Vendée
Répondre en citant
Posté le : 26/06/2005 10:49:40 Sujet du message :

où est-ce que tu définis la valeur de nNum ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 26/06/2005 10:59:14 Sujet du message :

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 :
nNul = GetLocalInt(OBJECT_SELF, "lsc_"+sCur);
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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 26/06/2005 11:00:20 Sujet du message :

Arg erreur au tapage du clavier et je me suis pas relus desole cetai nNum pas nNul dans la ligne.
_________________
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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 27/06/2005 20:41:52 Sujet du message :

Bon bah tout est resolu mon scrip marche (jai changé pleins de choses)
_________________
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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
finipe
Grand Sage du Conseil
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 27/06/2005 21:23:54 Sujet du message :

Souvent les boucles while sont construites comme ceci :

NWScript :
object oObject = GetFirst....(); // GetFirstItemInInventory(), GetFirstObjectInArea(), etc...

while(oObject ... "condition")
{
  // Bloc d'instructions, puis :
  oObject = GetNext...();
}
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.


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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
BenGorre
Légende vivante
Inscrit le: 12 Fév 2004
Messages: 301
Répondre en citant
Posté le : 27/06/2005 23:20:04 Sujet du message :

Merci mais j'ai dis que j'avais resolus tous les problemes.
_________________
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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
finipe
Grand Sage du Conseil
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 27/06/2005 23:53:26 Sujet du message :

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 Very Happy
_________________
» 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 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 57.292ms