Outils pour utilisateurs

Outils du site


fr:yaml:timers

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
fr:yaml:timers [2026/05/03 17:01] – Timers YAML cyrilfiestafr:yaml:timers [2026/08/31 21:11] (Version actuelle) – Wiki : fins de pages homogènes, liens Discord retirés cyrilfiesta
Ligne 1: Ligne 1:
-====== Syntaxe YAML — Timers ======+**Language / Langue :** **FR** | [[en:yaml:timers|EN]]
  
-Les timers permettent de créer des comptes à rebours et des actions automatiques dans le temps.+====== Timers (YAML) ======
  
-===== Timer local (dans une salle) =====+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 :
  
 <code yaml> <code yaml>
-- idsalle_piege +texte| 
-  texte: "Un mécanisme s'active ! Vous avez 30 secondes." +  Le mécanisme s'enclenche..
-  evenements+  {{timer:3}} 
-    - si: "~" +  La porte s'ouvre ! 
-      faire: "timer+bombe:30"+</code>
  
-- id: explosion +===== 2. Timer local (lié à une salle) ===== 
-  texte: "BOOM ! Le piège s'est déclenché." + 
-  evenements: +Déclaré dans un événement, se lance à l'entrée de la salle. S'annule si le joueur quitte la salle
-    - si: "~" + 
-      findefaite+<code yaml> 
 +evenements: 
 +  - si: ~ 
 +    timer: sablier 
 +    duree: "30
 +    verssalle_expiration 
 +    texte: "⏱️ Timer lancé : v_sablier_v secondes restantes."
 </code> </code>
  
-Déclencher un timer : ''timer+nom:duree'' (durée en secondes) +  * ''timer:'' nom du timer (identifiant unique) 
-Annuler un timer : ''timer-nom''+  * ''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
  
-===== Timer avec expiration (faire: et vers:) =====+===== 3. Timer global (survit aux changements de salle) ===== 
 + 
 +Déclaré dans ''timers_globaux:'' et activé via ''timer_global:id:ON'' :
  
 <code yaml> <code yaml>
 +# En-tête du scénario
 timers_globaux: timers_globaux:
-  - nombombe +  - idcomptebombe 
-    duree: 30 +    duree: 60 
-    texte"💥 La bombe explose !" +    etatOFF    # OFF par défaut 
-    faire: "pv.=.0" + 
-    versexplosion+# Dans un événement ou choix : 
 +faire: "timer_global:comptebombe:ON"
 </code> </code>
  
-===== Timer avec tick: (action chaque seconde=====+À 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 :
  
 <code yaml> <code yaml>
 timers_globaux: timers_globaux:
-  - nomvenin+  - idcompte_rebours_fatal
     duree: 60     duree: 60
-    tick+    etatOFF 
-      - si: "~" +    texte: "⏰ Temps écoulé ! La porte se referme..." 
-        faire: "pv.-.1" +    faire: 
-        texte: "☠️ Le venin vous ronge... -1 PV+      - "score.-.20
-      - si: "v_pv_v <= 0+    vers: fin_defaite
-        vers: mort_venin+
 </code> </code>
  
-===== Afficher le temps restant =====+===== 4. Tick : action chaque seconde =====
  
-<code yaml> +''tick:'' exécute une liste de blocs à chaque seconde du timer (local ou global) :
-texte"Temps restant v_bombe_v secondes" +
-# v_nom_timer_v donne le temps restant en secondes+
  
-Avec formatage minutes:secondes +<code yaml> 
-texte: "v_minutes_v:v_secondes_v|pad2"+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"
 </code> </code>
  
-===== Timers globaux autonomes ===== +Sur un timer global :
- +
-Les timers globaux tournent en arrière-plan, même si le joueur change de salle :+
  
 <code yaml> <code yaml>
 timers_globaux: timers_globaux:
-  - nomnuit +  - idpoison_tick 
-    duree: 120 +    duree: 30 
-    texte"🌙 La nuit tombe sur le royaume." +    etatOFF
-    faire: "difficulte.+.1" +
- +
-  - nom: garde_patrouille +
-    duree: 15+
     tick:     tick:
-      - si: "v_visible_v = 1+      - si: "v_pv_v > 0
-        versdetection +        faire"pv.-.1" 
-        texte: "Le garde vous aperçoit !"+        texte: "☠️ Le poison agit... (PV : v_pv_v)"
 </code> </code>
  
-===== Démarrer/arrêter via declencher_event: =====+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
  
-<code yaml> +===== Annuler des timers =====
-evenements_globaux: +
-  - id: demarrer_bombe +
-    si: "~" +
-    faire: "timer+bombe:30"+
  
-# Depuis n'importe où : +Un **timer local** s'annule tout seul dès que le joueur quitte la salle il est lié à elle.
-faire: "declencher_event:demarrer_bombe" +
-</code>+
  
-===== Voir aussi =====+Un **timer global** s'arrête avec le même interrupteur que celui qui le lance : 
 + 
 +<code yaml> 
 +faire: "timer_global:comptebombe:OFF"      # met le timer en pause 
 +faire: "timer_global:comptebombe:SWITCH"   # inverse son état 
 +</code>
  
-  * [[fr:yaml:evenements|Événements]] +''OFF'' conserve le temps restant un ''ON'' ultérieur repart de là où le timer s'était arrêté.
-  * [[fr:yaml:hud|HUD — afficher le timer]]+
  
fr/yaml/timers.1777820514.txt.gz · Dernière modification : de cyrilfiesta