如何访问玩家刚刚输入的动词?

how to access the verb the player just typed?

我想使用玩家刚刚在回复中使用的动词。

这对于名词([the noun])来说很容易,但在手册中我没有找到 verb/action。

这就是我想要做的:

Instead of attacking someone:
   say "How do you want to [verb] [the noun]?".

玩家本可以尝试杀死、攻击、破坏等某人,我想使用 he/she 所用的确切动词。

另外:打印回复时是否有一份可以在 [] 中使用的所有标准项目的列表?

解析器实际上没有 "verbs" 的概念,它只是将命令与具有一些特殊标记(通常是名词)但动词不是其中之一的模式相匹配。

另请注意,解析器在将其标记化后会丢弃原始命令:换句话说,[the noun] 实际上并不包含玩家使用过的单词,而是名词的打印名称。所以如果你有:

The dragon is an animal. Understand "beast" as the dragon.

并且玩家输入>ATTACK BEAST,那么[the noun]仍然会打印"dragon"。

您有两个选择:

  • 再含糊一点。例如:"How do you want to do that?"这是实践中最常用的选项。

  • 取玩家命令的第一个词并假设它是动词:

say "How do you want to [word number 1 in the player's command] [the noun]?";

不推荐,因为不能保证第一个单词就是动词。如果玩家命令 >GO NORTH THEN KILL DRAGON 或 >AGAIN 怎么办?游戏会询问 "How do you want to go the dragon?" 或 "How do you want to again the dragon?"

  • 将攻击动作分成几部分,这样你就可以确定玩家使用了哪一个。
Hitting is an action applying to one thing.
Understand the command "hit" as something new.
Understand "hit [something]" as hitting.

Instead of hitting:
   say "How do you want to hit [the noun]?"

我也不会这样做,因为有更好的选择...

  • 如果您正确创建 "attacking with" 操作,Inform 已经内置了此功能。
Attacking it with is an action applying to two things.
Understand the commands "attack" and "hit" as something new.
Understand "attack [something] with [something]" as attacking it with.
Understand "hit [something] with [something]" as attacking it with.
[and so on]

现在 Inform 会根据玩家使用的动词自动询问 "What do you want to attack/hit/kill the dragon with?"。

这也比原来的 "instead of" 方法好得多,因为现在玩家可以只用一个词(“>SWORD”)回答问题——如果他们用 instead 规则做到这一点,解析器不会明白他们的意思。