Inform7:如何让演员在我给他们之后检查一些东西

时间:2018-03-21 17:26:56

标签: inform7

我试图让一个演员在玩家角色给他们之后检查一些东西。如果我这样说:

After giving a book to Tom:
  try Tom examining the book.
似乎整个事情完全被忽略了。我把这本书交给汤姆,他没有检查。我甚至创建了一个报告规则(

Report Tom examining book:
  say "1.";

)看他是否确实检查了它并且它并没有告诉我他做了,但那也没有用。

基本上我要做的就是给他这本书。他自动(最好默默地)检查这本书,然后在检查完这本书之后,他会说“多么奇妙的书!”。

感谢您抽出宝贵时间回答。如果已经回答了这个问题,我道歉,我看了,但没有看到任何类似的东西。

1 个答案:

答案 0 :(得分:2)

这个问题有两个部分:让汤姆拿这本书,然后让汤姆说出来,这真是一本了不起的书!"之后。

<强> 1。让汤姆拿这本书

目前的After规则从未适用,因为汤姆没有拿到这本书(该行动被“给出&#39;规则”阻止了。

解决此问题的最简单方法是将After规则替换为Instead规则,从而将完成的语句改为:

Instead of giving a book to Tom:
  Say "You hand over [the book] to [Tom].";
  Now tom carries the book;
  try Tom examining the book.

这有效,但绕过给出命令并不是最优雅的做事方式。我们可以完全删除阻止向人们提供内容的规则,例如:

The block giving rule is not listed in any rulebook.
After giving a book to Tom:
  say "You give [the book] to [Tom].";
  try Tom examining the book.

(我们必须说明我们将这本书提供给Tom,因为遵循After giving规则会阻止Report giving规则生效。我们仍然可以通过使用短语遵循Report giving规则continue the action,但后来我们描述了在

但是这会让你给Tom添加任何,这可能不是我们想要的。我们可以通过这样做来解决这个问题:

This is the partial block giving rule:
  if the noun is the book and the second noun is tom:
    continue the action;
  otherwise:
    say "[The second noun] [don't] seem interested.";
    stop the action.

The partial block giving rule is listed instead of the block giving rule in the check giving it to rules.

这允许你只给汤姆这本书,而不给任何其他人。如果您希望此完全情况经常发生在不同的人和不同的对象上,那么您可以进一步定义关系(例如,&#34;对&#34;感兴趣)以确定是否有人将接受一个对象,并将规则更改为仅允许您向人们提供他们感兴趣的对象。

<强> 2。让汤姆说出来#34;多么出色的书!&#34;

现在,我们有几种方法让汤姆说出我们想要他说的话。我们可以做出的最明显的改变是让汤姆没有真正检查这本书。我们可以简单地用这样的东西替换那行:

Say "[Tom] looks over [the book]. 'Wow,' says [Tom], 'what a marvelous book!'".

然而,让我们说我们仍然希望汤姆真正检查这本书(如果想要以后检查这本书是否已被检查过,或者汤姆是否已经检查了某些内容,这将会有所帮助等) 。然后我们可以这样做:

Try silently tom examining the book;
Say "[Tom] looks over [the book]. 'Wow,' says [Tom], 'what a marvelous book!'"

尝试默默地阻止操作产生任何文本(除非它失败)。我们也可以使用报告规则而不是静默尝试,这样更优雅,看起来像这样:

Report tom examining the book:
  Say "[Tom] looks over [the book]. 'Wow,' says [Tom], 'what a marvelous book!'";
  stop the action.