Pour ce qui est de la boucle en elle même, le problème c'est que ta variable nPV ne change pas de valeur (si le script est exécuté dans le OnDamaged).
int nPV=GetCurrentHitPoints(oboss); while(nPV>=650) { nPV=GetCurrentHitPoints(oboss); }
Quand l'évènement OnDamaged est déclenché, ton script l'est également. Mettons que ta créature a 800 PV à ce moment là.
Donc nPV vaut 800 et tu rentres dans la boucle. Seulement ton boss aura toujours 800 PV jusqu'à ce que l'évènement OnDamaged soit à nouveau appelé.
Et si ta créature a encore plus de 650 PV, on déclenche une deuxième boucle (alors que la première n'est toujours pas finie). Tu vois bien qu'il y a un problème de conception là-dedans.
Comme l'ont dit Laban et nosfe_, le meilleur moyen pour faire ce que tu veux est de définir une variable qui permettra de savoir si l'event a déjà été déclenché ou non.
|