Ceci est une ancienne révision du document !
Table des matières
Language / Langue : FR | EN
Objets et inventaire (YAML)
Les objets déclarés dans objets: sont ajoutés à la salle quand le joueur y entre. Ils utilisent les commandes natives du bot : prendre, examiner et jeter.
Important : les objets YAML ne possèdent pas de champ si: ni visible-si:. Pour rendre un objet conditionnel, utilisez plutôt un événement, un choix, un tag, une salle différente, ou un objet avec retirer: true.
Exemple complet
- id: bibliotheque texte: | Une table encombrée occupe la pièce. Un vieux coffre repose contre le mur. objets: - nom: grimoire endroit: table desc_meuble: "Une vieille table en bois. Un grimoire poussiéreux y est posé." description: "Un vieux grimoire aux pages jaunies." msg_ramassage: "Vous prenez le grimoire sur la table." reaction_meuble: "Examiner la table" reaction_prise: "Prendre le grimoire" reaction_objet: "Examiner le grimoire" - nom: cle endroit: invisible description: "Une petite clé en argent." msg_ramassage: "Vous ramassez la clé." - nom: vieillepotion retirer: true endroit: invisible msg_retrait: "La vieille potion disparaît de votre sac."
Champs disponibles
| Champ | Effet |
|---|---|
nom: | Identifiant de l'objet. Obligatoire. |
nom_affiche: | Nom lu et tapé par le joueur ; ne change pas l'identifiant. |
secret: true | Décor accessible uniquement par son meuble. |
endroit: | Meuble ou lieu où se trouve l'objet. Défaut : invisible. |
description: | Texte affiché quand le joueur examine l'objet. |
desc_meuble: | Texte affiché quand le joueur examine le meuble/l'endroit. Si absent, le moteur réutilise description:. |
msg_ramassage: | Texte affiché quand l'objet est pris. |
retirer: true | Retire cet objet à l'entrée dans la salle, équivalent au préfixe -nom de l'ancienne syntaxe. |
msg_retrait: | Texte utilisé lors du retrait si retirer: true. |
reaction_meuble: | Bouton affiché pour examiner le meuble. |
reaction_prise: | Bouton affiché pour prendre l'objet. |
reaction_objet: | Bouton affiché pour examiner l'objet. |
limite-inventaire: | Nombre d'exemplaires que le joueur peut porter. Absente : un seul. 0 : illimité. |
msg_limite-inventaire: | Texte facultatif affiché quand la limite est atteinte. |
msg_jeter-absent: | Texte facultatif affiché quand le joueur jette un objet qu'il ne porte pas. |
Meuble, objet et inventaire
endroit: définit le meuble visible. Exemple : avec endroit: coffre, le joueur peut examiner coffre. desc_meuble: décrit alors le coffre, tandis que description: décrit l'objet lui-même.
endroit: invisible signifie que l'objet existe dans la salle mais n'est pas listé comme objet visible à prendre directement. C'est utile pour des états internes ou des objets manipulés par événement.
Plusieurs exemplaires d'un même objet
Déclarer plusieurs fois le même nom: représente désormais plusieurs exemplaires réels, y compris dans des meubles ou des salles différents. En prendre un ne masque plus les autres, qui gardent leur propre description dans le décor.
objets: - nom: piece endroit: coffre description: "Une pièce d'argent usée." - nom: piece endroit: bourse description: "Une pièce encore tiède."
L'inventaire les regroupe sous la forme piece × 2. Jeter, utiliser ou retirer un objet ne consomme qu'une unité, et les conditions historiques objet / -objet conservent leur sens.
Combien d'exemplaires peut-on porter
limite-inventaire: fixe le maximum. Sans elle, le joueur porte un exemplaire. 0 signifie illimité.
objets: - nom: torche endroit: mur limite-inventaire: 3 msg_limite-inventaire: "Vous portez déjà trois torches."
Dépasser la limite est une réponse narrative normale, pas une erreur : le moteur indique combien d'exemplaires sont déjà portés et quelle est la limite, puis laisse les commandes disponibles. Les deux messages facultatifs acceptent le traitement de texte habituel, dont v_variable_v et t_variable_t.
Tester un objet en condition
Dans les champs si:, un objet se teste avec son nom directement :
si: "cle" # le joueur possède l'objet cle
Ou :
si: "-cle" # le joueur ne possède pas l'objet cle
Les conditions d'objet utilisent l'identifiant nom:, même si un nom affiché est défini.
Conditions de quantité
Une condition structurée compare le nombre d'exemplaires possédés.
evenements: - si: objet: piece quantite: 3 operateur: ">=" texte: "Vous avez de quoi payer le passeur."
L'éditeur propose ce réglage dans son constructeur de conditions.
Ajouter ou retirer un objet via faire:
Forme recommandée :
evenements: - si: ~ faire: - objet: cle_rouillee vers: inventaire description: "Une vieille clé rouillée." - objet: fausse_cle vers: inventaire retirer: true texte: "Votre trousseau change."
La forme historique reste acceptée :
faire: - "cle_rouillee&&inventaire&&Une vieille clé rouillée." - "-fausse_cle&&inventaire&&null"
Médias dans les descriptions
description: et desc_meuble: acceptent les mêmes médias que le texte narratif : images [[url]], sons <<url>> et vidéos ((url)).
objets: - nom: carte endroit: table description: "Une carte du royaume.\n[[https://exemple.com/images/carte.png]]" msg_ramassage: "Vous prenez la carte."
Cliquer sur un objet dans l'inventaire déclenche automatiquement examiner <objet>.
Voir aussi
Nom affiché et identifiant
nom: reste l'identifiant stable utilisé dans les conditions, effets et sauvegardes. nom_affiche: fournit un nom plus lisible au joueur :
objets: - nom: cle_atelier nom_affiche: clé de l'atelier endroit: table description: Une petite clé en fer.
Le joueur peut taper prendre clé de l'atelier, examiner clé de l'atelier ou utiliser l'identifiant cle_atelier. Les noms affichés sont reconnus sans distinction de casse, d'accents ou d'espaces doublés. Les commandes, alias, identifiants et cibles explicites d'actions gardent leur priorité ; examiner un meuble ou une variable reste possible même si un objet porte ce nom affiché.
L'inventaire numérote les objets distincts de même nom affiché, par exemple boisson 1 et boisson 2 ; ces libellés peuvent être tapés. Plusieurs exemplaires du même identifiant restent regroupés. Pour les conditions et les effets, toujours utiliser l'identifiant. t_action_cible_t contient aussi l'identifiant résolu.
Dans l'éditeur, Nom affiché se déplie à la demande et reste ouvert si une valeur est renseignée. En anglais : display_name:.
Renommer pendant la partie
Dans le faire: d'une interaction :
faire: - nom_affiche: cle_atelier valeur: clé identifiée de l'atelier
L'effet change le nom affiché, sans changer l'identifiant ni les quantités. Il est conservé dans les sauvegardes. Une valeur: “” rétablit l'identifiant cle_atelier, même si la déclaration initiale donnait un autre nom affiché. Cet effet n'est pas autorisé dans les corps de boucle. Dans l'éditeur : effet Renommer un objet, avec l'objet et son nouveau nom affiché. En anglais : display_name et value.
Décors secrets et meubles vides
secret: true réserve une entrée à la description de son meuble. Le joueur peut examiner le meuble, mais ne peut ni prendre ni examiner l'objet secret lui-même. Sa description d'objet, son nom affiché, son message de ramassage et ses boutons d'objet/prise sont ignorés ; utiliser desc_meuble et éventuellement reaction_meuble.
objets: - nom: cle_atelier nom_affiche: clé de l'atelier endroit: table desc_meuble: Une clé est posée sur la table. description: Une petite clé en fer. - nom: table_vide secret: true endroit: table desc_meuble: La table est vide. - nom: statue_decor secret: true endroit: statue desc_meuble: Une vieille statue de pierre. reaction_meuble: Examiner la statue
Placer le décor de meuble vide après les objets ordinaires de ce meuble. Le premier objet encore présent fournit sa description ; une fois la clé prise, examiner table affiche “La table est vide.” La statue montre le même usage pour un décor permanent.
secret est différent d'endroit: invisible, qui garde les usages historiques de l'objet. Ne pas combiner secret: true et retirer: true : le retrait prime et le linter signale que le secret est ignoré. L'éditeur masque les champs inutiles d'un secret en conservant leurs valeurs, et laisse les imports contradictoires corrigeables. En anglais : secret: true, location, furniture_description et furniture_reaction.
