**Language / Langue :** **FR** | [[en:yaml:objets|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. |
===== 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.
objets:
- nom: piece
endroit: coffre
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."
===== 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, pas ''o_cle_o''.
===== 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 ''%%<>%%'' 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 ''.
===== Voir aussi =====
* [[fr:yaml:conditions|Conditions]]
* [[fr:yaml:actions|Actions personnalisées]]
* [[fr:yaml:medias|Sons, images et vidéos]]
**Retrouvez nous sur le [[https://discord.gg/Z63DtVV|discord Make&Play]]**