Donc il faut remettre ActivateMe à 0. Il me suffit donc de rajouter un "If ( timer >= 2 )" et de tout remettre à zéro, sauf DoOnce, ce qui ferme le script. Ce qui nous donne, si je ne me trompe pas, ceci :
Begin THO_myst_machi_chemin02
short ActivateMe
short DoOnce
float timer
If ( MenuMode == 1 )
return
Endif
If ( DoOnce == 0 )
If ( "in_THO_myst_machi_cap_04"-> GetStandingPC == 1 )
Set ActivateMe to 1
Endif
Endif
If ( ActivateMe == 1 )
Set timer to ( timer + GetSecondsPassed )
If ( timer >= 2 )
If ( DoOnce == 1 )
PlaySound "SothaDoorClose"
Set DoOnce to 2
Endif
Set ActivateMe to 0
Set timer to 0
Elseif ( timer <= 1 )
"in_THO_myst_machi_wall_06"-> Move z, 256
Set DoOnce to 1
Endif
Endif
End
Sauf, si, je dois remplacer "Set DoOnce to 1" par "If ( DoOnce == 0 ) Set DoOnce to 1 Endif", mais il me semble que ce n'est pas la peine, puisqu'il n'est plus rechargé la frame suivante.
Edit: Mais ça ne le joue que lorsque timer >= 2 ; je dois donc déplacer le groupe "If ( DoOnce == 2 ) ... Endif" à timer <= 1, et rajouter "If ( DoOnce == 0 )"
Re-Edit: C'était bien ça, ça marche ! Merci encore Nerwal
Edited by Duc Moquette, 19 October 2010 - 21:19.