Inform7 中另一个人的全局可见性?
Global visibility of another person in Inform7?
在我为大学所做的一个项目的一部分中,要求一个人能够使用一种对讲机来引导另一个人。但是,这需要对应该能够像那样控制的人进行某种全球访问。人们可能会执行以下操作之一:
- 每次他要求另一个角色做某事时交换玩家,执行该动作并 return
- 使用对讲机改变角色的视角(对我来说这不是一种直观的玩法)
- 以某种方式让另一个角色在每个房间都可见(这是我最喜欢的房间)
不幸的是,我无法在文档中找到类似的东西(可见性只是一个房间里的照明,可达性只是 opening/taking 某物之外的东西)。我想到的另一种方法是保存两个人的起源房间,把他们放在一个密室里,然后c1让c2尝试做一些事情,两个人都被放置到他们的位置,要求的动作由c2执行。
但是,将其写为 before 规则是行不通的,因为它已经被默认检查规则取消了。另一方面,我不能写:
Check asking c2to try doing something
因为一般。
欢迎任何想法、方法或解决方案!
您正在寻找的概念是 "scope"(使用 Inform ch. 18.29 编写。)以下位置 "c2" 在范围内,因此可以在任何地方访问它:
After deciding the scope of the player:
place c2 in scope.
你也可以让它成为有条件的:
After deciding the scope of the player when the player is carrying the walkie talkie:
place c2 in scope.
剩下的就是微调了。当 c2 物理上不在同一个 space(如 "look at c2")时,以下内容会阻止不合逻辑的命令:
Before doing something to c2 when c2 is not in the location and not answering c2 that:
say "C2 isn't here right now. You can tell it what to do through the walkie talkie by commanding for example C2, JUMP." instead.
当发出的命令无效时,这个可以防止 "You can't reach into..." 错误:
Before answering c2 that:
say "C2 doesn't understand that command." instead.
在我为大学所做的一个项目的一部分中,要求一个人能够使用一种对讲机来引导另一个人。但是,这需要对应该能够像那样控制的人进行某种全球访问。人们可能会执行以下操作之一:
- 每次他要求另一个角色做某事时交换玩家,执行该动作并 return
- 使用对讲机改变角色的视角(对我来说这不是一种直观的玩法)
- 以某种方式让另一个角色在每个房间都可见(这是我最喜欢的房间)
不幸的是,我无法在文档中找到类似的东西(可见性只是一个房间里的照明,可达性只是 opening/taking 某物之外的东西)。我想到的另一种方法是保存两个人的起源房间,把他们放在一个密室里,然后c1让c2尝试做一些事情,两个人都被放置到他们的位置,要求的动作由c2执行。
但是,将其写为 before 规则是行不通的,因为它已经被默认检查规则取消了。另一方面,我不能写:
Check asking c2to try doing something
因为一般。
欢迎任何想法、方法或解决方案!
您正在寻找的概念是 "scope"(使用 Inform ch. 18.29 编写。)以下位置 "c2" 在范围内,因此可以在任何地方访问它:
After deciding the scope of the player:
place c2 in scope.
你也可以让它成为有条件的:
After deciding the scope of the player when the player is carrying the walkie talkie:
place c2 in scope.
剩下的就是微调了。当 c2 物理上不在同一个 space(如 "look at c2")时,以下内容会阻止不合逻辑的命令:
Before doing something to c2 when c2 is not in the location and not answering c2 that:
say "C2 isn't here right now. You can tell it what to do through the walkie talkie by commanding for example C2, JUMP." instead.
当发出的命令无效时,这个可以防止 "You can't reach into..." 错误:
Before answering c2 that:
say "C2 doesn't understand that command." instead.