0

我想创建一个名为 的新操作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".

结果是我得到一个编译器错误:

问题。您写了“将命令“clean”理解为“wash””:但是“将命令理解为 ...”仅在新命令已经没有意义时才允许使用,例如“将“drop”理解为“ throw"' 是不允许的,因为 "drop" 已经有意义了。

我怎样才能告诉 Inform 将clean命令的含义从切换rubwash而不影响rub定义的其余部分?

4

1 回答 1

1

从手册的第 17.3 节,您使用as something new

Understand the command "clean" as something new. 

这将从字典中删除单词,但保留旧的同义词,即不会影响摩擦动作。之后,您可以将其定义为新洗涤操作的同义词。

但是,请考虑许多摩擦动词可以适用于洗涤。您可以将摩擦动作重定向到某些对象的洗涤动作,而不是重新关联“干净”动词:

Instead of rubbing the dishes:
    try cleaning the dishes.

然后你会得到所有的动词。其中一些可能没有完全意义,但它们不太可能被玩家使用,并且解析器接受不完全有意义的额外命令远没有解析器拒绝有意义的命令那么大.

于 2021-10-20T08:11:45.693 回答