Outils pour utilisateurs

Outils du site


en:yaml:evenements

Différences

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

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
en:yaml:evenements [2026/08/30 21:20] – maj 4.14 : dialogues, videos hebergees, mise en page, doc EN completee cyrilfiestaen:yaml:evenements [2026/11/04 21:35] (Version actuelle) – Documentation 4.17 : objets, evenements et mise en page verifies cyrilfiesta
Ligne 3: Ligne 3:
 ====== Events (YAML) ====== ====== Events (YAML) ======
  
-Events are action blocks triggered automatically when entering a room, or manually through buttons.+Events are action blocks run automatically or called through an interaction, such as a button, shortcut or ''trigger_event:id''. A button waits for a click. Without a button, ''manual: true'' or a shortcut makes the event manual. Merely referencing its ID in ''trigger_event:'' never makes it manual: otherwise it is still evaluated on entry and after commands.
  
 ===== Base Syntax ===== ===== Base Syntax =====
Ligne 26: Ligne 26:
 | ''score.=.v_other_v'' | Copy another variable. | | ''score.=.v_other_v'' | Copy another variable. |
 | ''score.=.%1:6'' | Random value from 1 to 6. | | ''score.=.%1:6'' | Random value from 1 to 6. |
 +| ''score.=.%1:70,5:20,10:10'' | Weighted draw: 1 has weight 70, 5 and 10 have weights 20 and 10. |
 | ''object&&inventory&&Description'' | Add an object. | | ''object&&inventory&&Description'' | Add an object. |
 | ''-object&&inventory&&null'' | Remove an object. | | ''-object&&inventory&&null'' | Remove an object. |
Ligne 33: Ligne 34:
 | ''timer_global:id:ON'' | Start a global timer. | | ''timer_global:id:ON'' | Start a global timer. |
 | ''timer_global:id:OFF'' | Stop a global timer. | | ''timer_global:id:OFF'' | Stop a global timer. |
-| ''trigger_event:id'' | Trigger a global event directly. |+| ''trigger_event:id'' | Call an enabled local or global event by its id. | 
 + 
 +Several actions in one event: 
 + 
 +<code yaml> 
 +do: 
 +  - "hp.+.5" 
 +  - "score.+.10" 
 +  - "event_global:visit_bonus:ON" 
 +</code>
  
 ===== Endings ===== ===== Endings =====
Ligne 46: Ligne 56:
     text: "Congratulations!"     text: "Congratulations!"
 </code> </code>
 +
 +''do:'' can be combined with ''end:''; its effects run before the game ends.
  
 ===== Redirection ===== ===== Redirection =====
Ligne 86: Ligne 98:
  
 <code yaml> <code yaml>
-evenements: +events: 
-  - si: ~ +  - if: ~ 
-    bouton: "⚔️ Attack" +    button: "⚔️ Attack" 
-    visible-si: "v_hp_v > 0"   # hidden when HP reach 0 +    visible-if: "v_hp_v > 0"   # hidden when HP reach 0 
-    faire: "score.+.5" +    do: "score.+.5" 
-    texte: "You attack!"+    text: "You attack!"
  
-  - si: ~ +  - if: ~ 
-    bouton: "🏃 Flee" +    button: "🏃 Flee" 
-    grise-si: "v_hp_v <= 0"    # visible but inactive when HP reach 0 +    disabled-if: "v_hp_v <= 0" # visible but inactive when HP reach 0 
-    vers: accueil+    to: accueil
 </code> </code>
  
-''visible-si:'' hides the button when the condition is false. ''grise-si:'' keeps the button visible but inactive when the condition is true.+''visible-if:'' hides the button when the condition is false. ''disabled-if:'' keeps the button visible but inactive when the condition is true.
  
-⚠ On Discord, buttons are frozen inside the message that was sent. Clicking 🔄 (refresh) forces a redisplay with up to date buttons.+On Discord, buttons are frozen inside the message that was sent. Clicking 🔄 (refresh) forces a redisplay with up to date buttons.
  
 ===== Conditional text on an event ===== ===== Conditional text on an event =====
  
-The ''texte:'' field accepts a list of conditional blocks:+The ''text:'' field accepts a list of conditional blocks:
  
 <code yaml> <code yaml>
