Outils pour utilisateurs

Outils du site


en:yaml:evenements

Ceci est une ancienne révision du document !


Language / Langue : FR | EN

Events (YAML)

Events are action blocks triggered automatically when entering a room, or manually through buttons.

Base Syntax

events:
  - if: "condition"
    do: "action"
    text: "Displayed message"
  • if: - trigger condition. ~ or missing means always true.
  • do: - action or list of actions.
  • text: - optional displayed text.

Actions Available in do:

Syntax Effect
score.+.10 Add 10 to score.
hp.-.3 Subtract 3 from hp.
score.=.0 Set score to 0.
score.=.v_other_v Copy another variable.
score.=.%1:6 Random value from 1 to 6.
object&&inventory&&Description Add an object.
-object&&inventory&&null Remove an object.
event_global:id:ON Enable a global event.
event_global:id:OFF Disable a global event.
event_global:id:SWITCH Toggle a global event.
timer_global:id:ON Start a global timer.
timer_global:id:OFF Stop a global timer.
trigger_event:id Trigger a global event directly.

Endings

events:
  - if: "v_hp_v <= 0"
    end: defeat
    text: "You died."
  - if: "v_score_v >= 100"
    end: victory
    text: "Congratulations!"

Redirection

events:
  - if: "v_hp_v <= 0"
    to: death_room
    text: "You pass out..."

An event with to: stops following events.

Event Button

events:
  - if: ~
    button: "Eat an apple (+3 HP)"
    do: "hp.+.3"
    text: "You eat the apple. HP: v_hp_v"

Limit Uses

events:
  - if: ~
    button: "Pick up a coin"
    do: "score.+.10"
    max: 3
    text:
      - if: "_max_atteint_"
        text: "No coins remain."
      - text: "+10 score."

Conditional buttons (visible-si / grise-si)

evenements:
  - si: ~
    bouton: "⚔️ Attack"
    visible-si: "v_hp_v > 0"   # hidden when HP reach 0
    faire: "score.+.5"
    texte: "You attack!"

  - si: ~
    bouton: "🏃 Flee"
    grise-si: "v_hp_v <= 0"    # visible but inactive when HP reach 0
    vers: accueil

visible-si: hides the button when the condition is false. grise-si: 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.

Conditional text on an event

The texte: field accepts a list of conditional blocks:

texte:
  - si: "_max_atteint_"
    texte: "No charge left!"
  - si: "v_score_v > 50"
    texte: "🏆 Wealthy adventurer: score v_score_v!"
  - texte: "Action done."   # fallback, always shown

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.

Timer started by an event

evenements:
  - si: ~
    timer: hourglass
    duree: "30"
    vers: salle_expiration
    texte: "The hourglass is running!"

v_hourglass_v holds the remaining seconds. A local timer is cancelled when the player leaves the room.

Manual command inside faire: (v4.9)

The commande: action inside faire: runs a text command of the bot, from an event, a choice or an action:

faire:
  - commande: "take key"
  - commande: "inspect chest"
  - commande: "go laboratory"

It works with the standard commands: go, back, take, throw, inspect, inventory, refresh, reply, edit, vars. Their French names are accepted too (avancer, reculer, prendre, jeter, examiner, inventaire, rafraichir, repondre, modifier, variables).

Useful to chain a series of actions automatically, or to simulate an interaction from an event.

Inline Events

A local event can be triggered by a tooltip or clickable element, and a source: + target: pair defines a drag&drop event.

Local events can be controlled with event:id:ON, event:id:OFF and event:id:SWITCH.

en/yaml/evenements.1788117618.txt.gz · Dernière modification : de cyrilfiesta