Suppress Message "Nothing obvious happens"

It begins to be annoying. One n00b question after the other. :slight_smile:

Here my most recent one. This is a code snippet I have:

Instead of pushing the Activation-Key: Say "The screen flickers up and displays this:[paragraph break]"; Now the command prompt is "Please enter the password to access this terminal: "; Continue the action.
The result is this:

So quite obviously the “Nothing obvious happens.” is a blatant lie. :wink: What am I doing wrong or how do I get rid of the lie?

You don’t want to continue the action, because that means that the default behaviour will take place after your special behaviour. Instead of “continue the action”, you want its opposite, “stop the action”.

1 Like

Though in this case you don’t need “stop the action,” because it’s an instead rule; every Instead rule by default stops the action unless you tell it to continue.

1 Like

And if you want the action to register as succesful (which is one of the reasons you’d use “continue the action”), you should use an after rule, not an instead rule.

Thank you for helping me with this. The solution was blindingly obvious! Thanks a bundle.

Generally I know the difference between “instead” and “after”. Just in this case I am uncertain whether there is any difference. I am sure there is, but I can’t discern it.

Could anyone shed light on this?

I would code something like this like so:

[code]“Test” by Jizaboz

Test Lab is a room. The description of Test Lab is “A plain, white room with a terminal in the middle of the room.”.

A terminal is a thing in Test Lab. The description of terminal is “An old machine with a keyboard and monitor. On the terminal keyboard there is an activation-key that stands out from the rest.”.

Activation-Key is a part of terminal.

Instead of pushing the Activation-Key:
Say “The screen flickers up and displays this:[paragraph break]”;
Now the command prompt is "Please enter the password to access this terminal: ";
Continue the action.

Report pushing the Activation-Key:
do nothing instead.[/code]

(Note the last bit of code referring to reporting the action)

Take a look at the Inform Cheat Sheet http://user.cs.tu-berlin.de/~moreiser/inform/Inform7_CheatSheet.pdf and scroll a couple of pages down.

Here is the order of action processing rules:

Before (default continue the action)
Instead (default stop the action)
Check (default continue the action)
Carry Out (should ALWAYS continue the action)
After (default stop the action, but counts as success)
Report (default continue the action)

As you see, the Check rules run before the After rules, so it’s useful to use After if you don’t want to interfere with rules that would normally stop the action. However, if I’m not mistaken, the pushing action is always stopped by a check rule, so if you ever want it to work, you must use an Instead rule. If I remember correctly, you can end the Instead rule with “rule succeeds” to make it count as success, although I’m not positive.

An additional thing to note is that Check, Carry Out and Report rules can only handle one action, which is why the action name is part of their rulebook name. Before, Instead, and After rules can work for descriptions of actions (“doing anything”) and kinds of action (“pushing is technical work. Instead of technical work…”)

1 Like

I know this is an old post, but this is a great presentation of the different rulebooks for actions so I wanted to reply to it. Thanks for this incredibly useful summary!

FYI, the pushing action doesn’t have a blocking check rule on it, but for those actions that do have blocking check rules, you don’t have to use an Instead rule. Another option is unlisting the blocking check rule, which gives you full access to all the stages of the action again. Using the waking action as an example – it does have a blocking check rule – you can type:

The block waking up rule is not listed in the check waking up rulebook.

Then you can use whatever action stage you want.