====== Personnages (PNJ) ======
Un **personnage non-joueur** (PNJ) est un élément vivant déclaré comme **personne**, **homme**, **femme**, **animal** ou **vivant**. Les PNJ peuvent recevoir des commandes ''parler à X'', ''demander Y à X'', et répondre via des **réactions structurées**.
===== Déclarer un PNJ =====
==== Types disponibles ====
Le marchand est une personne dans l'échoppe.
La sorcière est une femme ici.
Le forgeron est un homme ici.
Le chien est un animal ici.
Le golem est un vivant ici.
* ''personne'' / ''homme'' / ''femme'' — humanoïdes.
* ''animal'' — créatures.
* ''vivant'' — type racine (utile si vous ne voulez pas préciser).
Ajoutez ''parlant'' pour rendre un objet capable de parler s'il n'est pas vivant par nature :
Le miroir magique est un objet parlant ici.
===== Faire parler le joueur au PNJ =====
Les commandes par défaut sont :
* ''parler à X'' — déclenche la réaction //basique// du PNJ.
* ''demander Y à X'' (ou ''parler de Y à X'') — déclenche la réaction //concernant Y//.
===== Réactions structurées =====
La forme complète permet plusieurs sujets, plus un fallback pour les sujets non prévus :
réactions du berger:
basique:
dire "« J'ai égaré ma brebis. Aidez-moi ! »".
concernant la brebis:
dire "« Elle s'est perdue ce matin. »".
concernant un sujet inconnu:
dire "« Concentrons-nous sur ma brebis. »".
fin réactions
* ''basique'' — déclenchée par ''parler à X''.
* ''concernant Y'' — déclenchée par ''demander Y à X''.
* ''concernant un sujet inconnu'' — //fallback// si le joueur demande un sujet sans réaction définie.
Le pâturage est un lieu.
Le berger est une personne ici.
La brebis est un animal ici.
réactions du berger:
basique:
dire "« J'ai égaré ma brebis. Aidez-moi à la retrouver ! »".
concernant la brebis:
dire "« Elle s'est perdue ce matin. »".
concernant un sujet inconnu:
dire "« Concentrons-nous sur ma brebis. »".
fin réactions
règle avant commencer le jeu:
dire "Essayez : {/parler au berger/}, {/demander la brebis au berger/}, {/demander la lune au berger/}.".
fin règle
[[djnc>wiki_pnj_berger_brebis|tester cet exemple]]
===== Réaction basique unique (forme courte) =====
Si vous voulez une seule réponse — pas de sujets multiples — utilisez la forme courte ''réaction du …'' (au singulier, sans étiquette) :
La cour est un lieu.
Le chien est un vivant parlant ici.
mordu est un état.
réaction du chien:
dire "Le chien vous a mordu ! Vous lui avez fait peur.".
changer le joueur est mordu.
fin réaction
règle avant commencer le jeu:
dire "Essayez : {/parler au chien/}.".
fin règle
[[djnc>wiki_pnj_chien_morsure|tester cet exemple]]
Cette forme est équivalente à ''réactions du chien:'' + ''basique:'' + ''fin réactions'' — utile quand on n'a qu'une seule réplique.
===== Alternative : règle après parler à X =====
Pour des cas simples, une [[reference:routines:regle:apres|règle après]] peut suffire, surtout si l'effet dépend d'autre chose qu'une réaction structurée :
règle après parler au gardien:
si le joueur possède le badge:
dire "« Vous pouvez passer. »".
sinon
dire "« Halte ! Présentez votre badge. »".
fin si
fin règle
À utiliser plutôt pour les **conditions complexes** ; les **réactions structurées** restent plus claires pour les dialogues à plusieurs sujets.
===== Exemple plus consistant : marchand loquace =====
Un marchand avec plusieurs sujets de conversation et un cartouche affichant la bourse du joueur.
L'échoppe est un lieu.
Le marchand est une personne dans l'échoppe.
La bourse est un compteur initialisé à 10 avec l'unité pièce.
La bourse est affichée en haut à droite.
La potion rouge est un objet sur le comptoir.
Le grimoire est un objet sur le comptoir.
Le comptoir est un support dans l'échoppe.
réactions du marchand:
basique:
dire "« Bienvenue ! Vous pouvez me parler de mes potions, de mon grimoire, ou simplement m'acheter quelque chose. »".
concernant la potion rouge:
dire "« Une potion de soin. Trois pièces seulement ! »".
concernant le grimoire:
dire "« Ce vieux livre ? Pas à vendre, hélas. »".
concernant la bourse:
dire "« Votre bourse contient [c bourse] pièce[s bourse]. »".
concernant un sujet inconnu:
dire "« Je ne vois pas de quoi vous parlez. »".
fin réactions
action acheter ceci:
si ceci est la potion rouge:
si la bourse atteint 3:
changer la bourse diminue de 3.
changer le joueur possède ceci.
dire "Vous achetez [intitulé ceci]. Il vous reste [c bourse] pièce[s bourse].".
sinon
dire "Vous n'avez pas assez. Il vous faut 3 pièces.".
fin si
sinon
refuser "[Intitulé ceci] n'est pas à vendre.".
fin si
fin action
règle avant commencer le jeu:
dire "Essayez :{n}— {/parler au marchand/}{n}— {/demander la potion rouge au marchand/}{n}— {/demander le grimoire au marchand/}{n}— {/demander la lune au marchand/} (sujet inconnu){n}— {/acheter la potion rouge/}".
fin règle
[[djnc>wiki_pnj_marchand_loquace|tester cet exemple]]
===== Voir aussi =====
* [[reference:divers:configurations:cartouche|Cartouche]] — afficher la bourse / la vie du joueur à côté des dialogues.
* [[reference:divers:position_joueur|Position du joueur]] — où démarre le joueur dans le décor.
* [[reference:routines:regle:apres|Règle après]] — alternative pour des réponses contextuelles complexes.
* [[reference:divers:synonymes|Synonymes]] — alias pour rendre les sujets de conversation plus naturels.
* [[reference:definitions:objets|Objets]] — un PNJ peut être un objet ''parlant''.