Clickable List?

dellobenedetto
02 Jun 2016, 15:54
I'm trying to make something where you talk to someone in a room and choose from a list of choices, after which a different script will occur depending on the selected choice. Something like this:

>Speak to Travel Guy
"Hey there! How do you want to travel?"

Car
Boat
Plane


>Car
"Sure thing! Eyes on the road!"
OR
>Boat
"Sure thing! Careful with the waves!"
OR
>Plane
"Sure thing! Have a nice flight!"


What's the best way to do this?

for some Functions/Scripts, there's the 'popup window/get user typed-in input' and an in-line/text (clicking on hyperlink), for example:

http://docs.textadventures.co.uk/quest/ ... _menu.html
http://docs.textadventures.co.uk/quest/ ... wmenu.html

'show menu ()' vs 'ShowMenu ()'

you want to use the in-line/text (click on hyperlinks) Functions/Scripts and not the 'popup window/get user input' ones

------

and there's also the text processor commands that you can use too (for using/creating clickable hyperlinks):

http://docs.textadventures.co.uk/quest/ ... essor.html

------

but there's a bit more I think you got to do to implement what you want, but this is an initial starting point.

dellobenedetto
03 Jun 2016, 13:44
I tried following both the "show menu" and "ShowMenu" commands exactly, but neither of them actually compiled. Is there something I'm doing wrong?

I think it is ShowMenu you want. Can you post the code you used? Go into the code view, and copy that).

formatting/syntax:

(if you just did this 'ShowMenu()', that's my fault, I was lazy and didn't add in the parameters/arguments inside of the parenthesis)

using the 'split' Script/Function is a quick way to create a temporary/local List Attribute in this case, but there's other ways to create a permanent list, using either the 'split' Script/Function or other methods.

ShowMenu ("your_message", split ("name_of_your_item1; name_of_your_item2; etc-etc-etc", ";"), false) {
// whatever Script(s)
}

dellobenedetto
09 Jun 2016, 15:36
I used the code you presented and it worked, although all of the options led to the same script. Is there any way around that?

you'll need to use an 'if' or 'switch' Script, for example, in code:

using an 'if' (if/else if/else) block (the 'if' Script/Function):

doing the 'if' Script in the GUI~Editor: run as script -> add new script -> 'scripts' Category/Section -> 'if' Script -> [expression] or whatever [blah] option

the 'show menu/ShowMenu' and 'get input' Scripts/Functions, automatically (hidden from you) sets your input/selection/choice to be stored into a built-in 'result' Variable

ShowMenu ("your_message", split ("name_of_your_item1; name_of_your_item2; etc-etc-etc", ";"), false) {
if (result = "name_of_your_item1") {
// whatever script(s)
} else if (result = "name_of_your_item2") {
// whatever script(s)
}
}


or, using the 'switch' Script/Function:

ShowMenu ("your_message", split ("name_of_your_item1; name_of_your_item2; etc-etc-etc", ";"), false) {
switch (result) {
case ("name_of_your_item1") {
// whatever script(s)
}
case ("name_of_your_item2") {
// whatever script(s)
}
}
}

I am having a big trouble with these Text Processor commands. I have been running Quest version 5.6.2, but every time i try using {object:name} or {object:name:text} i only get a plain line and not a hyperlink to the desired object. I planned using this method to set decisions on my game, but it is not working and i guess i will have to be happy by using exists. i am using a Text Adventure masked as a Gamebook, by the way.