Effectuer différentes actions en fonction du nombre de "clic" d'activation
Posté : 05 sept. 2012, 20:50
Un petit squelette de script permettant de lancer des bouts de scripts différents suivant le nombre d'appuis sur la touche activation pendant un temps déterminé.
Par exemple, on peut imaginer un fonctionnement alternatif pour un coffre :
- 1 appui : fonctionnement normal
- 2 appuis : le joueur prend tout ce qu'il y a dans le coffre
- 3 appuis : tous les objets non équipés du joueur vont dans le coffre.
Autre exemple :
Sac de couchage :
- 1 appui : dodo
- 2 appuis : le sac va dans l'inventaire.
La tempo du script qui suit est fixée à 0.5 secondes. C'est le temps à partir de la première activation durant lequel le script compte les appuis. Cela peut être modifié sans soucis.
Le script avec les commentaires :
Donc, c'est une petite ressource libre d'utilisation pour vous aider dans vos mods.
Un petit merci dans le lisez-moi de votre futur mod serait apprécié même s'il n'est pas obligatoire.
Par exemple, on peut imaginer un fonctionnement alternatif pour un coffre :
- 1 appui : fonctionnement normal
- 2 appuis : le joueur prend tout ce qu'il y a dans le coffre
- 3 appuis : tous les objets non équipés du joueur vont dans le coffre.
Autre exemple :
Sac de couchage :
- 1 appui : dodo
- 2 appuis : le sac va dans l'inventaire.
La tempo du script qui suit est fixée à 0.5 secondes. C'est le temps à partir de la première activation durant lequel le script compte les appuis. Cela peut être modifié sans soucis.
Le script avec les commentaires :
Code : Tout sélectionner
event oninit()
self.blockactivation(true) ;je bloque l'activation normale de l'objet pour la remplacer par celle du script
endevent
auto state dep; je déclare l'état "attente" comme étant l'état par défaut.
Event OnActivate(ObjectReference akActionRef)
gotostate("oneclick") ; j'ai effectué mon premier clic donc à partir de maintenant, pour le temps choisi en dessous (0.5 secondes, je change d'état et compte les clics. Le changement d'état m'évite aussi une deuxième activation.
clic = 1 ;j'ai appuyé une fois
utility.wait(0.5) ;j'attend 0.5 secondes. Pendant ce temps c'est l'event de l'état "occupé" qui compte les clics. A la fin de la tempo, je regarde combien il y a eu de clics et déclenche le mode de fonctionnement désiré.
if clic == 1
;premier mode de fonctionnement : C'est ici qu'il faudra mettre votre bout de script
elseif clic == 2
;deuxième mode de fonctionnement : C'est ici qu'il faudra mettre votre bout de script
else
;troisième mode de fonctionnement - ne pas mettre de condition sur le dernier au cas où le joueur fait plus de clics que nécessaire.
endif
clic = 0
gotostate("dep") ;j'ai fini, je revient donc à l'état "dep"
endevent
endstate ;fin d'état "dep"
state oneclick ; début d'état "oneclick"
Event OnActivate(ObjectReference akActionRef) ;c'est cet event qui est déclenché dans l'état oneclick
clic = clic + 1 ;je compte mes clics et rien d'autre
endevent
endstateUn petit merci dans le lisez-moi de votre futur mod serait apprécié même s'il n'est pas obligatoire.