Instead of talking to Dave when location is woodshed:
Say "Not now Dave".
I receive the following error:
Problem. You wrote 'Instead of talking to Dave when location is woodshed' , which seems to introduce a rule taking effect only 'when location is woodshed'. But this condition did not make sense, so I am unable to accept this rule.
I have tried the following (it is working):
Instead of talking to Dave:
if Dave is in the woodshed:
say "Hello David".
But will it have the same outcome as the command Instead of talking to Dave when location is woodshed ?
I would rather want to use the ...when location is...
It seems like the part that say Instead of talking to Dave:... is were the problems is as I have removed the first example and the second example and only type in the command:
Instead of talking to Day:
say "Hello Dave".
Then I get the same error as above.
I checked my extensions and it seems like the extension Speechless by Zed Lopez is causing the problem.
It would be nice to know why it is causing the error and how to avoid it when still using this extension.
Well, it is the express intent of Speechless to both stop the player from talking and stop the game from giving messages that presuppose the player can talk.
But neither Standard Inform nor Speechless have an action name beginning talking to, so how did you define that action? (It might conflict with âtalkingâ the named action pattern in Speechless.)
Not sure what you mean by But neither Standard Inform nor Speechless have an action name beginning talking to, as I used the following command:
Instead of talking to Dave:
say "Hello Dave".
without the extension Speechless by Zed Lopez and it worked 100%.
I am not saying there is anything wrong with your extension as there arenât but I wanted to know how I can use it with the standard set of talking rules.
I havenât used this extension, but from a quick look the whole point of it is to disable all the standard actions involving speech so from a design perspective this seems like an odd goal - is the idea that youâre changing the extensionâs error messages to tell the player that interaction with other characters is done via a custom TALK command?
Anyway the technical issue is probably, as Zed indicated, that you defined a âtalkingâ action thatâs conflicting with the âtalkingâ kind of action defined by the extension. So youâll likely need to rename one or the other of them - I suspect itâs easier to change the extension one, since it seems like you shouldnât need to directly refer to its use of âtalkingâ in game code.
EDIT: as to your original question, âwhen the location is the wood shedâ fires when the player is in the wood shed, while âwhen Dave is in the wood shedâ does so when Dave is (âthe locationâ, by itself, always means the playerâs location). So they are different, though if the talking action can only take place when the player and Dave are in the same room it might not matter.
Somewhere in your code there must be a talking to action defined, or that wouldnât compile. Something like this:
Talking to is an action applying to one thing. Understand "talk to [thing]" as talking to.
If there isnât, the Inform compiler will say:
Problem. You wrote âInstead of talking to Daveâ which seems to introduce a rule taking effect only âtalking to Daveâ. But this does not look like an action, since there is no sign of a participle ending â-ingâ (as in âtaking the brickâ, say) - which makes me think I have badly misunderstood what you intended.
See the manual: 7.1 > 7.1. Actions
Is the talking to action defined in another of your included extensions?