Répétition de script avec delai

Les scripts et les missions des [V]Vétérans

Vous pouvez poser vos questions et poster vos scripts, le forum est ouvert à tous.
Touhou
Messages : 20
Inscription : 04 mars 2017, 16:24
Localisation : Nantes

Répétition de script avec delai

Message par Touhou » 23 mars 2017, 16:59

Salut,

Je requiers votre aide,

J'explique le soucis :

Durant ma mission, un affrontement a lieu durant lequel je suis avec 3 IA contre plein d'Opfor. Il est prevu qu'on se prennent pas mal de bastos et j'aimerais faire en sorte que lorsqu'un de nous est toucher, une piste audio s'active.

Exemple : Si je me prend une balle, mon perso va dire : Ah... merde !

Jusque la tout va bien, mais j'aimerais que l'action soit répétable. Mais malheureusement, si je me prend une rafale, mon perso va répéter la phrase autant de fois que je me suis pris de balles...

J'aimerais donc mettre un délai de réactivation de la commande, pour qu'elle soit accessible environ toute les 30 secondes.

Voila ce que j'ai essayer :

Dans un premier trigger j'ai mis ceci, afin que mon perso ne meurt pas au bout de 2 balles :

Répétable
Condition : true
Activation : Player addEventHandler ["HandleDamage", {false}];
Player addEventHandler ["Hit", {Player setDamage (0.02 + getDammage Player )}];

Dans un deuxième, pour définir une valeur comme "true" :

Répétable
Condition : true
Activation : Player addEventHandler ["Hit", {hit_1 = true}];
Compte a rebours : min 30 moy 30 max 30

Un troisième avec l'appel audio

Répétable
Condition : true && hit_1
Activation : Player addEventHandler ["Hit", {Player exec "script\hit_player.sqf"}];

Le script hit_player.sqf :

hit_1 = false;
Player KbTell [Mike,"introduction","hit_player.ogg"];

Si quelqu'un a la solution et peut me corriger, merci d'avance ! :)

Touhou
Messages : 20
Inscription : 04 mars 2017, 16:24
Localisation : Nantes

Re: Répétition de script avec delai

Message par Touhou » 24 mars 2017, 01:23

Solution trouvé !

Merci a JF pour sa solution de trigger ! :)

voila le premier trigger :

Condition : true
Activation : jfverif = 1 // jfverif est une variable, vous pouvez en choisir une autre

Deuxieme trigger ( Le trigger boucle ) :

Répétable
Condition : if (jfverif == 1) then { true } else { false }
Activation : jfverif = 0; Player addeventhandler ["Hit", {Player exec "script\hit_player.sqf"}];
Chrono : 30

Le hit_player.sqf :

Player_1 removeAllEventHandlers "Hit";
hint "Aie j'ai mal"; // c'est un exemple


En gros pour faire simple, le premier trigger lance une boucle, il s'active et se réactive toute les 30 sec, quand il s'active, un événement se créer : Dès que le joueur sera toucher, le script se lancera.

Une fois le script lancé, la première commande qu'il contient supprime cet événement et le personnage parle ensuite.

Une fois que le trigger boucle redémarre, l'événement est de nouveau réalisable et ainsi de suite.

Répondre