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

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fr:yaml:objets [2026/05/03 17:20] – mise a jour wiki 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.
  
-<code yaml> +===== Combien d'exemplaires peut-on porter =====
-# Vérifier si le joueur possède l'objet +
-si: "o_epee_o"        # possède "epee" +
-si: "!o_epee_o"       # ne possède PAS "epee" +
-</code>+
  
-===== Ajouter/retirer un objet via un événement =====+''limite-inventaire:'' fixe le maximum. Sans elle, le joueur porte **un** exemplaire. ''0'' signifie illimité.
  
 <code yaml> <code yaml>
-evenements+objets
-  - si"~" +  - nomtorche 
-    faire+    endroitmur 
-      - "o+epee_magique"    # ajouter l'objet +    limite-inventaire: 3 
-      "o-epee"            # retirer l'objet +    msg_limite-inventaire: "Vous portez déjà trois torches."
-    texte: "Votre épée se transforme !"+
 </code> </code>
  
-===== Objets avec image et son =====+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> <code yaml>
-objets+si"cle"      # le joueur possède l'objet cle 
-  - nom: carte_tresor +si: "-cle    # le joueur ne possède pas l'objet cle
-    description: "[[https://monsite.fr/carte.png]] Une carte au trésor usée."+
 </code> </code>
  
-===== Examiner un objet =====+Les conditions d'objet utilisent le nom brut
  
-Le joueur peut faire ''examiner nom_objet'' pour voir la description. +===== Conditions de quantité =====
-Si la description est une URL d'image ''[[url]]'', elle sera affichée.+
  
-===== Voir aussi =====+Une condition structurée compare le nombre d'exemplaires possédés.
  
-  * [[fr:yaml:conditions|Conditions avec objets]] +<code yaml
-  * [[fr:yaml:actions|Actions personnalisées (utiliser, jeter...)]]+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.
  
-===== Inventaire enrichi (v4.9) ===== 
  
-Les descriptions d'objets peuvent contenir des URLs image ou son — elles deviennent cliquables dans l'inventaire :+===== Ajouter ou retirer un objet via faire=====
  
-  * ''%%[[url]]%%'' → affiche un lien cliquable qui ouvre l'image +Forme recommandée :
-  * ''%%<<url>>%%'' → affiche un lien avec icône 🔊 et nom du fichier son +
-  * Texte et liens peuvent coexister dans la même description+
  
 <code yaml> <code yaml>
-objets+evenements
-  - nomcarte +  - si~ 
-    endroit"table" +    faire
-    description"Une carte du royaume.\n[[https://exemple.com/images/carte.png]]" +      - objetcle_rouillee 
-    msg_ramassage: "Vous prenez la carte." +        versinventaire 
- +        description: "Une vieille clé rouillée." 
-  nomcle_musicale +      objetfausse_cle 
-    endroit"coffre" +        versinventaire 
-    description"Une clé qui sonne quand on la touche. <<https://exemple.com/sons/cle.mp3>>" +        retirertrue 
-    msg_ramassage: "Vous prenez la clé."+    texte: "Votre trousseau change."
 </code> </code>
  
-Cliquer sur le nom d'un objet dans l'inventaire déclenche automatiquement ''examiner <objet>''.+La forme historique reste acceptée :
  
-===== examiner — affichage image (v4.9) =====+<code yaml> 
 +faire: 
 +  - "cle_rouillee&&inventaire&&Une vieille clé rouillée.
 +  - "-fausse_cle&&inventaire&&null" 
 +</code>
  
-Si la ''description'' d'un objet est une URL image ''%%[[url]]%%'', ''j!examiner objet'' affiche l'image directement :+===== 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> <code yaml>
 objets: objets:
-  - nom: portrait +  - nom: carte 
-    endroit: "mur" +    endroit: table 
-    description: "[[https://exemple.com/images/portrait.png]]" +    description: "Une carte du royaume.\n[[https://exemple.com/images/carte.png]]" 
-    msg_ramassage: "Vous décrochez le portrait."+    msg_ramassage: "Vous prenez la carte."
 </code> </code>
  
-Si la description est absente ou vide, ''examiner'' n'affiche rien (plus de "null" parasite).+Cliquer sur un objet dans l'inventaire déclenche automatiquement ''examiner <objet>''. 
 + 
 +===== Voir aussi =====
  
-**Retrouvez nous sur le [[https://discord.gg/Z63DtVV|discord Make&Play]]**+  [[fr:yaml:conditions|Conditions]] 
 +  * [[fr:yaml:actions|Actions personnalisées]] 
 +  [[fr:yaml:medias|Sons, images et vidéos]]
  
fr/yaml/objets.1777821604.txt.gz · Dernière modification : de cyrilfiesta