**Language / Langue :** **FR** | [[en:yaml:actions|EN]] ====== Actions personnalisées (YAML) ====== Les actions personnalisées ajoutent des commandes au nom libre. Le joueur utilise la commande ''nomaction cible'' sur Discord, ou tape le verbe directement sur web/desktop. ===== Déclaration ===== Actions **locales** : dans le bloc ''actions:'' d'une salle, disponibles uniquement dans cette salle. Actions **globales** : dans le bloc ''actions_globales:'' au niveau racine, disponibles partout. actions: - verbe: examiner cible: coffre si: ~ texte_ok: "Un vieux coffre en bois. Il semble verrouillé." texte_ko: "Il n'y a rien d'intéressant ici." - verbe: ouvrir cible: coffre si: "cle" faire: - "or.+.50" - "-cle&&inventaire&&null" # retire la clé texte_ok: "Vous ouvrez le coffre ! +50 pièces d'or." texte_ko: "Le coffre est verrouillé. Il vous faut une clé." ===== Cible all ===== Avec ''cible: all'', n'importe quelle saisie est acceptée : actions_globales: - verbe: aller cible: all si: ~ faire: "t_action_cible_ok_t" # redirige vers la salle tapée texte_ko: "Destination inconnue : t_action_cible_t." ^ Variable ^ Valeur ^ | ''t_action_cible_t'' | Cible saisie, ou identifiant résolu si un nom affiché d'objet est reconnu. | | ''t_action_cible_ok_t'' | Dernière cible valide tapée | ===== Conditions multiples sur la même cible ===== Plusieurs lignes avec le même ''verbe+cible'' sont testées dans l'ordre : actions: - verbe: combiner cible: herbe si: "herbe t_combinaison_t.=.rien" faire: - "-herbe&&inventaire&&null" - var_texte: combinaison valeur: "herbe" texte_ok: "L'herbe entre dans l'alambic." texte_ko: "Vous n'avez pas d'herbe." - verbe: combiner cible: all si: ~ texte_ok: "t_action_cible_t n'est pas un ingrédient connu." Les actions locales sont testées avant les globales. La première condition vraie gagne. ===== Alias d'action ===== ''alias:'' crée un raccourci : le joueur peut taper le mot seul sans le verbe : actions: - verbe: inspecter cible: alambic alias: alambic # taper "alambic" = "inspecter alambic" si: ~ texte_ok: "L'alambic central. Utilisez 'combiner [ingrédient]'." ===== Bouton sur une action ===== ''bouton:'' ajoute un bouton sur Web/Desktop ou une réaction sur Discord : actions: - verbe: utiliser cible: potion bouton: "Utiliser la potion" visible-si: "potion" # masqué si l'inventaire n'a pas de potion grise-si: "v_pv_v >= v_pvmax_v" # grisé si PV déjà au max si: "potion" faire: - "-potion&&inventaire&&null" - "pv.+.5" texte_ok: "Vous buvez la potion. +5 PV !" texte_ko: "Vous n'avez pas de potion." ===== Données, boucles et raccourcis (4.17) ===== ''faire:'' accepte les écritures espacées comme ''vie + 10'', les opérations de listes, les groupes conditionnels et les boucles. Voir [[fr:yaml:listes-boucles|Listes, collections et boucles]]. Les actions, choix et événements peuvent recevoir un [[fr:yaml:raccourcis|raccourci clavier, souris ou manette]], avec ou sans bouton. Les conditions et limites de l'interaction restent appliquées. ===== Noms affichés des objets ===== Les cibles d'actions et ''t_action_cible_t'' gardent l'identifiant de l'objet, même si le joueur le désigne par son nom affiché. Les cibles explicites gardent leur priorité. Pour changer le nom visible pendant la partie : faire: - nom_affiche: cle_atelier valeur: clé identifiée Une valeur vide rétablit l'identifiant d'origine. Voir [[fr:yaml:objets|Objets : noms affichés, renommage et décors secrets]] pour les règles et les exemples.