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/05/03 18:47] (Version actuelle) – Harmonize FR/EN language switch 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.
  
-<code yaml> +===== 1Pause visuelle {{timer:N}} =====
-- id: salle_piege +
-  texte: "Un mécanisme s'active ! Vous avez 30 secondes.+
-  evenements: +
-    - si: "~" +
-      faire: "timer+bombe:30"+
  
-- idexplosion +Bloque le jeu N secondes avec un compte à rebours visible, puis affiche les choix 
-  texte: "BOOM ! Le piège s'est déclenché." + 
-  evenements+<code yaml> 
-    - si: "~" +texte: 
-      fin: defaite+  Le mécanisme s'enclenche..
 +  {{timer:3}} 
 +  La porte s'ouvre !
 </code> </code>
  
-Déclencher un timer : ''timer+nom:duree'' (durée en secondes) +===== 2. Timer local (lié à une salle=====
-Annuler un timer : ''timer-nom''+
  
-===== Timer avec expiration (faire: et vers:) =====+Déclaré dans un événement, se lance à l'entrée de la salle. S'annule si le joueur quitte la salle.
  
 <code yaml> <code yaml>
-timers_globaux+evenements
-  - nombombe +  - si~ 
-    duree30 +    timersablier 
-    texte: "💥 La bombe explose !+    duree: "30
-    faire: "pv.=.0" +    vers: salle_expiration 
-    vers: explosion+    texte: "⏱️ Timer lancé — v_sablier_v secondes restantes."
 </code> </code>
  
-===== Timer avec tick: (action chaque seconde) =====+  * ''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'' :
  
 <code yaml> <code yaml>
 +# En-tête du scénario
 timers_globaux: timers_globaux:
-  - nomvenin+  - idcomptebombe
     duree: 60     duree: 60
-    tick+    etatOFF    # OFF par défaut 
-      - si"~" + 
-        faire: "pv.-.1" +# Dans un événement ou choix 
-        texte"☠️ Le venin vous ronge... -1 PV" +faire: "timer_global:comptebombe:ON"
-      - si: "v_pv_v <= 0" +
-        vers: mort_venin+
 </code> </code>
  
-===== Afficher le temps restant =====+À expiration, déclenche les événements globaux liés (''si: "v_comptebombe_v 0"'').
  
-<code yaml> +**Timers globaux autonomes (v4.9)** — à l'expiration, exécute directement ses propres actions sans passer par un événement 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"+timers_globaux
 +  - id: compte_rebours_fatal 
 +    duree: 60 
 +    etat: OFF 
 +    texte: "⏰ Temps écoulé ! La porte se referme..." 
 +    faire: 
 +      - "score.-.20" 
 +    vers: fin_defaite
 </code> </code>
  
-===== Timers globaux autonomes =====+===== 4. Tick : action chaque seconde =====
  
-Les timers globaux tournent en arrière-plan, même si le joueur change de salle :+''tick:'' exécute une liste de blocs à chaque seconde du timer (local ou global) :
  
 <code yaml> <code yaml>
-timers_globaux+evenements
-  - nomnuit +  - si~ 
-    duree120 +    timertick_demo 
-    texte: "🌙 La nuit tombe sur le royaume.+    duree: "180
-    faire: "difficulte.+.1" +    verssalle_expiration
- +
-  - nom: garde_patrouille +
-    duree15+
     tick:     tick:
-      - si: "v_visible_v = 1" +      - si: ~                        # toujours exécuté 
-        versdetection +        faire: "ticks_ecoules.+.1" 
-        texte: "Le garde vous aperçoit !"+      - si"v_ticks_ecoules_v > 5"  # conditionnel 
 +        faire: "autre_var.+.1"
 </code> </code>
  
-===== Démarrer/arrêter via declencher_event=====+Sur un timer global :
  
 <code yaml> <code yaml>
-evenements_globaux+timers_globaux
-  - id: demarrer_bombe +  - id: poison_tick 
-    si: "~+    duree: 30 
-    faire: "timer+bombe:30+    etat: OFF 
- +    tick: 
-# Depuis n'importe où : +      - si: "v_pv_v > 0
-faire: "declencher_event:demarrer_bombe"+        faire: "pv.-.1
 +        texte: "☠️ Le poison agit... (PV v_pv_v)"
 </code> </code>
  
-===== Voir aussi =====+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
  
-  * [[fr:yaml:evenements|Événements]] +===== Annuler des timers ===== 
-  * [[fr:yaml:hud|HUD — afficher le timer]]+ 
 +<code yaml> 
 +faire"annuler_timer:nom"       # annule un timer spécifique 
 +faire: "annuler_tous_timers:"    # annule tous les timers actifs 
 +</code>
  
 +**Retrouvez nous sur le [[https://discord.gg/Z63DtVV|discord Make&Play]]**
fr/yaml/timers.1777820514.txt.gz · Dernière modification : de cyrilfiesta