An error when making a custom way to talk to an NPC

I’ve found in playtest that multiple players try to ASK ABOUT [noun] instead of ASK [noun] ABOUT [noun]. I like it myself when you can do this in IF so I want to make it happen. However:

Understand "ask about [noun]" as asking someone about something when the player is in presence of a person.

and I get the error message:

An internal error has occurred: unowned. The current sentence is ‘Understand “ask about [noun]” as asking someone about something when in presence of a person’ ; the error was detected at line 886 of “inform7/if-module/Chapter 5/Understand Sentences.w”. This should never happen, and I am now halting in abject failure.

What has happened here is that one of the checks Inform carries out internally, to see if it is working properly, has failed. There must be a bug in this copy of Inform. It may be worth checking whether you have the current, up-to-date version. If so, please report this problem via Bugs | Inform 7.

As in past similar cases, the version thing shouldn’t be the problem. My version is up to date, 10.1.2. Am I doing it wrong?

I can’t diagnose that particular error, but I will point you to Eric Eve’s Conversation Framework, which handles the missing person in an ASK command. It uses the concept of a current interlocutor to record the last person spoken to, and directs any anonymous speech there.


I will look into that! Thanks!

The token “[noun]” isn’t right - you probably mean “[text]” or “[something]” depending on what’s going on elsewhere.

I suspect that’s what’s confusing Inform.

1 Like

Tried both of those. Same error.

Ok, this one yields a different error. Still an error but I like it much better than the last one:

Understand “ask about [text]” as asking someone about text when in presence of a person.

You wrote ‘Understand “ask about [text]” as asking someone about text when in presence of a person’ : but ‘understand … as …’ should be followed by a meaning, which might be an action (e.g., ‘understand “take [something]” as taking’), a thing (‘understand “stove” as the oven’) or more generally a value (‘understand “huitante” as 80’), or a named token for use in further grammar (‘understand “near [something]” as “[location phrase]”’). Also, the meaning needs to be precise, so ‘understand “x” as a number’ is not allowed - it does not say which number.

1 Like

Downloaded the extension and it solved it! Thanks for the tip!

Oh no! It caused a new problem!
So i have this custom action:

Asking for is an action applying to two things. Understand “ask [someone] for [something]” as asking for.

It worked before but now asking for yields no report. I tried to replace [someone] with [current interlocutor]. Also tried to remove that bit of code all together in case there was a redundancy because of the extension but still no.

Edit: I’m now looking through the source that comes with the extension and it includes this bit:

Understand "ask [someone] for [any known thing]" as requesting it for.
Understand "ask [someone] for [text]" as imploring it for.

So it seems to me like it should work out of the package but it doesn’t.

Oh!!! Of course! The name for the action in the extension source is requesting! So I just replaced my “asking for” with requesting and now it works!

1 Like