Ask/Tell commands

When using the ask/tell tab, is there any way to avoid forcing the player to type 'ask [name] about [whatever]', and instead just allow them to say 'ask about [whatever]' ?

I know it's necessary to define the person to whom you want to ask the question if there's more than one NPC there, but if it's a one-on-one, it seems silly to force them to use the NPC's name when asking each subsequent question.

umm... for the built-in Commands~Verbs... 'Talk', though you got to script~craft it, of course. 'Ask' is specifically set up as a 'yes~no' questioning scheme, which eliminates its usage as~for general questioning schemes, obviously. Yes, the use of 'ask' as its name is quite a bit misleading, as one doesn't usually associate 'ask' with it being a limited 'yes~no' questioning scheme.

though, if you don't want to specify (aka limit) 'talk' for just this aspect that you want, then just create~write your own~custom Command~Verb for this action~event~scripting that you want.

HegemonKhan wrote:Ask' is specifically set up as a 'yes~no' questioning scheme, which eliminates its usage as~for general questioning schemes, obviously. Yes, the use of 'ask' as its name is quite a bit misleading, as one doesn't usually associate 'ask' with it being a limited 'yes~no' questioning scheme.

No, as I explain in the other thread, you're thinking about something else. I should really have called this thread 'Ask/Tell Tab Options', instead of 'commands'.

The Ask/Tell tab allows the player to ask an NPC about anything you like. It's not simply a yes/no function. You set the subject (the words(s) to follow 'ask') and then run a simple print script with the NPC's reply.

So for instance, if you wanted to ask an NPC about a character (i.e John Upton), you would put 'john upton' as the 'label', and the 'script' as "John Upton? Yeah, I know John. He comes in here quite often."

So that when the player types:

>Ask woman about john upton

They get the response you've set in the script.

Create a new command for the room the woman is in, call it ask_woman or something, set the pattern to Regular expression, and give it this:
^ask about (?<text>.*)$

For the script, paste in this:
object = woman
DoAskTell (object, text, "ask", "askdefault", "DefaultAsk")

Obviously you will change that first line for other people. The second line invokes the same ask/tell system as usual, so you do not need to set up the topics a second time.

This assumes only one person in a room, and people never go to other rooms. If the person can leave the room or die, you should add a check that the person is present.

Also, you should add a general command (i.e., not for a room) to handle the player typing ASK ABOUT when no one is around (use the same pattern set up, and just print a message for the script should work).

Thanks, TP, I think I can follow this :)

Just so I'm clear, in your last paragraph, do you mean have a response something like, "There's no one around here to answer you." ?

my bad OurJud, I assumed that the 'ask-tell' Tab's 'ask' was the same as the 'ask' Function, which is a limited 'yes~no" questioning scheme. My fault for not working much with the GUI~Editor and all of the built-in stuff that exists in quest, so my apologies for my incorrect information and any confusion due to it.

HegemonKhan wrote:my bad OurJud, I assumed that the 'ask-tell' Tab's 'ask' was the same as the 'ask' Function, which is a limited 'yes~no" questioning scheme. My fault for not working much with the GUI~Editor and all of the built-in stuff that exists in quest, so my apologies for my incorrect information and any confusion due to it.

Don't be sorry. I'm just grateful for answers.

OurJud wrote:Thanks, TP, I think I can follow this :)

Just so I'm clear, in your last paragraph, do you mean have a response something like, "There's no one around here to answer you." ?

Yes.