Coucou !
J'ai écrit un petit script qui est censé vider le sac d'un joueur de tout les objets ayant un tag spécifique ("CLEFPRISON" dans mon cas).
Mais mon script bug, il se compile mais dans le jeu il tourne en boucle pendant un moment (= gros lag) puis ça écrit "Too much instruction" et ça détruit la clef.
Voilà le script, l'erreur doit être vers le while et sais pas comment la corriger (j'ai vu un script pour vider l'inventaire de tout les objets et j'ai pas réussi à adapter puisque ça bug).
void main() { object oActivator=GetLastSpeaker(); object oTarget= GetLocalObject(oActivator, "gardeswandtarget"); object oItem=GetItemPossessedBy(oTarget, "CLEFPRISON"); int nbkeys;
while(oItem!= OBJECT_INVALID) { int nbkeys=nbkeys+1; DestroyObject(oItem); oItem=GetItemPossessedBy(oTarget, "CLEFPRISON"); }
string cles=IntToString(nbkeys); if (nbkeys!=0) { AssignCommand(oActivator,ActionSpeakString("La personne avait" + "cles" + "clefs de la prison sur elle")); } else { AssignCommand(oActivator,ActionSpeakString("La personne ne porte rien de suspect")); }
}
Je pourrais faire tourner le script 5 fois par exemple par incrémentation mais le but c'était qu'il tourne tant que l'inventaire du joueur contient encore une clef de tag "CLEFPRISON".
Merci d'y jeter un oeil et de me livrer la formule magique
Florine
|