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/08/31 21:10] – Wiki : fins de pages homogènes, liens Discord retirés cyrilfiestafr:yaml:objets [2026/11/04 21:28] (Version actuelle) – Documentation 4.17 : objets, evenements et mise en page verifies cyrilfiesta
Ligne 3: Ligne 3:
 ====== Objets et inventaire (YAML) ====== ====== 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''.+Les déclarations dans ''objets:'' définissent les objets et leurs emplacements initiaux dans la salle. 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''. 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''.
Ligne 38: Ligne 38:
  
 ^ Champ ^ Effet ^ ^ Champ ^ Effet ^
-| ''nom:'' | Identifiant de l'objet. Obligatoire. |+| ''nom:'' | Identifiant de l'objet. Facultatif pour un meuble vide, obligatoire pour un objet ou un retrait. | 
 +| ''nom_affiche:'' | Nom lu et tapé par le joueur ; ne change pas l'identifiant. | 
 +| ''meuble-vide: true'' | Décor accessible uniquement par son meuble. |
 | ''endroit:'' | Meuble ou lieu où se trouve l'objet. Défaut : ''invisible''. | | ''endroit:'' | Meuble ou lieu où se trouve l'objet. Défaut : ''invisible''. |
 | ''description:'' | Texte affiché quand le joueur examine l'objet. | | ''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:''. | | ''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. | | ''msg_ramassage:'' | Texte affiché quand l'objet est pris. |
 +| ''absent: true'' | Déclare un emplacement initialement vide, réactivable. |
 | ''retirer: true'' | Retire cet objet à l'entrée dans la salle, équivalent au préfixe ''-nom'' de l'ancienne syntaxe. | | ''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''. | | ''msg_retrait:'' | Texte utilisé lors du retrait si ''retirer: true''. |
Ligne 48: Ligne 51:
 | ''reaction_prise:'' | Bouton affiché pour prendre l'objet. | | ''reaction_prise:'' | Bouton affiché pour prendre l'objet. |
 | ''reaction_objet:'' | Bouton affiché pour examiner 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é. |+| ''limite-inventaire:'' | Nombre d'exemplaires que le joueur peut porter. Sans limite retenue : un seul. ''0'' : illimité. |
 | ''msg_limite-inventaire:'' | Texte facultatif affiché quand la limite est atteinte. | | ''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. | | ''msg_jeter-absent:'' | Texte facultatif affiché quand le joueur jette un objet qu'il ne porte pas. |
Ligne 76: Ligne 79:
 ===== Combien d'exemplaires peut-on porter ===== ===== Combien d'exemplaires peut-on porter =====
  
-''limite-inventaire:'' fixe le maximum. Sans elle, le joueur porte **un** exemplaire. ''0'' signifie illimité.+''limite-inventaire:'' fixe le maximum. Sans limite retenue d'une déclaration précédente, le joueur porte **un** exemplaire. ''0'' signifie illimité.
  
 <code yaml> <code yaml>
Ligne 94: Ligne 97:
 <code yaml> <code yaml>
 si: "cle"      # le joueur possède l'objet cle si: "cle"      # le joueur possède l'objet cle
 +</code>
 +
 +Ou :
 +
 +<code yaml>
 si: "-cle"     # le joueur ne possède pas l'objet cle si: "-cle"     # le joueur ne possède pas l'objet cle
 </code> </code>
  
-Les conditions d'objet utilisent le nom brut+Les conditions d'objet utilisent l'identifiant ''nom:'', même si un nom affiché est défini.
  
 ===== Conditions de quantité ===== ===== Conditions de quantité =====
