Phrases parasites...

Bonsoir à tous !

Voilà, je rencontre un petit bug dans le codage de mon jeu : j’ai mis en place une routine restart(), qui redémarre le jeu, et qui est présente assez souvent dans le code… Le problème est que pour certains objets, j’ai mis un before [; action : routine();] , et les routines invoquées font toujours au bout d’un moment redémarrer le jeu (c’est volontaire, hein) ; mon problème vient de certaines phrases parasites qui s’affichent quand routine() a terminé… Je ne sais pas si je suis très clair, alors je donne un exemple :

attaquer machin
Vous l’attaquez mais vous vous prenez une bonne baffe dans la gueule et tombez dans le ravin.

  • Vous êtes mort : le jeu recommence *

{{texte du début}}Vous êtes dans la nursery, et vous venez de naître…{{fin du texte de début}}
La violence n’est pas une solution.

Le problème c’est que dans l’objet machin, j’ai mis before [; Attack : routine();], la routine contient le restart() donc le jeu recommence, et comme je n’ai pas renvoyé de return true ou false (j’imagine que c’est ça, le problème), il marque la phrase par défaut de la bibliothèque… Et impossible de mettre return true ou false dans ma routine, parce que sinon elle s’interrompt !

Comment faire !!! Merci d’avance.

je crois que j’ai eu des problèmes un peu similaire avec ces satanées routines, mais je ne me souviens plus si j’avais réussi à résoudre cela ni comment faire.

Je te renvoie à tout hasard ici :

ifiction.free.fr/forumBB/viewtop … ght=before

apparemment je constate que selon le message de JL, si tu utilises after au lieu de before cela peut court circuiter le message par défaut

Hé bien, le hasard fait bien les choses… :wink: Voilà mon problème résolu !
En fait, il fallait faire quelque chose du genre before [;Attack : routine(); rtrue;] - bref, il suffisait de rajouter un rtrue…

Merci Otto ! :smiley:

Moi ce que je fais c’est un return 2;

Sauf dans la gestion d’une variable du type n_to…

JB

Encore une question (décidément, c’est la journée des bugs… ^^) : est-ce que c’est possible de faire se refermer un tiroir tout seul ? Parce que sinon, j’ai mon tiroir qui reste ouvert quand le jeu recommence, et c’est un petit problème… Plus généralement, le jeu peut-il déclencher des actions spontanément ?

Hum hum…
Pas la peine de vous déplacer, j’ai trouvé…
Il suffit de mettre la commande entre << >>.
Page 84 du Beginner’s Guide…
Donc, un post pour rien… :blush: ^^

D’une façon générale je n’utilise que très rarement l’appel de commande << >>, en effet, utilisé dans une fonction, cela fait parfois planter le jeu…

Par contre, tu peux tout simplement dire :

give tiroir ~open;print « ^Vous fermez le tiroir.^ »;return 2;

JB

Des bugs avec << >> ??
Je ne m’en sers pas souvent, mais je n’ai pas l’impression que ça pose problème! Tu aurais un exemple de code qui foire? Ou tu veux dire que ça peut planter un peu n’importe quand?

tu peux mettre les fonctions que tu veux démarrer dans la routine initialise du début du jeu, cf. members.aol.com/doepage/doefaq.htm#initial