Bonjour,
Dans mon jeu il y a ça :
Combat01 is a scene.
Combat01 begins when CombatID is 1.
Combat01 ends when CombatID is -1.
Combat01 démarre correctement quand CombatID passe à 1, mais continue imperturbablement quand CombatID est devenu -1.
Comprends pas. Pouvez-vous aider ?
J’ai essayé ausi avec deux variables différentes, comme ça :
Combat01 is a scene.
Combat01 begins when CombatID is 1.
Combat01 ends when the status of the Dretch is -1.
Ça ne marche pas non plus. Ouin !
Merci.
Normalement, avec ce que tu donnes, ça devrait fonctionner.
Un truc à savoir est que les conditions des scènes ne sont vérifiées qu’au début et à la fin des tours. Donc si CombatID est -1 au milieu d’un tour, mais qu’elle change de valeur avant la fin du tour, alors la scène ne va pas se terminer.
Sinon, comme ça, je ne vois pas ce qui pourrait causer le problème.
J’ai peut-être trouvé… un autre problème. Ça, ça marche : la scène Glouglou démarre et se terrmine normalement.
"Scenes" by Thierry (in French)
Part 1 - Variables
CombatID is a number variable.
CombatID is 0.
Glouglou is a scene.
Glouglou begins when CombatID is 1.
Glouglou ends when CombatID is -1.
Part 2 - Test
Salon is a room.
Cuisine is a room. It is north of salon.
Vestibule is a room. It is west of salon.
After going from salon to cuisine:
now CombatID is 1;
showme CombatID;
After going from salon to vestibule:
now CombatID is -1;
showme CombatID;
Test me with "scenes/n/s/w".
Mais ÇA, ça ne marche pas !
"Scenes" by Thierry (in French)
Part 1 - Variables
CombatID is a number variable.
CombatID is 0.
Glouglou is a scene.
Glouglou begins when CombatID is 1.
Glouglou ends when CombatID is -1.
Part 2 - Action à problèmes
Understand the command "suite" as something new.
Loafing is an action applying to nothing.
Understand "suite" as loafing.
Carry out loafing:
if CombatID is 1:
now CombatID is -1;
showme CombatID;
For printing a parser error when the latest parser error is the I beg your pardon error:
change the text of the player's command to "suite";
try loafing;
follow the every turn rules;
follow the advance time rule;
Part 3 - Test
Salon is a room.
Cuisine is a room. It is north of salon.
Vestibule is a room. It is west of salon.
After going from salon to cuisine:
now CombatID is 1;
showme CombatID;
Test me with "scenes/n/s".
Je tape « Test me » et tout se passe normalement. Puis, ricanant de rage et de haine, j’enchaîne par une frappe sur la touche « Entrée ». Le showme confirme que CombatID est passé à -1, et la scène Glouglou ne se termine pas.
Je me permets d’insister, tenant essentiellement à la touche « Entrée » pour simplifier les passages de combat. Et puis, je déteste le « g ».
Merci d’avance, Natrium.
P.S : Si j’emploie Test me with « scenes/n/s/suite » il n’y a aucun problème.
Ben oui, c’est ce que je disais ! Quand la commande est vide et que l’activité printing a parser error se lance, aucun tour ne se passe, alors la règle qui vérifie les conditions pour les scènes ne se lance pas et la scène ne se termine pas !
Le plus simple, c’est d’ajouter follow the scene changing rules.
For printing a parser error when the latest parser error is the I beg your pardon error:
change the text of the player's command to "suite";
try loafing;
follow the every turn rules;
follow the advance time rule;
follow the scene changing rules;
Ou alors, dans ce cas, autant tout remplacer par la règle qui s’occupe de toute la machinerie des tours :
For printing a parser error when the latest parser error is the I beg your pardon error:
change the text of the player's command to "suite";
try loafing;
follow the turn sequence rules.
MAIS c’est quelque chose que je ne recommande pas du tout. Cette activité ne devrait être utilisée que pour afficher un message ou autres trucs cosmétiques, pas pour faire des choses dans le monde du jeu. La preuve, c’est que le mécanisme des scènes ne fonctionnait plus dans ce cas précis. Alors oui, on peut réparer, comme ci-dessus, mais il peut encore y avoir d’autres effets secondaires qui ne ce sont pas encore manifestés. Je l’avais déjà dit dans ce sujet (dans lequel tu avais d’ailleurs participé).
Je recommande plutôt d’utiliser l’extension mentionnée dans mon dernier message du sujet en lien ci-dessus. Je n’ai pas testé sur 6L38, mais je pense que ça devrait fonctionner. (Mais ça peut ne pas, si 6M62 a changé beaucoup de code sous-jacent.)