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/05/03 18:47] (Version actuelle) – Harmonize FR/EN language switch 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. |
  
-===== 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. 
 + 
 +===== Stock progressif sur un meuble ===== 
 + 
 +Déclarer plusieurs fois le même ''nom:'' au même ''endroit:'' permet de simuler un stock qui diminue. À chaque prise, le slot suivant devient actif.
  
 <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"+    desc_meuble: "Le coffre contient trois pièces." 
 +    description: "Une pièce d'or." 
 +    msg_ramassage: "Vous prenez une pièce. Il en reste deux." 
 +  - nom: piece 
 +    endroit: coffre 
 +    desc_meuble: "Le coffre contient encore deux pièces." 
 +    description: "Une pièce d'or." 
 +    msg_ramassage: "Vous prenez une pièce. Il en reste une." 
 +  - nom: piece 
 +    endroit: coffre 
 +    desc_meuble: "Le coffre contient une dernière pièce." 
 +    description: "Une pièce d'or." 
 +    msg_ramassage: "Vous prenez la dernière pièce."
 </code> </code>
  
-===== Utiliser un objet dans les conditions =====+===== Tester un objet en condition ===== 
 + 
 +Dans les champs ''si:'', un objet se teste avec son nom directement :
  
 <code yaml> <code yaml>
-Vérifier si le joueur possède l'objet +si: "cle"      # le joueur possède l'objet cle 
-si: "o_epee_o       # possède "epee" +si: "-cle    le joueur ne possède pas l'objet cle
-si: "!o_epee_o"       # ne possède PAS "epee"+
 </code> </code>
  
-===== Ajouter/retirer un objet via un événement =====+Les conditions d'objet utilisent le nom brut, pas ''o_cle_o''
 + 
 +===== 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]]
  
 +**Retrouvez nous sur le [[https://discord.gg/Z63DtVV|discord Make&Play]]**
fr/yaml/objets.1777820513.txt.gz · Dernière modification : de cyrilfiesta