Doc Donjon FI (v3)

Éditeur de fictions interactives avec interpréteur

Outils pour utilisateurs

Outils du site


reference:routines:regle:start

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

reference:routines:regle:start [2022/10/11 22:39] – créée jonathanreference:routines:regle:start [2026/06/16 21:50] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-====== Règle (avantaprès) ======+====== Règles (avant après / remplacer) ======
  
-Une règle est une routine qui s’exécute avant ou après l’exécution d’une action. Elle permet d’en modifier le comportement habituel.+Une **règle** est une [[reference:routines:start|routine]] déclenchée par une action — soit **avant** que l’action s’exécute (pour la conditionner ou la bloquer), soit **après** (pour ajouter une réaction), soit **à la place de** l’action pour la réécrire entièrementContrairement à une [[reference:routines:action:start|action personnalisée]], une règle ne crée pas de nouveau verbe : elle vient se greffer sur un verbe existant pour en modifier le comportement.
  
-<nspages -tree -r -exclude -subns -pagesInNs -h1 -textNs="">+===== Les trois types =====
  
-===== Exemple simple =====+  * [[reference:routines:regle:avant|Règle avant]] — exécutée **avant** l’action. Peut empêcher l’action via ''refuser "msg"'' ou ''refuser l’action''
 +  * [[reference:routines:regle:apres|Règle après]] — exécutée **après** l’action. Remplace par défaut la sortie standard ; on peut la réintroduire avec ''continuer l’action avant'' ou ''continuer l’action après''
 +  * [[reference:routines:regle:remplacer|Règle remplacer]] — **écrase intégralement** une action existante (phases, balises, etc.). 
 + 
 +===== Syntaxe générale =====
  
 <code donjon> <code donjon>
-règle après mettre l’anneau+règle avant <action>: 
-  dire "Vous sentez une force vous envahir au moment où vous touchez l’anneau.";+  -- instructions 
 +fin règle 
 + 
 +règle après <action>
 +  -- instructions 
 +fin règle 
 + 
 +règle remplacer <action>: 
 +  -- phases qui remplacent intégralement l’action d’origine
 fin règle fin règle
 </code> </code>
  
-Cette règle va remplacer le texte par défaut qui se serait normalement affiché lorsque le joueur enfile un objet.+<WRAP info>Les trois variantes se ferment par ''fin règle''.</WRAP> 
 + 
 +===== Déclencheurs ===== 
 + 
 +==== Une action ciblée sur un objet précis ==== 
 + 
 +<code donjon> 
 +règle avant prendre la pomme: 
 +  si la pomme est pourrie: 
 +    refuser "Cette pomme est pourrie."
 +  fin si 
 +fin règle 
 +</code> 
 + 
 +==== Plusieurs actions combinées (« ou ») ==== 
 + 
 +La même règle réagit à plusieurs actions : 
 + 
 +<code donjon> 
 +règle après donner l’anneau au roi, donner l’anneau au prince ou donner l’anneau à la reine: 
 +  dire "<< Grâce à vous le royaume est sauvé ! >>"
 +fin règle 
 +</code> 
 + 
 +==== Une classe d’objets (générique) ==== 
 + 
 +Pour appliquer la règle à **tous** les objets d’un type, utilisez l’article indéfini : 
 + 
 +<code donjon> 
 +règle après parler à un chien: 
 +  dire "<< Wouf ! >>"
 +fin règle 
 +</code> 
 + 
 +Cette règle se déclenche pour //n’importe quel chien// présent dans la partie. 
 + 
 +==== Un déplacement (lieu ou direction) ==== 
 + 
 +Une règle sur ''aller'' peut cibler le **lieu de destination** ou la **direction** empruntée : 
 + 
 +<code donjon> 
 +règle après aller dans le jardin: 
 +  dire "Vous voilà dans le jardin."
 +fin règle 
 + 
 +règle après aller vers le nord: 
 +  dire "Vous progressez vers le nord."
 +fin règle 
 +</code> 
 + 
 +Les deux formes se déclenchent quelle que soit la commande tapée par le joueur (''aller au nord'', ''nord'', ''n''…). Si une règle « lieu » et une règle « direction » correspondent au même déplacement, les deux se déclenchent. Voir aussi les cibles ''origine'', ''destination'' et ''orientation'' des [[reference:texte:balises_dynamiques#cibles_speciales|balises dynamiques]]. 
 + 
 +==== Au démarrage du jeu ==== 
 + 
 +<code donjon> 
 +règle avant commencer le jeu: 
 +  changer le joueur possède la lampe. 
 +  changer la porte n’est plus verrouillée. 
 +  dire "Une voix vous murmure : << Bienvenue dans le labyrinthe… >>"
 +fin règle 
 +</code> 
 + 
 +===== Tester si la règle s’est déjà déclenchée ===== 
 + 
 +<code donjon> 
 +si la règle se déclenche pour la première fois: 
 +  ... 
 +sinonsi la règle se déclenche pour la deuxième fois: 
 +  ... 
 +sinon 
 +  ... 
 +fin si 
 + 
 +-- Forme négative 
 +si la règle ne se déclenche pas pour la première fois: 
 +  dire "Encore ?". 
 +fin si 
 +</code> 
 + 
 +Pratique pour afficher une cinématique uniquement à la première rencontre, puis se contenter du texte standard ensuite. Voir un exemple complet sur [[reference:routines:regle:apres|Règle après]]. 
 + 
 +<WRAP info>**À ne pas confondre avec la [[reference:routines:action:start|phase prérequis]] d’une action personnalisée.** Si vous écrivez **votre** action, mettez les conditions de blocage dans ''phase prérequis''. Si vous voulez intercepter une action **existante** (''prendre'', ''aller'', ''examiner'', …) sans la réécrire, utilisez une règle avant.</WRAP> 
 + 
 +===== Voir aussi ===== 
 + 
 +  * [[reference:routines:regle:avant|Règle avant — détails]] 
 +  * [[reference:routines:regle:apres|Règle après — détails]] 
 +  * [[reference:routines:regle:remplacer|Règle remplacer — détails]] 
 +  * [[reference:routines:action:start|Actions personnalisées]] — créer un nouveau verbe (à distinguer) 
 +  * [[reference:routines:start|Routines]] — vue d’ensemble (action / règle / réaction / routine simple) 
 + 
 +{{tag>règle regle règles regles avant après apres remplacer déclencheur declencheur refuser continuer commencer_le_jeu intercepter routine routines}}
  
reference/routines/regle/start.1665520758.txt.gz · Dernière modification : (modification externe)