How do I prevent the parenthetical clarification from showing up? I have some code that allows for the command “unlock door” to figure out that you want to unlock the door with the correct key if you have it in most circumstances, as the game I am making isn’t about figuring out which key to use in most cases. I have custom reporting on this, so I don’t want it to include the (with the key) parenthetical clarification in the report. However, I cannot figure out from searching online or rooting through the standard rules where this is coming from in this scenario.
(with the key)
You unlock the door with the key.
How do I kill that parenthesis?
I’ve tried all sorts of variations of before, after, while, rule for, regarding supplying a missing second noun, clarifying the parsers choice of something, etc. all to no avail.
You can try including this code:
[ PrintInferredCommand; ];
-) before “Parser.i6t”.[/code]
Wow, thank you! I have no idea what that does (except for work, that is).
It effectively removes the routine PrintInferredCommand from the Standard Rules and/or I6 templates.
That’s probably all you need, but another thing you could do is define an action like keyless unlocking that accepts commands like “unlock door” and have that action try unlocking the door with the correct key, if the player has it.
In fact I believe the built-in extension Locksmith by Emily Short will do this for you. It still prints “(with the key)” but you can zap this with the usual methods for changing response rules, namely
The standard keylessly unlocking rule response (A) is "[run paragraph on]".
It’s reasonable to expect the “clarifying the parser’s choice” activity to handle this, but for some reason it’s currently rigged to only handle the case of one-noun clarifications.