-texte: +text: 
-  - si: "_max_atteint_" +  - if: "_max_atteint_" 
-    texte: "No charge left!" +    text: "No charge left!" 
-  - si: "v_score_v > 50" +  - if: "v_score_v > 50" 
-    texte: "🏆 Wealthy adventurer: score v_score_v!" +    text: "🏆 Wealthy adventurer: score v_score_v!" 
-  - texte: "Action done."   # fallback, always shown+  - text: "Action done."   # fallback, always shown
 </code> </code>
  
 ===== Sequential behaviour ===== ===== Sequential behaviour =====
  
-⚠ Important: events run in order. Each one sees the values **already changed** by the previous ones. An event carrying ''vers:'' or ''fin:'' **stops** the ones after it.+Important: events run in order. Each one sees the values **already changed** by the previous ones. An event carrying ''to:'' or ''end:'' **stops** the ones after it.
  
 ===== Timer started by an event ===== ===== Timer started by an event =====
  
 <code yaml> <code yaml>
-evenements: +events: 
-  - si: ~+  - if: ~
     timer: hourglass     timer: hourglass
-    duree: "30" +    duration: "30" 
-    vers: salle_expiration +    to: expiration_room 
-    texte: "The hourglass is running!"+    text: "The hourglass is running!"
 </code> </code>
  
 ''v_hourglass_v'' holds the remaining seconds. A local timer is cancelled when the player leaves the room. ''v_hourglass_v'' holds the remaining seconds. A local timer is cancelled when the player leaves the room.
  
-===== Manual command inside faire: (v4.9) =====+===== Manual command inside do: (v4.9) =====
  
-The ''commande:'' action inside ''faire:'' runs a text command of the bot, from an event, a choice or an action:+The ''command:'' action inside ''do:'' runs a text command of the bot, from an event, a choice or an action:
  
 <code yaml> <code yaml>
-faire: +do: 
-  - commande: "take key" +  - command: "take key" 
-  - commande: "inspect chest" +  - command: "inspect chest" 
-  - commande: "go laboratory"+  - command: "go laboratory"
 </code> </code>
  
Ligne 153: Ligne 165:
 A local event can be triggered by a tooltip or clickable element, and a ''source:'' + ''target:'' pair defines a drag&drop event. A local event can be triggered by a tooltip or clickable element, and a ''source:'' + ''target:'' pair defines a drag&drop event.
  
-  * [[en:yaml:tooltips|Interactive tooltips]]: ''%%{{label:?text:!id}}%%'' or ''{{label:!id}}''.+  * [[en:yaml:tooltips|Interactive tooltips]]: ''%%{{label:?text:!id}}%%'' or ''%%{{label:!id}}%%''.
   * [[en:yaml:clickable-elements|Clickable elements]]: ''%%{{label:@id}}%%''.   * [[en:yaml:clickable-elements|Clickable elements]]: ''%%{{label:@id}}%%''.
   * [[en:yaml:drag-drop|Drag & drop]]: ''source:'' + ''target:'' on the event.   * [[en:yaml:drag-drop|Drag & drop]]: ''source:'' + ''target:'' on the event.
Ligne 159: Ligne 171:
 Local events can be controlled with ''event:id:ON'', ''event:id:OFF'' and ''event:id:SWITCH''. Local events can be controlled with ''event:id:ON'', ''event:id:OFF'' and ''event:id:SWITCH''.
  
 +===== Manual event without a button =====
 +
 +^ Key ^ Effect ^
 +| ''manual: true'' | Prevents automatic execution, without adding a button. |
 +
 +A choice can call this event explicitly. Its conditions, state and usage limits still apply.
 +
 +<code yaml>
 +title: 'Wiki 4.17: manual'
 +rooms:
 +- id: depart
 +  text: Start.
 +  events:
 +  - id: alerte
 +    manual: true
 +    text: Called only by the choice.
 +  choices:
 +  - command: appeler
 +    button: Call
 +    to: depart
 +    effect: trigger_event:alerte
 +</code>
 +
 +The alert text is absent on entry. The "Call" choice triggers it. Removing ''manual: true'' also makes it automatic; ''trigger_event:'' does not change that rule. French: ''manuel: true'' and ''declencher_event:alerte''.
  
en/yaml/evenements.1788117618.txt.gz · Dernière modification : de cyrilfiesta