Bien sûr.
Tout d'abord, les petits trucs généraux : ne pas utiliser game.getplayer() dans un script, cette instruction est très lente à être exécutée. Il vaut mieux ajouter la propriété suivante (remplie avec un auto-fill) :
actor property playerref auto (d'ailleurs, elle est déjà dans ton script...)
et remplacer game.getplayer() par playerref qui est environ 20 fois plus rapide à exécuter.
L'event oneffectstart() n'existe normalement que pour les scripts du type extends activemagiceffect (1ère ligne du script) et doivent donc être placés dans un effet magique.
Ensuite, il faut comprendre la manière dont fonctionnent les formlists.
Tu ne peux appliquer une instruction sur la formlist en espérant agir sur tous les éléments présents à l'intérieur. Il faut aller les chercher un par un et agir sur eux au fur et à mesure.
Pour cela, il faut utiliser la fonction getat sur cette list.
formlist1.getat(2) correspond à l'élément numéroté 2 de la fomlist formlist1 par exemple.
Code : Tout sélectionner
ScriptName AdsScriptTriIng Extends activemagiceffect
Actor Property Playerref Auto
ObjectReference Property AdsConTestAb Auto
FormLIST property AdsListIng auto
Event OnEffectStart(Actor akTarget, Actor akCaster)
int index = 0 ;l'index qui va parcourir la liste
while index < AdsListIng.getsize() ;boucle tant que ma liste n'a pas été balayée
playerref.RemoveItem(AdsListIng.getat(index),playerref.getitemcount(AdsListIng.getat(index)),true,AdsConTestAb)
index += 1 ;j'ajoute 1 à l'index
endwhile ; la fin de la boucle
EndEvent
Je ne l'ai pas compilé ni même tapé dans un éditeur mais directement ici. En cas de soucis de compilation, n'hésite pas à reposter.
Ensuite, il faut savoir que bosser avec un tableau en propriété est souvent mieux qu'une formlist...
Il suffit de regarder un peu ce qui a été fait dans ce sujet :
http://www.confrerie-des-traducteurs.fr ... 19&t=14580