to do what you want involves some work (possibly) in the code, and also with lists and~or dictionaries, which, as a new person to quest (and I presume also to coding), will probably be too much for you at this point, but if you're interested:
add the verb, when you want it to be available during game play (and remove it again when you don't want it available):
1.
http://quest5.net/wiki/Category:All_Fun ... t_Commands (page 1, range: A-S)
2.
http://quest5.net/w/index.php?title=Cat ... t#mw-pages (page 2, range: S-Z)
3.
http://quest5.net/wiki/Using_Lists4.
http://quest5.net/wiki/Displayverbs5.
http://quest5.net/wiki/Inventoryverbs---------
or, an easier method is to use a 'boolean attribute check', in your Verb's scripting:
'key' (Object) -> Attributes (Tab) -> Attributes -> Add ->
Object (Name ~ ID): key
Attribute Name: activated_flag_boolean
Attribute Type: boolean ( or also known as a 'flag' )
Attribute Value: false
Verb: use key
if (key.activated_flag_boolean = false) {
-> msg ("Sorry, you can't use the key yet to unlock things")
} else if (key.activated_flag_boolean = true) {
-> // 'unlock whatever Object' Scripts
}
some other scripting (some other Verb, a Turnscript, or a Timer, a Function, etc) in the game, where~when that will thus activate the key, via changing the Key's boolean attribute ' activated_flag_boolean ', from ' = false ', to ' = true ' :
// (optional) if .... {
-> key.activated_flag_boolean = true
// (optional) }
and to de-activate the key again:
// (optional) if .... {
-> key.activated_flag_boolean = false
// (optional) }
-----------
and, you'll need this stuff below too:
the two most powerful~useful Scripts (you can do like 90% of what you want with these two scripts):
1. run as script -> add a script -> scripts -> if [EXPRESSION] -> (see below)
2. run as script -> add a script -> variables -> set a variable or attribute -> (see below)
Object.Attribute = Value_or_Expression
in code (I'm lazy, so I'm doing it in code as it's quick and easy):
if (Object.Attribute = Value_or_Expression) {
-> // scripts
} else if ... {
-> // scripts
} else {
-> // scripts
}
for examples:
if (orc.dead_boolean = false) {
-> // fight scripts
} else if (orc.dead_boolean = true) {
-> msg ("The orc is already dead, silly.")
}
if (player.age_integer < 0) {
-> player.age_integer = 0
}
if (player.age_integer >= 0 and player.age_integer < 4) {
-> player.age_string = "baby"
} else if (player.age_integer >= 4 and player.age_integer < 13) {
-> player.age_string = "child"
} else if (player.age_integer >= 13 and player.age_integer < 20) {
-> player.age_string = "teen"
} else if (player.age_integer >= 20) {
-> player.age_string = "adult"
}
player.cash = player.cash + 50
player.cash = player.cash - 40
player.cash = player.cash * 3
player.cash = player.cash / 2
player.cash = player.cash + orc.cash
if (player.cash >= wooden_sword.cost) {
-> wooden_sword.parent = player
-> player.cash = player.cash - wooden_sword.cost
-> msg ("You bought (and taken) the wooden sword")
} else if (player.cash < wooden_sword.cost) {
-> msg ("Sorry, you don't have enough cash.")
}
weapon.offense_integer = 50
player.strength_integer = 100
orc.endurance_integer = 25
player.physical_damage_integer = weapon.offense_integer + weapon.offense_integer * (player.strength_integer - orc.endurance_integer) / 100
// player.physical_damage_integer = 50 + 50 * (100 - 25) / 100
// 50 + 50 * (3/4)
// 50 + (25 * 3) / 2
// 50 + (75 / 2)
// player.physical_damage_integer = ~ 90