**Language / Langue :** **FR** | [[en:yaml:variables|EN]]
====== Variables (YAML) ======
===== Déclaration des variables =====
Les variables numériques se déclarent dans le bloc ''vars:'' de l'en-tête :
vars:
# Forme courte (valeur seule)
score: 0
# Forme longue (avec description)
pv:
valeur: 10
description: "Points de vie"
La description est affichée si le joueur examine la variable (commande ''examiner score'') ou si elle est liée à une option permanente.
===== Variables textuelles =====
Déclarées dans ''vars_texte:'' :
vars_texte:
nomjoueur:
valeur: "Aventurier"
description: "Nom du joueur"
Référencées dans les textes avec ''t_nom_t''. Le joueur peut modifier la valeur avec la commande ''repondre'' si la variable est déclarée dans la salle en cours.
Pour attendre une réponse libre, ajoutez ''repondre: true'' à une variable textuelle ou numérique. Le joueur peut alors saisir directement sa réponse, sans écrire la commande ''repondre''. Les noms de salles, les alias et les actions connues restent prioritaires.
vars:
proposition:
valeur: 0
repondre: true
vars_texte:
nomjoueur:
valeur: "Aventurier"
repondre: true
Une réponse numérique est enregistrée sans afficher le message technique de modification de variable. Prévoyez un événement pour donner le retour voulu au joueur.
===== Variables online =====
Persistées entre toutes les parties, sur tous les serveurs. Déclarées dans ''vars_online:'' :
vars_online:
recordscore_o:
valeur: 0
description: "Meilleur score jamais atteint"
Le nom **doit finir par ''_o''**. Utilisation identique aux variables normales : ''v_recordscore_o_v''.
La variable ''nb_parties_o'' existe automatiquement - incrémentée à chaque lancement.
===== Variables dans init: (par salle) =====
Le bloc ''init:'' d'une salle est exécuté à chaque entrée :
init:
# Variable numérique
- var: desresultat
valeur: "%=1:6"
description: "Résultat du lancer de dé"
# Variable textuelle
- var_texte: etat
valeur: "repos"
description: "État du joueur"
===== Modificateurs de valeur =====
^ Syntaxe ^ Effet ^
| ''0'' (nombre fixe) | Fixe la valeur à 0 |
| ''"+1"'' | Ajoute 1 à la valeur actuelle |
| ''"-3"'' | Soustrait 3 |
| ''"%=1:6"'' | Aléatoire entre 1 et 6 |
| ''"%+1:3"'' | Ajoute un aléatoire entre 1 et 3 |
| ''"%=v_force_v:v_pvmax_v"'' | Aléatoire avec variables comme bornes |
===== Variables dans les textes =====
* ''v_nom_v'' → valeur d'une variable numérique
* ''t_nom_t'' → valeur d'une variable textuelle
===== Variables système =====
^ Variable ^ Valeur ^
| ''v_resultat_v'' | Résultat du dernier aléatoire ''%=X:Y'' |
| ''v_valeur_v'' | Dernier code saisi dans ''avancer salle code'' |
| ''v_reponse_v'' | Valeur saisie avec ''repondre'' |
| ''v_nom_timer_v'' | Secondes restantes du timer ''nom'' |
===== Formatage de l'affichage =====
On peut formater l'affichage d'une variable numérique avec ''|padN'' :
texte: "Tour : v_tour_v|pad2" # affiche "Tour : 07" si tour = 7
===== Piège classique : variables online =====
⚠ Le texte d'un événement est évalué **avant** l'action du même événement.
Pour afficher la **nouvelle** valeur d'un record, affichez la variable source, pas la destination :
evenements:
- si: "v_score_v > v_record_o_v"
faire: "record_o.=.v_score_v"
# Affiche v_score_v (la source), pas v_record_o_v (pas encore mise à jour)
texte: "Nouveau record : v_score_v (ancien : v_record_o_v)"
**Retrouvez nous sur le [[https://discord.gg/Z63DtVV|discord Make&Play]]**