Optimisation Des Scripts Globaux
#1
Posté 19 février 2006 - 17:58
Lorsqu'on veut faire démarrer des scripts globaux (start scripts) qui peuvent être un peu longs, y a-t-il une méthode plus conseillée qu'un autre ? Par exemple :
- Faut-il faire des startscripts courts qui déclanchent des scripts plus complets à la première conditions remplie... ou bien, tout laisser dans le script global (pas d'appel de second script) ?
- Est-ce qu'il est préférable de scinder un long script global en plusieurs petits scripts, ou bien de tout mettre (plusieurs scripts de nature similaire) dans un long script unique ? (par exemple, j'ai plusieurs scripts qui changent les sons de certaines armes, vaut-il mieux les regrouper, ou faire des scripts séparés pour chaque arme ?)
... bref, Morrowind a-t-il des préférences ? quelle méthode permet de mieux optimiser le fonctionnement des scripts globaux ?
Et enfin, la commande stopscript doit-elle aussi s'appliquer systématiquement aux scripts globaux, ou bien uniquement à ceux qui ne doivent se lancer qu'une seule fois, ou bien cette commande de les affecte pas ?
Merci.
#2
Posté 19 février 2006 - 18:17
Mordicus, le 19.02.2006 à 17:58, dit :
Mordicus, le 19.02.2006 à 17:58, dit :
En fait, la longueur d'un script importe peu. Ce qui importe, c'est si il s'execute completement a chaque frame ou si il se contente de faire un teste avant de rendre la main la plupart du temps.
Mordicus, le 19.02.2006 à 17:58, dit :
De plus, je crois que les script sont limité en taille.
Mordicus, le 19.02.2006 à 17:58, dit :
Si ton script long fait juste 1 ou 2 tests pas frame avant de rendre la main, et qu'il ne s'execute completement qu'a des moment précis et rare, c'est parfait.
Mordicus, le 19.02.2006 à 17:58, dit :
C'est ce que j'utilise dans Romance. Au debut du mariage, un script ce lance et gere la position du PNJ, ainsi que les vetements et pleins d'autre chose. Ce script est lourd. Mais il s'arret e automatiquement a la fin de la cérémonie. Donc le jeu en lui meme n'est pas affecté.
#3
Posté 19 février 2006 - 18:37
Fandorn Delavie, le 19.02.2006 à 18:17, dit :
En fait, la longueur d'un script importe peu. Ce qui importe, c'est si il s'execute completement a chaque frame ou si il se contente de faire un teste avant de rendre la main la plupart du temps.
Et puisque ce script va tourner à chaque frame, n'ai-je pas intérêt à le réduire au minimun, en le faisant appeler d'autres scripts dès qu'une condition est remplie ? Du genre:
- if (condition A ) startscript "script1"
- if (condition B ) startscript "script2"
- if (condition C ) startscript "script3"
Et ainsi garder un script léger, plutôt que d'avoir dans ce script global les conditions ET les exécutions... (ex: if CONDITION A => if doOnce = > if playsound, stopsound, playsond, set doonce to 1, etc... if CONDITION B...). Ou alors l'appel d'un second script peut, à sa manière, ralentir Morrowind... ?
#4
Posté 19 février 2006 - 18:48
; ces 3 lignes von s'executer constement ( pas grave, ya que trois lignes :P ) if ( getsoundplaying, son == 0 ) return endif ** script enorme de 12743 lignes **; lui ne s'executera que si la condition est remplie , autant dire presque jamais, donc ce n'est pas grave non plus.
#5
Posté 19 février 2006 - 19:00
Mais dans mon cas ce n'est pas aussi simple. Je ne peux pas me baser sur la détection d'un son, ça ne suffit pas (mon script essaie justement de pallier le fait que Morrowind utilise le même son pour plusieurs armes).
Cela dit, le script qui suit ne fait pas 12743 lignes
#6
Posté 19 février 2006 - 19:08
[/quote]
#7
Posté 19 février 2006 - 19:13
Je placerai en tête du script global toutes les conditions qui peuvent annuler le lancement du script, à l'aide d'un RETURN.
Merci.
Modifié par Mordicus, 19 février 2006 - 19:14.
#8
Posté 19 février 2006 - 19:15
#9
Posté 19 février 2006 - 20:44
GetWeaponDrawn "détecter arme dégaînée"
Elle pourra peut être te servir parmi les "conditions qui peuvent annuler le lancement du script" (je suppose que tes armes ne produiront pas de son si elles ne sont pas dégainées).
Modifié par alliop, 19 février 2006 - 20:46.
"Bienvenue à toi, lent homme lié, poussif tresseur des vitesses."
Alain Damasio
0 utilisateur(s) li(sen)t ce sujet
0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)