Pour les Events par contre c'est assez similaire à New Vegas (Mis à part que le OnInit() n'existe pas dans les Event Handler de New Vegas et n'est introduit par aucun plugin selon mes recherches)
Pour la solution, avec l'aide du OnKeyDown (fourni par le JIP NVSE Plugin) on peut faire comme ça en 2-3 scripts :
Déclarer au préalable une variable Globale "CountKey"
1er script :
Code : Tout sélectionner
scn MainScript ; Le script principal à partir duquel on souhaite compter le nombre d’appuis sur une touche.
int IwantToStartToCountHowOftenIPressQduring10Seconds
Begin GameMode
; Ici le code préalable qui fait qu'à un moment on va passer "IwantToStartToCountHowOftenIPressQduring10Seconds" à 1 ou le remettre à 0.
if (IwantToStartToCountHowOftenIPressQduring10Seconds)
SetEventHandler "OnKeyDown:16" CountQkeyPressed
StartQuest QuestTimingForPressingKey ; Optionnel
else
RemoveEventHandler "OnKeyDown:16" CountQkeyPressed
StopQuest QuestTimingForPressingKey ; Optionnel
endif
end
2ème script
Code : Tout sélectionner
scn CountQkeyPressed ; Un script de type "Object" qui aura pour but de compter le nombre de fois qu'on appuie sur la touche "Q" en incrémentant la variable Globale "CountKey".
int keyCode
begin function {keyCode}
set CountKey to CountKey + 1
end function
3ème script (optionnel, peut être inclus dans le script principal) :
Code : Tout sélectionner
Scn TimingForPressingKey ; Un script de type "Quest", inactif par défaut, attaché à une quête "QuestTimingForPressingKey", et qui gèrera le temps imparti pour appuyer plusieurs fois sur une touche (un Script Processing Delay de 0.2 devrait suffire).
float timer
Begin GameMode
if timer < 10
set timer to timer + GetSecondsPassed
else
set timer to 0
; ... et faire ce qui est prévu au bout du temps imparti.
RemoveEventHandler "OnKeyDown:16" CountQkeyPressed
set CountKey to 0
StopQuest QuestTimingForPressingKey
endif
end
En tout cas ça marche ! Je ne perds pas un seul appui même en appuyant très vite. Le seul hic c'est que la détection des touches se fait en qwerty (rien de bien dramatique mais il faut le savoir...)