not had a chance to dig through the old files yet, but it occurs to me that if there are only a few possible ambiguous commands it is not too much work to deal with them by simply writing a user command for each possibilty and using a procedure to offer a choice 'in the screen' to the player.
Here's an example of what I mean, using two 'widgets' - one red, one blue. Obviously 'take (the) widget' is ambiguous so that's the user command added.
(Note that I'm using the regular take construction - I'm only capturing the ambiguous possibility here.)
Basically, if both the widgets are present, the player is asked which of the two he wants to take. It doesn't matter if he replies, 'take the blue widget', 'the blue widget', 'the blue one' or just 'blue' - all will work as long as 'blue' (the distinguishing word) is used. Obviously this works for the red one too.
If his reply mentions neither red or blue, he's told he cannot see that here.
Here's the code.
' Quest 3.5 ASL Template
define game <Game Name>
asl-version <350>
game version <1.0>
game author <Your Name>
game copyright <© 2003 ...>
game info <Extra Info>
start <Start Room>
command <take widget> {
if here <widgetRed> and here <widgetBlue> then do <pickwidget>
}
end define
define synonyms
the widget = widget
end define
define room <Start Room>
look <Description Goes Here>
define object <widgetRed>
look <it's a red widget.>
alias <red widget>
alt <red widget; widget>
take
end define
define object <widgetBlue>
look <it's a blue widget.>
alias <blue widget>
alt <blue widget; widget>
take
end define
end define
define procedure <pickwidget>
msg <Do you mean the red widget or the blue widget?>
enter <colour>
msg <$symbol(gt)$ #colour#.>
if ($instr(#colour#;red)$ >0) then {
exec <take red widget>
}
else {
if ($instr(#colour#;blue)$ >0) then exec <take blue widget>
else exec <take nothere>
}
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
Just a quick 'alternative' way to do this I came up with while looking for the files.

Al (MaDbRiT)[/b]