**Language / Langue :** **FR** | [[en:yaml:variables|EN]] ====== Variables (YAML) ====== ===== Déclaration des variables ===== Les variables numériques se déclarent dans ''vars:'' : vars: score: 0 pv: valeur: 10 description: "Points de vie" Les variables textuelles se déclarent dans ''vars_texte:'' : vars_texte: nomjoueur: valeur: "Aventurier" description: "Nom du joueur" 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''. ===== 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é | id: mon-scenario vars: score: 0 meilleur_score_p: 0 record_mondial_o: 0 vars_texte: derniere_fin_p: "aucune" message_commun_o: "Bienvenue" ''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 persistantes _p ===== 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. vars: recordscore_o: valeur: 0 description: "Meilleur score partagé" 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é. ===== Variables dans init: ===== ''init:'' peut déclarer une variable au moment d'entrer dans une salle : init: - var: desresultat valeur: "%=1:6" description: "Résultat du lancer de dé" - var_texte: etat valeur: "repos" 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 : init: - var_texte: nomjoueur valeur: "Aventurier" repondre: true 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 ===== ^ Syntaxe ^ Effet ^ | ''0'' | Fixe la valeur à 0 | | ''"+1"'' | Ajoute 1 | | ''"-3"'' | Soustrait 3 | | ''"%=1:6"'' | Tire un nombre entre 1 et 6 | | ''"%+1:3"'' | Ajoute un nombre tiré entre 1 et 3 | | ''"%=v_force_v:v_pvmax_v"'' | Utilise des variables comme bornes | ===== Variables système et affichage ===== ^ Variable ^ Valeur ^ | ''v_resultat_v'' | Résultat du dernier tirage ''%=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'' | Pour une variable ''tour'' déclarée dans le scénario, ''v_tour_v|pad2'' affiche 7 sous la forme 07. ===== Piège classique ===== 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 : evenements: - si: "v_score_v > v_record_o_v" faire: "record_o.=.v_score_v" texte: "Nouveau record : v_score_v" ===== Chemins et écritures espacées (4.17) ===== 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''. Dans ''faire:'', ''vie + 10'' est l'équivalent de ''vie.+.10''. Opérateurs : ''= + - * / // ** %%'' et tirage ''%''. ''/'' arrondit au pair en cas d'égalité, ''//'' tronque vers zéro et ''%%'' donne le modulo. La division par zéro est une erreur. faire: - heros.vie + 10 - score + %1:6 - score + %2:70,5:30 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.