some links for you:
1.
http://docs.textadventures.co.uk/quest/2.
http://docs.textadventures.co.uk/quest/ ... notes.html3.
http://docs.textadventures.co.uk/quest/ ... ments.html4.
http://docs.textadventures.co.uk/quest/tutorial/5.
http://docs.textadventures.co.uk/quest/guides/6.
viewforum.php?f=187.
http://docs.textadventures.co.uk/quest/ ... ation.html8.
http://docs.textadventures.co.uk/quest/elements/9.
http://docs.textadventures.co.uk/quest/types/10.
http://docs.textadventures.co.uk/quest/functions/ (category order)
11.
http://docs.textadventures.co.uk/quest/ ... tions.html (alphabetical order)
12.
http://docs.textadventures.co.uk/quest/scripts/13.
http://docs.textadventures.co.uk/quest/ ... mmand.html14.
http://docs.textadventures.co.uk/quest/ ... input.html15.
http://docs.textadventures.co.uk/quest/ ... lists.html16.
http://docs.textadventures.co.uk/quest/ ... aries.html17.
http://docs.textadventures.co.uk/quest/ ... ching.html18.
http://docs.textadventures.co.uk/quest/ ... lates.html19.
http://docs.textadventures.co.uk/quest/scopes.html , and the 'Gets' and the 'Alls' Functions too.
-----------
you can use:
'get input' Script
and
COMMANDS
for using user~player (during game play) inputs
------------
'get input' sets whatever you type to a built-in Variable named~called~labeled as 'result'
result = your_typed_in_input_during_game_play
---------
a quick thing about quest:
VARIABLES:
-> Variables: local~temporary: only works for the scripting that it is directly within
-> Attributes: global~'permanent'~'save+load able' (as they're attached to Objects, ?Object-Oriented Programming?, so, so long as the Object exists, its Attribute can be referenced)
-> Parameters: Commands and Functions use them (this is probably what you're more used to in what you're talking about in your OP)
---------
Variable examples:
(see Attribute Types,
http://docs.textadventures.co.uk/quest/types/ , for syntax for the different types of Attributes)
variable_string_label = Value_or_Expression
result = "blah"
handled = "blah2"
you_go_first = true
value = 5
--------------
Attribute examples:
(see Attribute Types,
http://docs.textadventures.co.uk/quest/types/ , for syntax for the different types of Attributes)
Object_name.Attribute_name = Value_or_Expression
player.strength_integer = 100
orc.dead_boolean = false
game.flag_string = "1"
game.greeting_string = "hi, what is your name?"
player.left_hand_object = shield
player.right_hand_object = sword
game.primary_color_stringlist = split ("red;blue;yellow", ";")
player.condition_string = "poisoned"
player.condition_stringlist = split ("poisoned;paralyzed;petrified", ";")
player.equipment_body_slots_objectlist = split ("head;chest;waist;arms;legs;feet;hands;left_hand;right_hand", ";")
player.equipment_body_slots_objectlist2 = split ("helmet;mail;tasset;vambraces;greaves;boots;guantlets;shield;sword", ";")
etc etc etc
player.damage = player.weapon.damage + player.weapon.damage * player.strength / 100 - orc.armor.armor_class - orc.armor.armor_class * orc.endurance / 100
-----
anyways back to 'get input'... examples:
<function name="name_function">
msg ("What is your name?")
get input {
// I type in: HK
// quest automatically (hidden from you) does this: result = HK
msg ("Your name is " + result + ".")
}
</function>
<function name="name_function_2">
msg ("Your name is " + result + ".")
// ERROR !!!! 'result' is not defined
</function>
or
<function name="name_function">
msg ("What is your name?")
get input {
// I type in: HK
// quest automatically (hidden from you) does this: result = HK
// conceptually: player.alias = result = HK
player.alias = result
msg ("Your name is " + player.alias + ".")
}
</function>
<object name="player">
</object>
<function name="name_function_2">
msg ("Your name is " + player.alias + ".")
// no error occurs
</function>
----------------------------
Commands:
this allows for none, one, or multiple inputs (as Parameters) to be used within its scripting
(really lame examples)
pattern: 'activator text~word' (then optionally) 'connector text~word' (then optionally) '#Variable~Parameter1#' ... (optionally) '#Variable~Parameter2#' ... etc etc etc
<command name="help_command">
<pattern>help</pattern>
<script>
// in the command bar during game play, you type: help
msg ("hi")
</script>
</command>
<command name="help_command">
<pattern>help #text#</pattern>
<script>
// in the command bar during game play, you type: help (whatever you want, for this example: hint or godmode)
//
// in the command bar during game play, you type: help hint
// or
// in the command bar during game play, you type: help godmode
//
if (text = "hint") {
msg ("Here's a hint for you to get past this part of the game")
} else if (text = "godmode") {
player.invincible = true
}
</script>
</command>
<command name="help_command">
<pattern>help #text1# and #text2#</pattern>
<script>
// in the command bar during game play, you type: help (whatever you want, for this example: hint or godmode)
//
// in the command bar during game play, you type: help hint and red
// or
// in the command bar during game play, you type: help godmode and blue
// or
// in the command bar during game play, you type: help blah and blah
//
if (text1 = "hint" and text2 = "red") {
msg ("Here's a hint for you to get past this part of the game")
} else if (text1 = "godmode" and text2 = "blue") {
player.invincible = true
} else {
msg ("bye")
}
</script>
</command>
instead of #text#, you can also use #object#, both #text# and #object# have there pro and con uses (in requiring a bit of extra and different scripting)
----------
We can get into (more) Parameter usage with Functions, just let me know, as I'm tired right now, lol.
----------
in quest the 'NAME' String Attribute is the ID for the quest engine, it~they must be unique. Whereas, 'ALIAS', is just a built in string that doesn't have to be unique for each thing.
<object name="player">
</object>
<object name="player">
</object>
// ERROR !!!!
vs
<object name="player">
<attr name="alias" type="string">HK</attr>
// String Attributes are shortened by the quest engine to this tag syntax: <alias>HK</alias>
</object>
<object name="player2">
<attr name="alias" type="string">HK</attr>
</object>
// NO error
vs
<object name="player">
<attr name="strength" type="string">strong</attr>
<attr name="strength" type="int">100</attr>
</object>
// ERROR !!!!
vs
<object name="player">
<attr name="strength_string" type="string">strong</attr>
<attr name="strength_integer" type="int">100</attr>
</object>
// NO error
--------
the quest engine does a lot of the programming stuff already for us (to make it easy to use for non-coders), you just need to learn its language, terms, and how quest works.
P.S.
Quest uses 'XML (eXtensible Markup Language)', but can also use: JQuery (I think) and JS too
Alex is currently recreating~rebuilding quest (as the 'QuestKit' version) to use JS, as I guess XML isn't a common language, sighs (as I learnt all of my limited coding knowledge from quest and its XML usage, lol ~ I guess I'll be learning JS next, laughs)
lastly, being a programmer, you're probably aware of good software already, but if not, I like using this one:
notepad++ (
http://notepad-plus-plus.org/ )
which, allows you to select 'XML' (along with MANY~MOST~ALL other languages), which can help you to learn its format~structure~syntax, if you need, as well as for reading, writing, and troublshooting the~quest's code, too.