Outils pour utilisateurs

Outils du site


fr:yaml:objets

Ceci est une ancienne révision du document !


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.
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
si: "-cle"     # le joueur ne possède pas l'objet cle

Les conditions d'objet utilisent le nom brut

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

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