"try" within an out-of-world action

I think I know why this doesn’t work, but I don’t like it:

[code]Test is room.

report requesting the score:
try examining the player;

Instead of examining the player during the Entire Game:
say “Just look at yourself.”

test me with “x me/score”[/code]

I’m guessing that since Before, Instead and After rules aren’t checked for out-of-world actions, they also aren’t checked for any actions that the original one triggers. Bummer. Any thoughts?

Not sure if this will work, but could you use a “Understand ‘score’ as something new” statement to turn off the built-in requesting the score action, and then create a new, in-world, action which is triggered by the “score” command and which behaves the way you want it to?

Robert Rothman

It’s simply that out of world actions should never change the world state. Those rules would do that so they’re skipped. If you need to have an out of world action change the world state you should substitute it with a regular action and have it try both the original out of world action and the normal action. (edit: like Robert said.)

Looks like you’re right.

For this particular case you could put the player’s description in the description property of the player, and then “x me” would work correctly out-of-world. In general, I don’t think there’s a solution.

Commands for actions out of world set the I6 global “meta”.
You could toggle it from I7, but I don’t know if that’s risky somehow.

[code]Test is room.

Out of world is a truth state that varies. The out of world variable translates into I6 as “meta”.

report requesting the score:
now out of world is false;
try examining the player;
now out of world is true;

Instead of examining the player during the Entire Game:
say “Just look at yourself.”

test me with “x me/score”[/code]

I changed my Instead rule to a Check rule - I’ve started doing this for most Instead rules that only affect one action.