Alors...plusieurs choses.
Déjà, il faut revoir toute la synataxe du script.
On place la référence appelante avant la fonction appelée, les deux étant liées par un point, comme ceci:
1WeatherleahRufusAlamo.MoveTo zClothesTest
1WeatherleahRufusAlamo.Kill
Tout ce qui se situe après la fonction est ce que l'on nomme des arguments. MoveTo a un argument obligatoire, l'objet où est téléporté la référence appellante (que tu as donc renseigné), et a plusieurs arguments optionnel, qui sont les axe X, Y, Z par rapport à l'objet où est téléporté la référence appellante. (que tu n'as pas renseigné, mais c'est inutile ici)
Kill n'a pas d'argument par contre.
Ensuite, comme tu as fait ton script...
Un script est une boucle, et le jeu lit les instructions de haut en bas.
C'est à dire, que dès le début du jeu, il va lire et exécuter chaque ligne les unes après les autres, et dès qu'il est arrivé en bas, il recommencer la lecture/execution en haut.
Pour éviter une exécution, on utiliser les confitions if/elseif/else comme tu l'as fait, mais une condition fausse empêche de lire ce qui se situe entre le if/elseif/else et le endif ou le elseif/else suivant.
Donc en l'état, ton script va faire ceci:
On déplace Rufus Alamo
on le tue
On regarde si le stage truc a été réalisé:
-Si oui, on ne fait rien
-Si non, ou après le "on ne fait rien", on reboucle le script et on recommence.
Il faut donc changer le script comme ceci:
Begin GameMode
if GetStageDone 1WeatherleahQuestOne 10 == 1
1WeatherleahRufusAlamo.MoveTo zClothesTest
1WeatherleahRufusAlamo.Kill
endif
End
Comme cela, le script va faire ceci:
On regarde si le stage truc a été réalisé:
-Si oui, on déplace Rufus Alamo puis on le tue
-Si non, ou après le "on déplace Rufus Alamo puis on le tue", on reboucle le script et on recommence.
Là, ça fonctionnera, mais deux choses:
-Le script, à chaque frame (un script est éxécuté en une frame) fera que le jeu déplacera et tuera Rufus dès que le stage 10 et de la quête 1WeatherleahQuestOne sera terminée.
-C'est lourd et inutile.
Comme c'est quelque chose qui se passe une unique fois, juste après la réalisation d'un stage, il vaut mieux utiliser le script result du fameux stage 10 de la quête 1WeatherleahQuestOne. Là encore le script result est évenmentiel et ne s'éxécute qu'une unique fois, c'est comme cela pour la totalité des scripts résults.
Ce qui permet d'éviter deux instructions et un test inutiles par frame.
Il n'y a que deux façons d'optimiser réellement les scripts:
-Utiliser le plus de scripts évenmentiels possible (donc les script Result, mais aussi certains blocs comme le OnLoad, le OnActivate à la place des blocs non-eventmentiels comme GameMode, MenuMode et cetera).
-Utiliser le moins de variable possible. (ça c'est pareil en programmation pure)
Sinon, tout autre chose:
Quand on met en ligne des images, il vaut mieux utiliser autre chose que du .bmp
Ce format est un format dit non-compressé, c'est à dire qu'il prend beaucoup de place, mais qu'il n'y a pas de perte de qualité.
Les .jpg ou les .png sont compressé, c'est à dire qu'ils sont bien plus léger, mais il y a une légère perte de qualité, étant plus léger, ils sont bien plus adaptés pour être mits en ligne sur internet. (moins long à téléverser pour toi et moins long à télécharger pour nous)
Et dans le cas des scripts, on préfère copier/coller les scripts dans la balise code, comme j'ai fait, ça permet des manipulations plus simples.