Doc Donjon FI (v3)

Éditeur de fictions interactives avec interpréteur

Outils pour utilisateurs

Outils du site


reference:temps:programmer_routine

Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
reference:temps:programmer_routine [2022/10/23 01:04] – créée jonathanreference:temps:programmer_routine [2026/06/07 22:11] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-====== Programmer une routine (après un certain temps) ======+====== Programmer une routine (après un délai) ======
  
-Il est possible de programmer l’exécution d’une routine après un certain temps.+Une [[reference:routines:simple|routine simple]] peut être déclenchée automatiquement après un délai en **temps réel** (pas en tours de jeu).
  
 +Cela permet de poser une bombe à retardement, déclencher l’apparition d’un PNJ après quelques secondes, faire « bip » toutes les minutes, etc.
 +
 +===== Syntaxe =====
 +
 +<code donjon>
 +exécuter la routine X dans N <unité>s.
 +</code>
 +
 +Les unités acceptées sont ''seconde'', ''minute'' et ''heure'' (au singulier ou au pluriel). Le moteur convertit la durée en millisecondes et active un chronomètre interne.
 +
 +===== Exemple minimal : bombe qui explose après 10 secondes =====
 +
 +<file donjon wiki_temps_boom_simple>
 +Le lieu de test est un lieu.
 +
 +routine boom:
 +  dire "La bombe a explosé !".
 +  terminer le jeu.
 +fin routine
 +
 +règle après commencer le jeu:
 +  dire "Attendez 10 secondes…".
 +  exécuter la routine boom dans 10 secondes.
 +fin règle
 +</file>
 +
 +[[djnc>wiki_temps_boom_simple|tester cet exemple]]
 +
 +===== Annuler l’exécution programmée =====
 +
 +<file donjon wiki_temps_annuler_routine>
 +Le lieu de test est un lieu.
 +La bombe est un objet vu ici.
 +
 +routine boom:
 +  dire "La bombe a explosé !".
 +  terminer le jeu.
 +fin routine
 +
 +action désamorcer ceci:
 +  si ceci est la bombe:
 +    annuler la routine boom.
 +    dire "Bravo ! La bombe a été désamorcée.".
 +    terminer le jeu.
 +  fin si
 +fin action
 +
 +règle après commencer le jeu:
 +  exécuter la routine boom dans 30 secondes.
 +fin règle
 +
 +règle avant commencer le jeu:
 +  dire "Essayez : {/désamorcer la bombe/} en moins de 30 secondes.".
 +fin règle
 +</file>
 +
 +[[djnc>wiki_temps_annuler_routine|tester cet exemple]]
 +
 +L’annulation retire la programmation de la file d’attente du moteur. Si la routine a déjà été exécutée, l’annulation est sans effet.
 +
 +===== Pause =====
 +
 +Le joueur peut entrer la commande ''pause'' pour suspendre temporairement la partie. Tant que la partie est en pause, **les routines programmées ne se déclenchent pas** ; le décompte reprend là où il en était à la sortie de la pause.
 +
 +===== Sauvegarde et reprise =====
 +
 +À la **sauvegarde** d’une partie en cours, Donjon FI enregistre :
 +
 +  * les routines qui se sont **déjà déclenchées** (leur effet sera rejoué à la reprise) ;
 +  * **mais pas** les routines programmées **en attente** (le chrono en cours n’est pas reporté).
 +
 +Conséquence : si une routine a été programmée mais n’a pas encore eu le temps de se déclencher au moment de la sauvegarde, elle **sera perdue à la reprise**. Pour des scénarios qui exigent un comptage déterministe, préférez :
 +
 +  * la commande ''pause'' pour suspendre la partie sans la sauvegarder ;
 +  * le [[reference:debogage:magneto|magnétoscope]] (fichiers ''.rec'') pour rejouer une partie pas-à-pas en figeant le temps.
 +
 +===== Exemple plus consistant : bombe à retardement =====
 +
 +Un mini-jeu d’illustration : [[djnc>wiki_temps_bombe_a_retardement|bombe à retardement]] — 60 secondes pour désamorcer la bombe, ou taper ''pause'' pour suspendre le décompte.
 +
 +===== Voir aussi =====
 +
 +  * [[reference:routines:simple|Routine simple]] — la routine programmée doit être une routine simple.
 +  * [[reference:temps:horloge|Horloge]] — lire l’heure système (pour des effets jour/nuit).
 +  * [[reference:temps:calendrier|Calendrier]] — lire la date système.
 +  * [[reference:debogage:magneto|Magnétoscope]] — rejeu déterministe d’une partie.
 +  * [[reference:instructions:terminer|terminer le jeu]] — terminer la partie depuis une routine (échec/réussite).
  
reference/temps/programmer_routine.1666479887.txt.gz · Dernière modification : (modification externe)