涉及通知7中玩家的"如果"争论引起矛盾

  • 本文关键字:如果 矛盾 通知 玩家 inform7
  • 更新时间 :
  • 英文 :


我正试图在Inform 7中制作一款游戏,但遇到了一个大问题,谷歌搜索显然找不到答案。

我使用了一个"if"参数来根据玩家所在的房间来改变某些情况。它没有把我写的东西看作"if"自变量,而是假设"if the player"是一个自己的实体。

这是错误消息:

你写了"如果球员在接待处",但也写了"球员在"角桌":这似乎是在说同一个物体(如果球员)必须在两个不同的地方(接待处和角落表)。这看起来很矛盾。

这是我在两个地方的代码:

If the player is in the Corner Table;
    Understand the command "leave" or "exit" as something new.
    Understand "leave" or "exit" as northwest.
If the player is in Reception;
    Understand "key" as the Janitor's Key.

所以,呃。。。有人能帮我吗?

您发布的代码有几个问题:

  • 如果短语不能断章取义。当考虑if短语时,必须为编写规则
  • 相反,你不能在上下文中使用理解短语。更具体地说,if ...: understand "..." as ...是不可能的。理解短语必须始终是独立的
  • if短语应该以冒号结尾,而不是以分号结尾
  • "西北"本身并不是一种行动;"向西北走"就是

你显然想要这个:

Instead of exiting when the location is the Corner Table:
    try going northwest.

这会将退出操作(包括命令"离开"one_answers"退出")重定向到该特定房间中的西北方向操作。

对于第二个if短语,首先,如果你有一个名为"Janitor's Key"的对象,游戏已经将"Key"理解为指代这个对象,除非你专门为该对象命名。其次,为什么游戏只在一个位置识别"钥匙"?内置的范围已经确保你不能引用与玩家不在同一个房间里的东西。

因此,如果对象是私人命名的,并且有理由只在一个位置引用密钥,那么代码是:

Understand "key" as the Janitor's Key when the location is the Reception.

但是,正如所说,只有在非常特定的情况下,这才是必要的,而且很可能最好让标准库来处理它,并将其完全排除在外。

相关内容

  • 没有找到相关文章

最新更新