**Language / Langue :** **FR** | [[en:yaml:timers|EN]]
====== Timers (YAML) ======
JDR-Bot offre quatre types de mécaniques temporelles.
===== 1. Pause visuelle {{timer:N}} =====
Bloque le jeu N secondes avec un compte à rebours visible, puis affiche les choix :
texte: |
Le mécanisme s'enclenche...
{{timer:3}}
La porte s'ouvre !
===== 2. Timer local (lié à une salle) =====
Déclaré dans un événement, se lance à l'entrée de la salle. S'annule si le joueur quitte la salle.
evenements:
- si: ~
timer: sablier
duree: "30"
vers: salle_expiration
texte: "⏱️ Timer lancé — v_sablier_v secondes restantes."
* ''timer:'' — nom du timer (identifiant unique)
* ''duree:'' — durée en secondes (chaîne ou variable : ''v_duree_v'')
* ''vers:'' — salle de destination à l'expiration
* ''faire:'' — action alternative (sans changer de salle) à l'expiration
* ''v_nom_timer_v'' — variable auto-créée avec les secondes restantes
===== 3. Timer global (survit aux changements de salle) =====
Déclaré dans ''timers_globaux:'' et activé via ''timer_global:id:ON'' :
# En-tête du scénario
timers_globaux:
- id: comptebombe
duree: 60
etat: OFF # OFF par défaut
# Dans un événement ou choix :
faire: "timer_global:comptebombe:ON"
À expiration, déclenche les événements globaux liés (''si: "v_comptebombe_v = 0"'').
**Timers globaux autonomes (v4.9)** — à l'expiration, exécute directement ses propres actions sans passer par un événement global :
timers_globaux:
- id: compte_rebours_fatal
duree: 60
etat: OFF
texte: "⏰ Temps écoulé ! La porte se referme..."
faire:
- "score.-.20"
vers: fin_defaite
===== 4. Tick : action chaque seconde =====
''tick:'' exécute une liste de blocs à chaque seconde du timer (local ou global) :
evenements:
- si: ~
timer: tick_demo
duree: "180"
vers: salle_expiration
tick:
- si: ~ # toujours exécuté
faire: "ticks_ecoules.+.1"
- si: "v_ticks_ecoules_v > 5" # conditionnel
faire: "autre_var.+.1"
Sur un timer global :
timers_globaux:
- id: poison_tick
duree: 30
etat: OFF
tick:
- si: "v_pv_v > 0"
faire: "pv.-.1"
texte: "☠️ Le poison agit... (PV : v_pv_v)"
Notes :
* ''tick:'' est indépendant de ''vers:'' et ''faire:'' (qui s'exécutent à l'expiration)
* Quitter la salle annule le timer local ET son tick
* Garde anti-récursion : ''declencher_event:'' dans un tick est limité à 10 niveaux
===== Annuler des timers =====
faire: "annuler_timer:nom" # annule un timer spécifique
faire: "annuler_tous_timers:" # annule tous les timers actifs
**Retrouvez nous sur le [[https://discord.gg/Z63DtVV|discord Make&Play]]**