我正在尝试在Inform 7中制作游戏并遇到一个重大问题,谷歌搜索显然无法找到答案。
我正在使用'if'参数根据玩家所处的空间来改变某些情况。而不是看到我所写的“if”参数,它假设'如果玩家'是一个本身的实体。
这是错误消息:
你写了'如果玩家在接收',但也'如果玩家在 角落表':这似乎是说同一个对象(如果 玩家)必须在两个不同的地方(接待和角落) 表)。这看起来很矛盾。
这是我在两个地方的代码:
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.
所以,呃......任何人都可以帮助我吗?
答案 0 :(得分:1)
您发布的代码存在以下问题:
if ...: understand "..." as ...
是不可能的。理解短语必须始终是独立的。你显然想要这个:
Instead of exiting when the location is the Corner Table:
try going northwest.
这会将退出动作(包括命令“离开”和“退出”)重定向到该特定房间的西北行动。
对于第二个if短语,首先如果你有一个名为“Janitor's Key”的对象,游戏已经将“key”理解为引用这个对象,除非你专门制作了对象privately-named。其次,为什么游戏只在一个位置识别“关键”?内置范围已确保您不能引用与播放器不在同一房间内的内容。
因此,如果对象是私有命名的,并且有一个原因,为什么密钥只应在一个位置被引用,那么代码就是:
Understand "key" as the Janitor's Key when the location is the Reception.
但是,如上所述,在非常特殊的情况下,这只是 是必要的,而且很可能最好让标准库处理它并完全不用它。