Outils pour utilisateurs

Outils du site


fr:yaml:variables

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
fr:yaml:variables [2026/08/31 21:13] – Wiki : fins de pages homogènes, liens Discord retirés cyrilfiestafr:yaml:variables [2026/10/20 22:19] (Version actuelle) – Mod?les sur_place, port?e des encadr?s et objets 4.17 cyrilfiesta
Ligne 5: Ligne 5:
 ===== Déclaration des variables ===== ===== Déclaration des variables =====
  
-Les variables numériques se déclarent dans le bloc ''vars:'' de l'en-tête :+Les variables numériques se déclarent dans ''vars:'' :
  
 <code yaml> <code yaml>
 vars: vars:
-  # Forme courte (valeur seule) 
   score: 0   score: 0
- 
-  # Forme longue (avec description) 
   pv:   pv:
     valeur: 10     valeur: 10
Ligne 18: Ligne 15:
 </code> </code>
  
-La description est affichée si le joueur examine la variable (commande ''examiner score'') ou si elle est liée à une option permanente. +Les variables textuelles se déclarent dans ''vars_texte:'' :
- +
-===== Variables textuelles ===== +
- +
-Déclarées dans ''vars_texte:'' :+
  
 <code yaml> <code yaml>
Ligne 31: Ligne 24:
 </code> </code>
  
-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.+La description est affichée si le joueur examine la variable ou si elle est liée à une option permanente. Une variable numérique s'écrit ''v_score_v'' dans un texte, une variable textuelle ''t_nomjoueur_t''.
  
-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.+===== Portée : normale, persistante ou online ===== 
 + 
 +Le suffixe du nom détermine la portée de la variable. La section de déclaration reste ''vars:'' ou ''vars_texte:'' dans les trois cas. 
 + 
 +^ Nom ^ Portée ^ Stockage ^ 
 +| ''score'' | Partie courante | Disparaît avec la partie | 
 +| ''record_p'' | Persistante locale | Conservée sur l'appareil entre les parties | 
 +| ''record_o'' | Online | Partagée entre les joueurs du même scénario chargé |
  
 <code yaml> <code yaml>
 +id: mon-scenario
 +
 vars: vars:
-  proposition: +  score: 0 
-    valeur: 0 +  meilleur_score_p: 0 
-    repondre: true+  record_mondial_o: 0
  
 vars_texte: vars_texte:
-  nomjoueur: +  derniere_fin_p: "aucune" 
-    valeur: "Aventurier" +  message_commun_o: "Bienvenue"
-    repondre: true+
 </code> </code>
  
-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.+''vars_online:'' reste accepté pour les anciens scénarios, mais cette syntaxe est historique. Une nouvelle variable ''_o'' doit être placée dans ''vars:'' ou ''vars_texte:''.
  
-===== Variables online =====+===== Variables persistantes _p =====
  
-Persistées entre toutes les parties, sur tous les serveurs. Déclarées dans ''vars_online:'' :+Une variable ''_p'' est liée à la clé ''id:'' du scénario et non à sa sauvegarde. Elle survit à une victoire, une défaite, un abandon et une nouvelle partie. Elle convient aux records, collections, fins déjà découvertes et compteurs utilisés par plusieurs parties. 
 + 
 +La clé ''id:'' racine est obligatoire dès qu'un scénario utilise une variable ''_p''. Elle doit rester stable après publication. Deux traductions portant le même ID partagent leurs variables persistantes. 
 + 
 +Une valeur déjà enregistrée est relue au début du scénario. Le premier ''init:'' qui lui attribue une valeur fixe ne l'écrase pas ; une opération relative comme ''+1'' s'applique en revanche à la valeur conservée. 
 + 
 +Le bouton **Réinitialiser** efface les variables ''_p'' et les [[fr:yaml:succes|succès]] du scénario courant, puis lance une partie neuve. 
 + 
 +===== Variables online _o ===== 
 + 
 +Pour une source de scénario autorisée par le serveur, une variable ''_o'' est partagée entre les joueurs. Elle est liée à l'URL ou au chemin du scénario, pas à son ''id:''. Hors de ces sources, elle reste locale à la partie.
  
 <code yaml> <code yaml>
