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
fr:yaml:objets [2026/10/20 22:18] – Mod?les sur_place, port?e des encadr?s et objets 4.17 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. | | ''nom_affiche:'' | Nom lu et tapé par le joueur ; ne change pas l'identifiant. |
-| ''secret: true'' | Décor accessible uniquement par son meuble. |+| ''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 50: 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 78: 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 197: Ligne 198:
 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''. 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 secrets et meubles vides =====+===== Décors et meubles vides =====
  
-''secret: true'' réserve une entrée à la description de son meuble. Le joueur peut examiner le meuble, mais ne peut ni prendre ni examiner l'objet secret lui-même. Sa description d'objet, son nom affiché, son message de ramassage et ses boutons d'objet/prise sont ignorés ; utiliser ''desc_meuble'' et éventuellement ''reaction_meuble''.+''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> <code yaml>
Ligne 209: Ligne 210:
     description: Une petite clé en fer.     description: Une petite clé en fer.
   - nom: table_vide   - nom: table_vide
-    secret: true+    meuble-vide: true
     endroit: table     endroit: table
     desc_meuble: La table est vide.     desc_meuble: La table est vide.
   - nom: statue_decor   - nom: statue_decor
-    secret: true+    meuble-vide: true
     endroit: statue     endroit: statue
     desc_meuble: Une vieille statue de pierre.     desc_meuble: Une vieille statue de pierre.
Ligne 219: Ligne 220:
 </code> </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.+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.
  
-''secret'' est différent d'''endroit: invisible'', qui garde les usages historiques de l'objet. Ne pas combiner ''secret: true'' et ''retirer: true'' : le retrait prime et le linter signale que le secret est ignoré. L'éditeur masque les champs inutiles d'un secret en conservant leurs valeurs, et laisse les imports contradictoires corrigeables. En anglais : ''secret: true'', ''location'', ''furniture_description'' et ''furniture_reaction''.+''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.1792527531.txt.gz · Dernière modification : de cyrilfiesta