我想创建一个名为washing
的新操作,如下所示:
Understand "wash [something] with [something]" as washing.
Understand the command "clean" as "wash".
然而,Inform7标准规则为rub
定义了许多同义词,其中之一是clean
:
Understand "rub [something]" as rubbing.
Understand the commands "shine", "polish", "sweep", "clean", "dust", "wipe" and "scrub" as "rub".
结果是我得到一个编译错误:
问题。你写的是"理解命令"清洁"正如"wash"': but '理解命令…为…'只在新命令没有意义时才允许使用,例如'understand "drop"因为"扔"是不允许的,因为"掉"是不允许的。已经有了意义
我如何告诉Inform将clean
命令的含义从rub
切换到wash
,而不影响rub
定义的其余部分?
从本手册第17.3节开始,您使用as something new
:
Understand the command "clean" as something new.
这将从字典中删除单词,但保留旧的同义词,也就是说,它不会影响摩擦动作。然后,您可以将其定义为新洗涤操作的同义词。
然而,考虑到许多摩擦动词可以适用于洗涤。与其重新关联"clean"动词,你可以将摩擦动作重定向到特定对象的洗涤动作:
Instead of rubbing the dishes:
try cleaning the dishes.
然后你会得到所有的动词。其中一些可能没有完全意义,但它们不太可能被玩家使用,解析器接受不太有意义的额外命令远不如解析器拒绝有意义的命令那么大。