-vars_online:+vars:
   recordscore_o:   recordscore_o:
     valeur: 0     valeur: 0
-    description: "Meilleur score jamais atteint"+    description: "Meilleur score partagé"
 </code> </code>
  
-Le nom **doit finir par ''_o''**. Utilisation identique aux variables normales : ''v_recordscore_o_v''.+La variable ''nb_parties_o'' existe automatiquement et augmente à chaque lancement. Dans un export standalone, les ''_o'' deviennent locales au standalone : aucun serveur commun n'est contacté.
  
-La variable ''nb_parties_o'' existe automatiquement - incrémentée à chaque lancement.+===== Variables dans init: =====
  
-===== Variables dans init: (par salle) ===== +''init:'' peut déclarer une variable au moment d'entrer dans une salle :
- +
-Le bloc ''init:'' d'une salle est exécuté à chaque entrée :+
  
 <code yaml> <code yaml>
 init: init:
-  # Variable numérique 
   - var: desresultat   - var: desresultat
     valeur: "%=1:6"     valeur: "%=1:6"
     description: "Résultat du lancer de dé"     description: "Résultat du lancer de dé"
- 
-  # Variable textuelle 
   - var_texte: etat   - var_texte: etat
     valeur: "repos"     valeur: "repos"
-    description: "État du joueur" 
 </code> </code>
 +
 +Une opération relative sur un nom encore inconnu part de 0. Il est toutefois plus clair de donner d'abord une valeur initiale explicite.
 +
 +===== Réponse libre =====
 +
 +Dans le ''init:'' d'une salle, ''repondre: true'' autorise le joueur à saisir une valeur :
 +
 +<code yaml>
 +init:
 +  - var_texte: nomjoueur
 +    valeur: "Aventurier"
 +    repondre: true
 +</code>
 +
 +Les noms de salles, alias et actions connues restent prioritaires. Une réponse numérique est enregistrée sans message technique ; prévoyez un événement pour afficher le retour voulu.
  
 ===== Modificateurs de valeur ===== ===== Modificateurs de valeur =====
  
 ^ Syntaxe ^ Effet ^ ^ Syntaxe ^ Effet ^
-| ''0'' (nombre fixe) | Fixe la valeur à 0 | +| ''0'' | Fixe la valeur à 0 | 
-| ''"+1"'' | Ajoute 1 à la valeur actuelle |+| ''"+1"'' | Ajoute 1 |
 | ''"-3"'' | Soustrait 3 | | ''"-3"'' | Soustrait 3 |
-| ''"%=1:6"'' | Aléatoire entre 1 et 6 | +| ''"%=1:6"'' | Tire un nombre entre 1 et 6 | 
-| ''"%+1:3"'' | Ajoute un aléatoire entre 1 et 3 | +| ''"%+1:3"'' | Ajoute un nombre tiré entre 1 et 3 | 
-| ''"%=v_force_v:v_pvmax_v"'' | Aléatoire avec variables comme bornes |+| ''"%=v_force_v:v_pvmax_v"'' | Utilise des variables comme bornes |
  
-===== Variables dans les textes ===== +===== Variables système et affichage =====
- +
-  * ''v_nom_v'' → valeur d'une variable numérique +
-  * ''t_nom_t'' → valeur d'une variable textuelle +
- +
-===== Variables système =====+
  
 ^ Variable ^ Valeur ^ ^ Variable ^ Valeur ^
