Ask/Tell commands

OurJud
02 Dec 2014, 03:59
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.

HegemonKhan
02 Dec 2014, 06:55
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.

OurJud
02 Dec 2014, 07:03
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.

The Pixie
02 Dec 2014, 08:51
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).

OurJud
02 Dec 2014, 08:59
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." ?

HegemonKhan
02 Dec 2014, 09:27
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.

OurJud
02 Dec 2014, 11:19
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.

The Pixie
02 Dec 2014, 13:16
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.