Reachable?
Espera
10 May 2014, 00:37Simply, what does it mean for an boject to be reachable?
HegemonKhan
10 May 2014, 03:09here's you go:
http://quest5.net/wiki/ScopeReachable
"All objects in this scope can be interacted with directly by the player."
so, for example, an object in a locked and closed container object, would *NOT* be 'reachable'.
http://quest5.net/wiki/ScopeReachable
"All objects in this scope can be interacted with directly by the player."
so, for example, an object in a locked and closed container object, would *NOT* be 'reachable'.
Espera
10 May 2014, 07:05And I would presume that an object in another room is likewise not reachable.
HegemonKhan
10 May 2014, 18:34yes, you're correct. The 'reachable' Attribute (and underlying built-in Scope function with it, if I am understanding how it works) defines the object as being directly interact'able with: you don't have to do an initial pre-action like unlocking and~or opening another object, nor having to go to another room, to act upon the 'reachable' object.
for real life examples:
if you got a plate on the dinner table in the room that you're in, you can grab that plate with your hand in one action, but if you got a plate on a table in another room, you got to do 2 actions: (1) walk into the other room and then (2) grab the plate, and if you got the plate in a cupboard, you have to do 2 actions also: (1) open the cupboard and then (2) grab the plate.
now, I believe these (same room and not inside of another object) are the only two things that make an object 'reachable or not reachable'.
however, you can make your own 'my_reachable' attribute and function, whereas, you got more and or different 'checks' of if it's 'reachable or not reachable', for example:
let's say there's a key floating high above your head, so for your 'my_reachable' function you'd have a 'check' of:
if (player.flying = true) {
-> key.reachable = true
} else if (player.flying = false) {
-> key.reachable = false
}
if (key.reachable = true) {
-> // you take~get the key:
-> key.parent = player
-> msg ("You take~get the key and put it into your pocket")
} else if key.reachable = false) {
-> msg ("The key isn't reachable, you can't take~get it")
}
I think this is similar to how the built-in 'reachable' attribute and function works for when an object is inside of another object.
another example of a check (for whether you can engage in combat or not):
there's a monster on the other side of a river, and neither of you can swim, nor do either of you have projectile weapons, nor able to cast any spells.
--------
so, 'reachable', 'visable', and etc attributes and functions are like 'conditions or states' of an object, which determine whether you can perform various actions upon or with that object.
if 'take_able' (boolean attribute = true), then you can 'take' (Verb Script is enabled~allowed for) the object
if 'equipable', then you can 'equip' an object
if 'open_able', then you can 'open' an object
if 'lock_able', then you can 'lock' an object
if 'door', then you can 'open~close' an object
if 'use_able', then you can 'use' an object
if 'drop_able', then you can 'drop' an object
if 'switch_able', then you can 'switch' an object 'on~off'
------------------
here's the closest thing that I could find within the wiki for what is 'reachable', otherwise, you'll have to look through quest's built-in game engine~coding (in the GUI~Editor: left pane's 'tree of stuff' -> Filter -> Show Library Elements):
http://quest5.net/wiki/ContainsReachable
it seems to just be comparing the 'parent' and 'child' relationships, of whether it's 'reachable or not', so for example (if I myself understand it too, lol):
outside house
-> HK
->-> HK's pants with pockets
->->-> wallet
->->->-> $1.00 dollar bill
->->->-> $5.00 dollar bill
->-> HK's shirt with a pocket
->->-> pen
inside house
-> espera
->-> purse
->->-> mascara
->->-> gum
->->-> mirror
->->-> $1.00 dollar bill
->->-> $5.00 dollar bill
for real life examples:
if you got a plate on the dinner table in the room that you're in, you can grab that plate with your hand in one action, but if you got a plate on a table in another room, you got to do 2 actions: (1) walk into the other room and then (2) grab the plate, and if you got the plate in a cupboard, you have to do 2 actions also: (1) open the cupboard and then (2) grab the plate.
now, I believe these (same room and not inside of another object) are the only two things that make an object 'reachable or not reachable'.
however, you can make your own 'my_reachable' attribute and function, whereas, you got more and or different 'checks' of if it's 'reachable or not reachable', for example:
let's say there's a key floating high above your head, so for your 'my_reachable' function you'd have a 'check' of:
if (player.flying = true) {
-> key.reachable = true
} else if (player.flying = false) {
-> key.reachable = false
}
if (key.reachable = true) {
-> // you take~get the key:
-> key.parent = player
-> msg ("You take~get the key and put it into your pocket")
} else if key.reachable = false) {
-> msg ("The key isn't reachable, you can't take~get it")
}
I think this is similar to how the built-in 'reachable' attribute and function works for when an object is inside of another object.
another example of a check (for whether you can engage in combat or not):
there's a monster on the other side of a river, and neither of you can swim, nor do either of you have projectile weapons, nor able to cast any spells.
--------
so, 'reachable', 'visable', and etc attributes and functions are like 'conditions or states' of an object, which determine whether you can perform various actions upon or with that object.
if 'take_able' (boolean attribute = true), then you can 'take' (Verb Script is enabled~allowed for) the object
if 'equipable', then you can 'equip' an object
if 'open_able', then you can 'open' an object
if 'lock_able', then you can 'lock' an object
if 'door', then you can 'open~close' an object
if 'use_able', then you can 'use' an object
if 'drop_able', then you can 'drop' an object
if 'switch_able', then you can 'switch' an object 'on~off'
------------------
here's the closest thing that I could find within the wiki for what is 'reachable', otherwise, you'll have to look through quest's built-in game engine~coding (in the GUI~Editor: left pane's 'tree of stuff' -> Filter -> Show Library Elements):
http://quest5.net/wiki/ContainsReachable
it seems to just be comparing the 'parent' and 'child' relationships, of whether it's 'reachable or not', so for example (if I myself understand it too, lol):
outside house
-> HK
->-> HK's pants with pockets
->->-> wallet
->->->-> $1.00 dollar bill
->->->-> $5.00 dollar bill
->-> HK's shirt with a pocket
->->-> pen
inside house
-> espera
->-> purse
->->-> mascara
->->-> gum
->->-> mirror
->->-> $1.00 dollar bill
->->-> $5.00 dollar bill