-| ''v_resultat_v'' | Résultat du dernier aléatoire ''%=X:Y'' |+| ''v_resultat_v'' | Résultat du dernier tirage ''%=X:Y'' |
 | ''v_valeur_v'' | Dernier code saisi dans ''avancer salle code'' | | ''v_valeur_v'' | Dernier code saisi dans ''avancer salle code'' |
 | ''v_reponse_v'' | Valeur saisie avec ''repondre'' | | ''v_reponse_v'' | Valeur saisie avec ''repondre'' |
 | ''v_nom_timer_v'' | Secondes restantes du timer ''nom'' | | ''v_nom_timer_v'' | Secondes restantes du timer ''nom'' |
  
-===== Formatage de l'affichage =====+Pour une variable ''tour'' déclarée dans le scénario, ''v_tour_v|pad2'' affiche 7 sous la forme 07. 
 + 
 +===== Piège classique =====
  
-On peut formater l'affichage d'une variable numérique avec ''|padN'' :+Le texte d'un événement est préparé avant l'action de ce même événement. Pour annoncer un nouveau record, affichez la variable source :
  
 <code yaml> <code yaml>
-texte: "Tour : v_tour_v|pad2"   # affiche "Tour : 07" si tour = 7+evenements: 
 +  - si: "v_score_v > v_record_o_v" 
 +    faire: "record_o.=.v_score_v" 
 +    texte: "Nouveau record : v_score_v"
 </code> </code>
  
-===== Piège classique : variables online =====+===== Chemins et écritures espacées (4.17) =====
  
-⚠ Le texte d'un événement est évalué **avant** l'action du même événement. +Les [[fr:yaml:listes-boucles|listes et collections]] ajoutent des chemins comme ''heros.vie'', ''sac[0]'' ou ''groupe[v_position_v].vie''. Les marqueurs restent ''v_..._v'' et ''t_..._t''. 
-Pour afficher la **nouvelle** valeur d'un record, affichez la variable source, pas la destination :+ 
 +Dans ''faire:'', ''vie + 10'' est l'équivalent de ''vie.+.10''. Opérateurs : ''<nowiki>= + - * / // ** %%</nowiki>'' et tirage ''%''. ''/'' arrondit au pair en cas d'égalité, ''//'' tronque vers zéro et ''<nowiki>%%</nowiki>'' donne le modulo. La division par zéro est une erreur.
  
 <code yaml> <code yaml>
-evenements: +faire: 
-  - si: "v_score_v > v_record_o_v" +  - heros.vie + 10 
-    faire: "record_o.=.v_score_v" +  - score + %1:6 
-    # Affiche v_score_v (la source), pas v_record_o_v (pas encore mise à jour) +  - score + %2:70,5:30
-    texte: "Nouveau record : v_score_v (ancien : v_record_o_v)"+
 </code> </code>
 +
 +Le dernier exemple tire 2 avec un poids de 70 ou 5 avec un poids de 30. ''resultat'' contient le nombre tiré avant l'application de l'opérateur. Les anciennes formes restent acceptées.
 +
 +''init:'' accepte aussi ''var: heros.vie'' ou ''var_texte: heros.nom'', avec ''modifiable: true'' ou ''repondre: true''. Le chemin doit traverser uniquement des collections et viser une propriété simple existante ; les indices de liste sont exclus de ces saisies.
 +
 +===== Décrire les données structurées =====
 +
 +Les listes, collections, propriétés et éléments peuvent recevoir une description séparée de leur valeur dans ''infos_donnees:'' (anglais : ''data_info:''). ''examiner heros.vie'' affiche la valeur et sa description. Les racines peuvent aussi être liées à des tags pour réinitialiser l'ensemble de leur contenu. Voir [[fr:yaml:listes-boucles|Descriptions et tags des données structurées]].
 +
 +Dans l'éditeur, les variables online restent rangées avec les nombres ou les textes selon leur type. Un nombre ''_o'' se déclare dans ''vars'', un texte ''_o'' dans ''vars_texte''. Les anciennes déclarations ''vars_online'' restent lisibles à l'import.
  
fr/yaml/variables.1788203590.txt.gz · Dernière modification : de cyrilfiesta