**Language / Langue :** **FR** | [[en:yaml:syntaxe-base|EN]] ====== Syntaxe YAML — Base ====== Le format YAML est le format moderne de JDR-Bot. Il est plus lisible, plus puissant et plus flexible que l'ancien format .txt. ===== Structure d'un fichier .yaml ===== titre: "Mon scénario" description: "Une aventure courte pour découvrir JDR-Bot." markdown: story police: serif vars: pv: valeur: 10 description: "Points de vie" salles: - id: debut texte: | Vous vous réveillez dans une forêt sombre. Une lueur brille au loin. choix: - commande: avancer bouton: "Avancer vers la lueur" vers: clairiere - commande: rester bouton: "Rester sur place" vers: fin_attente - id: clairiere texte: "Vous débouchez dans une clairière baignée de lumière." evenements: - si: ~ fin: victoire texte: "Vous avez trouvé la sortie !" - id: fin_attente texte: "La nuit tombe. Vous n'avez pas bougé." evenements: - si: ~ fin: defaite texte: "Perdu dans la nuit..." ===== Clés racines ===== ^ Clé ^ Description ^ Obligatoire ^ | ''titre:'' | Titre du scénario. | oui | | ''description:'' | Description affichée dans le catalogue et l'export standalone. | non | | ''markdown:'' | Rendu global du texte : ''none'', ''fix'', ''bold'', ''italic'', ''quote'', ''story'' ou langage de bloc code. | non | | ''taille:'' | Taille de texte par défaut, en pixels. | non | | ''police:'' | Police par défaut : ''serif'', ''monospace'', ''cursive'', ''Georgia'', etc. | non | | ''fond:'' | Fond par défaut des blocs de texte web/desktop. | non | | ''couleur-texte:'' | Couleur de texte par défaut web/desktop. | non | | ''vars:'' | Variables numériques globales. | non | | ''vars_texte:'' | Variables textuelles globales. | non | | ''vars_online:'' | Variables persistées entre parties. | non | | ''options:'' | Boutons permanents de toolbar. | non | | ''alias_globaux:'' | Labels de boutons réutilisables. | non | | ''tags:'' | Groupes de comportements réutilisables. | non | | ''modeles:'' | Salles modèles réutilisables. | non | | ''evenements_globaux:'' | Événements disponibles dans toutes les salles. | non | | ''actions_globales:'' | Actions personnalisées disponibles partout. | non | | ''timers_globaux:'' | Timers autonomes persistants entre salles. | non | | ''997_globaux:'' | Ordre d'exécution des événements globaux : ''avant'' ou ''apres''. | non | | ''salles:'' | Liste des salles du scénario. | oui | ===== Structure d'une salle ===== - id: nom_salle # identifiant unique num: 3 # optionnel : numéro explicite, croissant dans le YAML bouton: "Accueil" # label hérité par les choix vers cette salle texte: "..." # texte affiché au joueur fond: "#111827" # fond local optionnel couleur-texte: "#f5f0d8" init: - var: de valeur: "%=1:6" objets: - nom: cle endroit: table description: "Une vieille clé rouillée." msg_ramassage: "Vous prenez la clé." evenements: - si: "v_pv_v <= 0" vers: game_over texte: "Vous tombez au sol." choix: - commande: aller bouton: "Aller là-bas" vers: destination si: ~ actions: - verbe: examiner cible: coffre si: ~ texte_ok: "Un vieux coffre fermé." encadre: position: haut texte: "PV : v_pv_v" ===== Numéros de salles ===== Par défaut, les salles sont numérotées dans l'ordre du YAML. ''num:'' permet de fixer un numéro historique, mais les numéros doivent rester strictement croissants dans le document. Dans l'éditeur, réordonner les salles dans la liste modifie justement cet ordre d'export. ===== Fins de partie ===== evenements: - si: ~ fin: victoire texte: "Fin gagnante." - si: ~ fin: defaite texte: "Fin perdante." ===== Règles importantes ===== * Les IDs de salles doivent être uniques. * Les variables utilisées en conditions doivent être déclarées dans ''vars:'', ''vars_texte:'', ''vars_online:'' ou ''init:''. * ''~'' signifie toujours vrai. * Les événements sont évalués dans l'ordre ; le premier qui redirige avec ''vers:'' stoppe les suivants. * Les objets en condition s'écrivent ''cle'' ou ''-cle'', pas ''o_cle_o''. ===== Voir aussi ===== * [[fr:yaml:texte|Texte et formatage]] * [[fr:yaml:variables|Variables]] * [[fr:yaml:evenements|Événements]] * [[fr:yaml:choix|Choix et boutons]] * [[fr:yaml:objets|Objets]]