Outils pour utilisateurs

Outils du site


fr:yaml:objets

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
fr:yaml:objets [2026/05/03 17:01] – Objets YAML cyrilfiestafr:yaml:objets [2026/08/31 21:10] (Version actuelle) – Wiki : fins de pages homogènes, liens Discord retirés cyrilfiesta
Ligne 1: Ligne 1:
-====== Syntaxe YAML — Objets ======+**Language / Langue :** **FR** | [[en:yaml:objets|EN]]
  
-Les objets représentent les items que le joueur peut ramasser, utiliser ou jeter.+====== Objets et inventaire (YAML) ======
  
-===== Déclarer un objet dans une salle =====+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 =====
  
 <code yaml> <code yaml>
-- id: caverne +- id: bibliotheque 
-  texte: "Une vieille épée traîne sur le sol."+  texte: 
 +    Une table encombrée occupe la pièce. 
 +    Un vieux coffre repose contre le mur.
   objets:   objets:
-    - nom: epee +    - nom: grimoire 
-      description: "Une épée rouillée mais encore tranchante." +      endroit: table 
-</code>+      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"
  
-Le joueur peut alors faire ''prendre epee'' pour le ramasser.+    - 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." 
 +</code>
  
 ===== Champs disponibles ===== ===== Champs disponibles =====
  
-^ Champ ^ Description +^ Champ ^ Effet 
-| ''nom:'' | Identifiant de l'objet (obligatoire) +| ''nom:'' | Identifiant de l'objet. Obligatoire. | 
-| ''description:'' | Texte affiché à l'examen +| ''endroit:'' | Meuble ou lieu où se trouve l'objet. Défaut : ''invisible''
-| ''si:''Condition pour que l'objet soit visible/prenable +| ''description:'' | Texte affiché quand le joueur examine l'objet. | 
-| ''visible-si:''Condition d'affichage dans l'inventaire |+| ''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 ''retirertrue''| 
 +| ''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. |
  
-===== Condition sur un objet =====+===== 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.
  
 <code yaml> <code yaml>
 objets: objets:
-  - nom: cle_secrete +  - nom: piece 
-    description: "Une clé gravée de runes." +    endroit: coffre 
-    si: "v_enigme_resolue_v = 1"+    description: "Une pièce d'argent usée." 
 +  - nom: piece 
 +    endroit: bourse 
 +    description: "Une pièce encore tiède."
 </code> </code>
  
-===== Utiliser un objet dans les conditions =====+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é.
  
 <code yaml> <code yaml>
-# Vérifier si le joueur possède l'objet +objets: 
-si"o_epee_o"        # possède "epee" +  - nomtorche 
-si: "!o_epee_o"       # ne possède PAS "epee"+    endroit: mur 
 +    limite-inventaire:
 +    msg_limite-inventaire: "Vous portez déjà trois torches."
 </code> </code>
  
-===== Ajouter/retirer un objet via un événement =====+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 : 
 + 
 +<code yaml> 
 +si: "cle"      # le joueur possède l'objet cle 
 +si: "-cle"     # le joueur ne possède pas l'objet cle 
 +</code> 
 + 
 +Les conditions d'objet utilisent le nom brut 
 + 
 +===== Conditions de quantité ===== 
 + 
 +Une condition structurée compare le nombre d'exemplaires possédés. 
 + 
 +<code yaml> 
 +evenements: 
 +  - si: 
 +      objet: piece 
 +      quantite: 3 
 +      operateur: ">=" 
 +    texte: "Vous avez de quoi payer le passeur." 
 +</code> 
 + 
 +L'éditeur propose ce réglage dans son constructeur de conditions. 
 + 
 + 
 +===== Ajouter ou retirer un objet via faire: ===== 
 + 
 +Forme recommandée :
  
 <code yaml> <code yaml>
 evenements: evenements:
-  - si: "~"+  - si: ~
     faire:     faire:
-      - "o+epee_magique   # ajouter l'objet +      - objet: cle_rouillee 
-      - "o-epee"            # retirer l'objet +        vers: inventaire 
-    texte: "Votre épée se transforme !"+        description: "Une vieille clé rouillée.
 +      - objet: fausse_cle 
 +        vers: inventaire 
 +        retirer: true 
 +    texte: "Votre trousseau change."
 </code> </code>
  
-===== Objets avec image et son =====+La forme historique reste acceptée :
  
 <code yaml> <code yaml>
-objets+faire
-  - nom: carte_tresor +  - "cle_rouillee&&inventaire&&Une vieille clé rouillée.
-    description: "[[https://monsite.fr/carte.png]] Une carte au trésor usée."+  - "-fausse_cle&&inventaire&&null"
 </code> </code>
  
-===== Examiner un objet =====+===== 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))%%''
 + 
 +<code yaml> 
 +objets: 
 +  - nom: carte 
 +    endroit: table 
 +    description: "Une carte du royaume.\n[[https://exemple.com/images/carte.png]]" 
 +    msg_ramassage: "Vous prenez la carte." 
 +</code>
  
-Le joueur peut faire ''examiner nom_objet'' pour voir la description. +Cliquer sur un objet dans l'inventaire déclenche automatiquement ''examiner <objet>''.
-Si la description est une URL d'image ''[[url]]'', elle sera affichée.+
  
 ===== Voir aussi ===== ===== Voir aussi =====
  
-  * [[fr:yaml:conditions|Conditions avec objets]] +  * [[fr:yaml:conditions|Conditions]] 
-  * [[fr:yaml:actions|Actions personnalisées (utiliserjeter...)]]+  * [[fr:yaml:actions|Actions personnalisées]] 
 +  * [[fr:yaml:medias|Sonsimages et vidéos]]
  
fr/yaml/objets.1777820513.txt.gz · Dernière modification : de cyrilfiesta