Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Par quoi puis je remplacer les DestroyObject qui font bugger mon script ?
Par quoi puis je remplacer les DestroyObject qui font bugger mon script ?
Par durite le 21/2/2003 à 19:11:10 (#3286334)
Explication du probleme :
j'utilise ce script sur le onExit d'une zone:
void main()
{
object oDemonfilm = GetObjectByTag("Demonfilm");
object oDemonfilm2 = GetObjectByTag("Demonfilm2");
object oPretreHaruPoint2 = GetObjectByTag("PretreHaru1");
object oMbrcultPoint1 = GetObjectByTag("Membreculte1");
object oMbrcultPoint2 = GetObjectByTag("Membreculte2");
object oMbrcultPoint3 = GetObjectByTag("Membreculte3");
object oMoonrockPoint2 = GetObjectByTag("Moonrock1");
object oKilhiamPoint2 = GetObjectByTag("Kilhiam1");
object oKiranPoint2 = GetObjectByTag("Kiran1");
object oBalorkPoint2 = GetObjectByTag("Balork1");
object oBalork = GetObjectByTag("Balorkfilm");
object oRecuciteKiran = CreateObject(OBJECT_TYPE_CREATURE, "Kiranfilm", GetLocation(oKiranPoint2));
object oRecuciteKilhiam = CreateObject(OBJECT_TYPE_CREATURE, "Kilhiamfilm", GetLocation(oKilhiamPoint2));
object oRecuciteMoonrock = CreateObject(OBJECT_TYPE_CREATURE, "Moonrockfilm", GetLocation(oMoonrockPoint2));
object oMembreculte1 = CreateObject(OBJECT_TYPE_CREATURE, "membreduculte", GetLocation(oMbrcultPoint1));
object oMembreculte2 = CreateObject(OBJECT_TYPE_CREATURE, "membreduculte", GetLocation(oMbrcultPoint2));
object oMembreculte3 = CreateObject(OBJECT_TYPE_CREATURE, "membreduculte", GetLocation(oMbrcultPoint3));
object oPretreHaru = CreateObject(OBJECT_TYPE_CREATURE, "pretreharuspicie", GetLocation(oPretreHaruPoint2));
DestroyObject(oDemonfilm);
DestroyObject(oDemonfilm2);
AssignCommand(oBalork, JumpToObject(oBalorkPoint2));
Le probleme auquel je suis confronté est que lorsque je quitte la zone ya comme un micro lag a cause des 2 DestroyObject , et cela fait que au lieu que les pnj se recrée normalement 1 fois , ils se recréent 3 fois ... pourtant il est indispensable que je detruise les 2 pnj "Demonfilm 1 et 2" a la sortie de cette zone ... si vous avez une solution je suis preneur
Merci pour vous conseils
Re: Par quoi puis je remplacer les DestroyObject qui font bugger mon script ?
Par Iridian le 21/2/2003 à 22:19:25 (#3287426)
void main()
{
//on detruit les montres en premier, pour eviter qu'il ne s'attaque aux pnjs crée (puisqu'ils sont de factions ennemis tu m'a dit)
DestroyObject(GetObjectByTag("Demonfilm"));
DestroyObject(GetObjectByTag("Demonfilm2"));
//je deplace celui ci ensuite, çar les teleportations on toujours eu tendance a faire lagger mon PC ...
AssignCommand(GetObjectByTag("Balorkfilm"), JumpToObject(GetObjectByTag("Balork1")));
//enfin les creations, sans les declarations inutile (puisque chaque objet n'est utilisé qu'une fois)
CreateObject(OBJECT_TYPE_CREATURE, "Kiranfilm", GetLoçation(GetObjectByTag("Kiran1")));
CreateObject(OBJECT_TYPE_CREATURE, "Kilhiamfilm", GetLocation(GetObjectByTag("Kilhiam1")));
CreateObject(OBJECT_TYPE_CREATURE, "Moonrockfilm", GetLocation(GetObjectByTag("Moonrock1")));
CreateObject(OBJECT_TYPE_CREATURE, "membreduculte", GetLocation(GetObjectByTag("Membreculte1")));
CreateObject(OBJECT_TYPE_CREATURE, "membreduculte", GetLocation(GetObjectByTag("Membreculte2")));
CreateObject(OBJECT_TYPE_CREATURE, "membreduculte", GetLocation(GetObjectByTag("Membreculte3")));
CreateObject(OBJECT_TYPE_CREATURE, "pretreharuspicie", GetLocation(GetObjectByTag("PretreHaru1")));
}
pis ca fait quand même plus propre comme ca non ? ;)
Par Jedaï le 21/2/2003 à 23:18:34 (#3287698)
[Edit] eh puis je me demande ce que va faire NWN face à un GetLoçation()...:D
Mais c'est vrai que c'est nettement plus propre !! :eek:
Par Iridian le 21/2/2003 à 23:33:02 (#3287764)
Provient du message de Jedaï
Iridian, je ne t'avais pas déjà dit que les DestroyObject() avait au minimum lieu à la fin du script, à quelque endroit que tu les mettes...:p
non mais je suis heureux de le savoir, je dirai même que si je l'avais su plus tôt je me serai moins arraché les cheveux ;)
Provient du message de Jedaï
[Edit] eh puis je me demande ce que va faire NWN face à un GetLoçation()...:D
ca j'y peu rien si le correcteur orthographique a corrigé les 2 premier "ca" qu'il a rencontré et non ceux de ma dernière phrase ... tient pour la peine je ne corrigerai plus ce mot la !Provient du message de Jedaï
Mais c'est vrai que c'est nettement plus propre !! :eek:
et concis ;)
JOL Archives 1.0.1
@ JOL / JeuxOnLine