Gestion des Evénements par rapport à l'heure

Bonsoir,

Je souhaite qu’un objet ne soit présent dans une pièce que par exemple entre 5h PM et 5h10 PM
Disons qu’il s’agit d’une pomme dans la cuisine.

Comment gérer cela ?

Merci

j’ai défini la gestion de l’heure comme suit :

[code]When play begins: now the time of day is 2:30 AM.

To say the player’s capitalised surroundings:
let the masthead be « [the player’s surroundings] » in upper case;
say the masthead.

When play begins:
now the left hand status line is « [the player’s capitalised surroundings] » ;
now the right hand status line is « [time of day]/[turn count] ».

Every turn :
increase the time of day by 5 minutes.

The Cuisine is a room.

A pomme is a thing. [ JE N’AI VOLONTAIREMENT PAS DÉCLARÉ OU SE TROUVAIT LA POMME]
The description of the pomme is « une pomme rouge ».

[/code]

Pour compléter ma demande,j’ai pu gérer les ouvertures de salles à certaines heures mais je sèche sur la gestion des objets

[code]salle1 is a room. The description of the salle1 is « salle1 ».
Salle2 is a room. The description of the Salle2 is « salle2 ».
Salle2 is west from salle1.

[SALLE OUVERTES A CERTAINES HEURES]
The salle1 has a time called the opening hour. The opening hour of the salle1 is usually 2:30 AM.
The salle1 has a time called the closing hour. The closing hour of the salle1 is usually 3:40 AM.

Check going to the salle1 :
if the time of day is after the closing hour of the salle1,
say « [The location] est fermée depuis [the closing hour of the salle1]. » instead.[/code]

Je n’y connais rien en inform 7, mais : si tu mets dans ton « every turn » un truc du genre « if the time of day is 5:00 PM: move the pomme to the salle1 » puis « if the time of day is 5:10 PM: remove the pomme » ? C’est pas forcément ce qu’il y a de plus efficace mais ça devrait le faire (par contre le code ne s’écrit peut-être pas comme ça, je n’y connais rien x) )

Il me semble que cette méthode ne marche que si on garde le comportement normal d’Inform, à savoir faire passer une minute par tour. Sinon, il y a un risque qu’entre deux tours, l’heure passe par exemple de 4h58 à 5h02, auquel cas, la condition « if the time of the day is 5:00 PM » ne sera jamais vérifiée… Il me semble qu’il y a un sujet du forum qui parlait du problème, mais je ne sais plus lequel…

C’est vrai, mais ça ne devrait pas problème si les heures des événements sont des multiples de la vitesse à laquelle passe le temps. Sinon, il y a deux moyen de régler ce problème.

On peut lancer à la main les règles qui gèrent l’avancement du temps plusieurs fois par tour (par exemple 5 fois si on veut faire passer 5 minutes par tour). C’est montré dans l’exemple Nine AM Appointment.

On peut sinon vérifier l’heure au tour précédent, l’heure actuelle, et vérifier si l’événement est entre les deux (auquel cas on le lance). D’ailleurs, Inform fait ça par défaut avec la formulation suivante :

At 5:30 PM: blablabla;
L’exemple Uptempo montre comment faire avec ça. Par contre, je pense que ces événements ne se lancent qu’une seule fois. Mettons, si j’attends 24 heures, il ne se relancera pas une seconde fois. Mais je peux me tromper.

Bonsoir

Ma salle 1 est définie comme inaccessible à partir de 3H00

Après 3H la salle 1 devient effectivement inaccessible tel que cela est défini dans le code
A 4:10 , « un cri », tel que cela est défini dans le code.

MAIS !! il y a toujours un mai,
A 4:00, la règle de fermeture de la salle 1 disparaît automatiquement. Rendant alors à nouveau la salle 1 accessible !!
Je ne comprends pas pourquoi

Merci pour votre aide
steph

[code]The fast time rule is listed before the timed events rule in the turn sequence rules.

The advance time rule is not listed in the turn sequence rules.

This is the fast time rule:
increment the turn count;
increase the time of day by 5 minutes.

salle1 is a room. The description of the salle1 is « salle1 ».
Salle2 is a room. The description of the Salle2 is « salle2 ».
Salle3 is a room. The description of the Salle3 is « salle3 ».
Salle2 is west from salle1.
Salle3 is west from salle2.

[SALLE OUVERTES A CERTAINES HEURES - La regle ne marche plus apres une 1 h
]
The salle1 has a time called the opening hour. The opening hour of the salle1 is usually 2:30 AM.
The salle1 has a time called the closing hour. The closing hour of the salle1 is usually 3:00 AM.

Check going to the salle1 when location is salle2 :
if the time of day is after the closing hour of the salle1,
say « La salle 1 est fermée depuis [the closing hour of the salle1]. » instead.

At 4:10 AM:
say « un cri ».[/code]

Je pense que c’est parce qu’Inform fixe le début de la journée à 4 heures. Ce qui signifie que 3 h 59 est considéré comme étant après 4 h.

La justification est que beaucoup de FI se dérouleraient après minuit, mais que peu se commenceraient avant 4 h.

Dans ce cas, il faudra faire une comparaison manuelle (comparer l’heure et les minutes en fonction d’un point de référence choisi).

Tu peux aussi remplacer entièrement le système temporel de base d’Inform par tes propres variables…

En revanche, s’il s’agit de remplacer le système par défaut par un système qui compte les minutes et les heures comme celui par défaut, alors ce n’est peut-être pas utile. Tout dépend de ce qu’on veut faire bien sûr, mais le système par défaut a quand même des avantages.

Par exemple, les heures reviennent à zéro après une journée, alors qu’il faudra le faire à la main avec un type personnalisé.

Et aussi, il ne sera pas possible d’utiliser

At 9:00 AM: blabla.