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
endstate
Un petit merci dans le lisez-moi de votre futur mod serait apprécié même s'il n'est pas obligatoire.