Ligne 159: Ligne 167:
   * [[fr:yaml:actions|Actions personnalisées]]   * [[fr:yaml:actions|Actions personnalisées]]
   * [[fr:yaml:medias|Sons, images et vidéos]]   * [[fr:yaml:medias|Sons, images et vidéos]]
 +
 +===== Nom affiché et identifiant =====
 +
 +''nom:'' reste l'identifiant stable utilisé dans les conditions, effets et sauvegardes. ''nom_affiche:'' fournit un nom plus lisible au joueur :
 +
 +<code yaml>
 +objets:
 +  - nom: cle_atelier
 +    nom_affiche: clé de l'atelier
 +    endroit: table
 +    description: Une petite clé en fer.
 +</code>
 +
 +Le joueur peut taper ''prendre clé de l'atelier'', ''examiner clé de l'atelier'' ou utiliser l'identifiant ''cle_atelier''. Les noms affichés sont reconnus sans distinction de casse, d'accents ou d'espaces doublés. Les commandes, alias, identifiants et cibles explicites d'actions gardent leur priorité ; examiner un meuble ou une variable reste possible même si un objet porte ce nom affiché.
 +
 +L'inventaire numérote les objets distincts de même nom affiché, par exemple ''boisson 1'' et ''boisson 2'' ; ces libellés peuvent être tapés. Plusieurs exemplaires du même identifiant restent regroupés. Pour les conditions et les effets, toujours utiliser l'identifiant. ''t_action_cible_t'' contient aussi l'identifiant résolu.
 +
 +Dans l'éditeur, **Nom affiché** se déplie à la demande et reste ouvert si une valeur est renseignée. En anglais : ''display_name:''.
 +
 +===== Renommer pendant la partie =====
 +
 +Dans le ''faire:'' d'une interaction :
 +
 +<code yaml>
 +faire:
 +  - nom_affiche: cle_atelier
 +    valeur: clé identifiée de l'atelier
 +</code>
 +
 +L'effet change le nom affiché, sans changer l'identifiant ni les quantités. Il est conservé dans les sauvegardes. Une ''valeur: ""'' rétablit l'identifiant ''cle_atelier'', même si la déclaration initiale donnait un autre nom affiché. Cet effet n'est pas autorisé dans les corps de boucle. Dans l'éditeur : effet **Renommer un objet**, avec l'objet et son nouveau nom affiché. En anglais : ''display_name'' et ''value''.
 +
 +===== Décors et meubles vides =====
 +
 +''meuble-vide: true'' décrit un meuble sans objet à prendre. Le joueur peut examiner le meuble, mais ne peut ni prendre ni examiner ce décor comme un objet. Son ''nom:'' est facultatif : le moteur crée alors une identité interne. Utilisez ''desc_meuble:'' et, si besoin, ''reaction_meuble:''. Les champs de prise, d'examen d'objet, de nom affiché et de limite d'inventaire ne donnent pas d'interaction d'objet à ce décor.
 +
 +<code yaml>
 +objets:
 +  - nom: cle_atelier
 +    nom_affiche: clé de l'atelier
 +    endroit: table
 +    desc_meuble: Une clé est posée sur la table.
 +    description: Une petite clé en fer.
 +  - nom: table_vide
 +    meuble-vide: true
 +    endroit: table
 +    desc_meuble: La table est vide.
 +  - nom: statue_decor
 +    meuble-vide: true
 +    endroit: statue
 +    desc_meuble: Une vieille statue de pierre.
 +    reaction_meuble: Examiner la statue
 +</code>
 +
 +Placer le décor de meuble vide **après** les objets ordinaires de ce meuble. Le premier objet encore présent fournit sa description ; une fois la clé prise, ''examiner table'' affiche «La table est vide.» La statue montre le même usage pour un décor permanent.
 +
 +''endroit: invisible'' garde les usages historiques d'un objet caché ; ce n'est pas un meuble vide. Si ''retirer: true'' est aussi présent, le retrait prime : un nom d'objet est nécessaire et le linter avertit que ''meuble-vide'' est ignoré. L'éditeur conserve les valeurs des champs masqués et permet de corriger une combinaison contradictoire. La clé ''secret'' est refusée sur les objets par le linter ; les succès secrets gardent leur propre réglage. En anglais : ''empty-furniture: true'', ''location'', ''furniture_description'' et ''furniture_reaction''.
 +
 +===== Objets réversibles et commandes (4.17) =====
 +
 +Prendre désactive un exemplaire déclaré dans son meuble. ''mettre'' et ''poser'' le replacent dans un emplacement déclaré pour le même objet. Ces formes sont équivalentes : ''mettre piece dans coffre'', ''poser piece sur coffre'' et ''mettre piece coffre''. Sans meuble, ''mettre piece'' cherche un emplacement disponible. Une action personnalisée du même nom garde la priorité. Un dépôt refusé ne retire rien de l'inventaire.
 +
 +Plusieurs objets différents peuvent partager un meuble. L'examen du meuble utilise la première déclaration dont l'objet est encore présent. Les prises suivent l'ordre des déclarations ; les dépôts remplissent les emplacements libres dans l'ordre inverse.
 +
 +<code yaml>
 +titre: 'Wiki 4.17 : piles'
 +vars:
 +  capacite: 2
 +salles:
 +- id: atelier
 +  texte: Un coffre et une table.
 +  objets:
 +  - nom: piece
 +    endroit: coffre
 +    description: Première pièce.
 +    limite-inventaire: v_capacite_v
 +  - nom: piece
 +    endroit: coffre
 +    description: Seconde pièce.
 +  - nom: cle
 +    endroit: coffre
 +    description: Une clé.
 +  - meuble-vide: true
 +    endroit: coffre
 +    desc_meuble: Le coffre est vide.
 +  choix:
 +  - commande: rester
 +    bouton: Rester
 +    vers: atelier
 +</code>
 +
 +Ici, deux prises de ''piece'' sont possibles. Après un dépôt dans le coffre, c'est la seconde déclaration qui redevient présente en premier. ''examiner_objet_dans coffre'' examine l'objet actuellement en tête de ce meuble ; ''prendre_dans coffre'' le prend. Ces commandes ciblent l'emplacement, même si le même identifiant existe ailleurs. En anglais : ''inspect_from coffre'' et ''take_from coffre''.
 +
 +===== Déclaration absente, transfert et activation =====
 +
 +''absent: true'' réserve un emplacement vide au départ. Il peut être rempli après une prise, un transfert ou une activation.
 +
 +<code yaml>
 +titre: 'Wiki 4.17 : activation'
 +salles:
 +- id: atelier
 +  texte: Une table, un coffre et une boîte.
 +  objets:
 +  - nom: cle
 +    endroit: table
 +  - nom: cle
 +    endroit: coffre
 +    absent: true
 +  - nom: bille
 +    endroit: boite
 +    absent: true
 +  actions:
 +  - verbe: ranger
 +    cible: all
 +    bouton: Ranger la clé
 +    faire:
 +      objet: cle
 +      vers: coffre
 +  - verbe: apparition
 +    cible: all
 +    bouton: Faire apparaître la bille
 +    faire:
 +      objet: bille
 +      activer: boite
 +  choix:
 +  - commande: rester
 +    bouton: Rester
 +    vers: atelier
 +</code>
 +
 +Après ''prendre cle'', l'effet ''{objet: cle, vers: coffre}'' transfère une unité portée dans le coffre. ''{objet: bille, activer: boite}'' active une déclaration absente sans consommer l'inventaire. Un champ ''salle:'' peut préciser une autre salle. Pour tester sa présence : ''si: {objet: bille, dans: boite, quantite: 1, operateur: ">="}''.
 +
 +===== Règle de limite d'inventaire =====
 +
 +Pour un objet, la première déclaration active qui précise une limite est retenue dans la salle courante. Si aucune ne la précise, la dernière limite rencontrée est conservée ; sinon le défaut est 1. Une référence comme ''v_capacite_v'' est relue à l'ajout. ''0'' signifie illimité. Abaisser la limite ne retire pas les unités déjà portées.
  
fr/yaml/objets.1788203441.txt.gz · Dernière modification : de cyrilfiesta