Nenfëa Auxiliaire ArchipelModeur
Nombre de messages : 34 Age : 40 Date d'inscription : 04/04/2007
| Sujet: [Moyen/avancé] Simuler une boucle while Dim 15 Avr 2007, 13:56 | |
| Type de script : --- Objet --- (difficulté moyenne/avancée) Utilité : ce script montre comment simuler une boucle while dans Oblivion. Mode d'emploi :- Spoiler:
Le script doit être attaché à un objet bidon (de préférence hors de portée du joueur) qui ne sert qu'à simuler la boucle while. Supposons que la référence de cet objet soit WhileRef. Pour utiliser ses possibilités, vous devez utiliser le code suivant : - Code:
-
Set WhileRef.nb_executions to XXX (nombre d'exécutions que vous voulez) WhileRef.Activate player 1 Explications :- Spoiler:
Lorsque l'objet est activé via le code "Activate player 1", son bloc OnActivate est exécuté. Dans l'exemple, il se réactive lui même tant que le compteur de boucles nb_executions n'a pas atteint zéro : on a donc une pseudo-boucle while. A chaque execution, on diminue le compteur de boucles de 1. Limitations :- Spoiler:
Attention : ce script lancera toutes les exécutions pendant la même frame, ce qui est assez lourd en mémoire vive. Si vous avez demandé trop de boucles ou que l'action a effectuer prend trop de mémoire vive, vous pouvez saturer la mémoire vive avec pour effet de faire planter Oblivion. A utiliser avec précaution, donc ! - Code:
-
; Script permettant de simuler une boucle while. ; Ce script doit se trouver sur un objet quelconque qui sert uniquement à faire tourner son script. ; Pour l'utiliser, en supposant que "ma_ref" soit la référence de l'objet scripté, vous devez mettre dans votre code : ; Set ma_ref.nb_executions to XXX (où XXX est le nombre de boucles "while" à faire) ; ma_ref.Activate player 1 ; ATTENTION : ce script effectuera toute l'execution en une seule frame. Si il y a trop de choses à faire, la mémoire risque d'être surchargée, ce qui fera planter Oblivion !
Scn nen_simulate_while
short nb_executions ; Indique le nombre de while à faire
Begin OnActivate if ( nb_executions > 0 ) ;----------------------------------------- ; Partie personnalisée : faites ici ce que vous voulez ;----------------------------------------- blablabla...
;----------------------------------------- ; Passage à l'execution suivante ;----------------------------------------- Set nb_executions to ( nb_executions - 1 ) ; On diminue le nombre d'executions encore à faire Activate player 1 ; On active à nouveau l'objet scripté pour lancer l'execution suivante. ;----------------------------------------- ; Fin du pseudo-while ;----------------------------------------- endif End | |
|