Outils pour utilisateurs

Outils du site


fr:yaml:objets

Language / Langue : FR | EN

Objets et inventaire (YAML)

Les déclarations dans objets: définissent les objets et leurs emplacements initiaux dans la salle. 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. Facultatif pour un meuble vide, obligatoire pour un objet ou un retrait.
nom_affiche: Nom lu et tapé par le joueur ; ne change pas l'identifiant.
meuble-vide: 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.
absent: true Déclare un emplacement initialement vide, réactivable.
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. Sans limite retenue : 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 limite retenue d'une déclaration précédente, 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 et meubles vides

meuble-vide: true décrit un meuble sans objet à prendre. Le joueur peut examiner le meuble, mais ne peut ni prendre ni examiner ce décor comme un objet. Son nom: est facultatif : le moteur crée alors une identité interne. Utilisez desc_meuble: et, si besoin, reaction_meuble:. Les champs de prise, d'examen d'objet, de nom affiché et de limite d'inventaire ne donnent pas d'interaction d'objet à ce décor.

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
    meuble-vide: true
    endroit: table
    desc_meuble: La table est vide.
  - nom: statue_decor
    meuble-vide: 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.

endroit: invisible garde les usages historiques d'un objet caché ; ce n'est pas un meuble vide. Si retirer: true est aussi présent, le retrait prime : un nom d'objet est nécessaire et le linter avertit que meuble-vide est ignoré. L'éditeur conserve les valeurs des champs masqués et permet de corriger une combinaison contradictoire. La clé secret est refusée sur les objets par le linter ; les succès secrets gardent leur propre réglage. En anglais : empty-furniture: true, location, furniture_description et furniture_reaction.

Objets réversibles et commandes (4.17)

Prendre désactive un exemplaire déclaré dans son meuble. mettre et poser le replacent dans un emplacement déclaré pour le même objet. Ces formes sont équivalentes : mettre piece dans coffre, poser piece sur coffre et mettre piece coffre. Sans meuble, mettre piece cherche un emplacement disponible. Une action personnalisée du même nom garde la priorité. Un dépôt refusé ne retire rien de l'inventaire.

Plusieurs objets différents peuvent partager un meuble. L'examen du meuble utilise la première déclaration dont l'objet est encore présent. Les prises suivent l'ordre des déclarations ; les dépôts remplissent les emplacements libres dans l'ordre inverse.

titre: 'Wiki 4.17 : piles'
vars:
  capacite: 2
salles:
- id: atelier
  texte: Un coffre et une table.
  objets:
  - nom: piece
    endroit: coffre
    description: Première pièce.
    limite-inventaire: v_capacite_v
  - nom: piece
    endroit: coffre
    description: Seconde pièce.
  - nom: cle
    endroit: coffre
    description: Une clé.
  - meuble-vide: true
    endroit: coffre
    desc_meuble: Le coffre est vide.
  choix:
  - commande: rester
    bouton: Rester
    vers: atelier

Ici, deux prises de piece sont possibles. Après un dépôt dans le coffre, c'est la seconde déclaration qui redevient présente en premier. examiner_objet_dans coffre examine l'objet actuellement en tête de ce meuble ; prendre_dans coffre le prend. Ces commandes ciblent l'emplacement, même si le même identifiant existe ailleurs. En anglais : inspect_from coffre et take_from coffre.

Déclaration absente, transfert et activation

absent: true réserve un emplacement vide au départ. Il peut être rempli après une prise, un transfert ou une activation.

titre: 'Wiki 4.17 : activation'
salles:
- id: atelier
  texte: Une table, un coffre et une boîte.
  objets:
  - nom: cle
    endroit: table
  - nom: cle
    endroit: coffre
    absent: true
  - nom: bille
    endroit: boite
    absent: true
  actions:
  - verbe: ranger
    cible: all
    bouton: Ranger la clé
    faire:
      objet: cle
      vers: coffre
  - verbe: apparition
    cible: all
    bouton: Faire apparaître la bille
    faire:
      objet: bille
      activer: boite
  choix:
  - commande: rester
    bouton: Rester
    vers: atelier

Après prendre cle, l'effet {objet: cle, vers: coffre} transfère une unité portée dans le coffre. {objet: bille, activer: boite} active une déclaration absente sans consommer l'inventaire. Un champ salle: peut préciser une autre salle. Pour tester sa présence : si: {objet: bille, dans: boite, quantite: 1, operateur: “>=”}.

Règle de limite d'inventaire

Pour un objet, la première déclaration active qui précise une limite est retenue dans la salle courante. Si aucune ne la précise, la dernière limite rencontrée est conservée ; sinon le défaut est 1. Une référence comme v_capacite_v est relue à l'ajout. 0 signifie illimité. Abaisser la limite ne retire pas les unités déjà portées.

fr/yaml/objets.txt · Dernière modification : de cyrilfiesta