Multiple Verbs with Same word Freaking Out
lyteside
27 Aug 2009, 18:22It's important that I use constrained verbs with prepositions, along with verbs without them. Example: I need "break" and "break through" to do the same thing. In this example, "break through", and "bash in" won't work, because once "break" or "bash" is called, its looking for the object. Any suggestions on how to fix this? Already tried tricking it with synonyms, as well as adding more commands, such as <break #@object#> (same problem occurs) It needs to be dynamic, so solutions that involve hard coding it inside or outside a room is not acceptable.
is it possible that all prepositions need to be defined separately in the game... this could possibly be a feature request i suppose.
verb <break; break through; break open; kick in; bash; bash in; force open; bang open; pry open; punch through; break in; break down; smash> {
if property <#quest.lastobject#; combat> then {
msg <You crouch down low, mustering up your strength. Then you suddenly barrage your victim with a series of attacks to bring #(quest.lastobject):article# down.>
exec <attack #quest.lastobject#>
}
else msg <This isn't something you can necessarily |ibreak through|xi.>
}
is it possible that all prepositions need to be defined separately in the game... this could possibly be a feature request i suppose.
Freak
27 Aug 2009, 19:47Try ordering it so that "break through" and "break in" appear before "break". Or use Inform or TADS, which handle that just fine.
lyteside
27 Aug 2009, 20:30hmm, that option didn't work.
MaDbRiT
28 Aug 2009, 07:35Hi
I'm not in a position at this moment to check this for myself (no Quest installed on my computer at work!) , but it might well be worth trying this;
Make your 'break through' & 'break in' (and so on) synonyms for 'break' something like;
and then just use 'break' in the verb definition like so;
Do a similar thing with the other 'verbs' as needed...
If my rusty Quest knowledge is not too far gone, this should pre-parse all the variations of 'break' into just 'break' which ought to work when used within the verb construct.
I could be wrong on this, so don't shoot the messenger if I am!
MaDbRiT
EDITED!
Tried it on an unregistered Quest 4.1 install, and although you say you couldn't fool it with synonyms, this works for me...
Try 'break widget' or 'break through widget' and it seems to work...
I'm not in a position at this moment to check this for myself (no Quest installed on my computer at work!) , but it might well be worth trying this;
Make your 'break through' & 'break in' (and so on) synonyms for 'break' something like;
define synonyms
break through; break in; break open; break down = break
end define
and then just use 'break' in the verb definition like so;
verb <break; kick in; bash; bash in; force open; bang open; pry open; punch through; smash>
Do a similar thing with the other 'verbs' as needed...
If my rusty Quest knowledge is not too far gone, this should pre-parse all the variations of 'break' into just 'break' which ought to work when used within the verb construct.

I could be wrong on this, so don't shoot the messenger if I am!
MaDbRiT
EDITED!
Tried it on an unregistered Quest 4.1 install, and although you say you couldn't fool it with synonyms, this works for me...
' Quest 4.1 ASL Template
define game <Game Name>
asl-version <410>
gametype singleplayer
game version <1.0>
game author <Your Name>
game copyright <© 2009 ...>
game info <Enter any additional information about this game here.>
start <Start Room>
verb <break> msg <You can't break that!>
end define
define synonyms
break in; break through; break open = break
end define
define room <Start Room>
look <Description Goes Here>
define object <widget>
look <A nice widget>
end define
end define
define text <intro>
Enter intro text here
end define
define text <win>
Enter win text here
end define
define text <lose>
Enter lose text here
end define
Try 'break widget' or 'break through widget' and it seems to work...
lyteside
29 Aug 2009, 05:08that did the trick! Thank you. I was doing the synonyms reversed... that was the problem