这是一个代码片段,用于显示我目前在源代码中的内容:
A morph is a kind of thing.
A morph has some text called animal name.
A serum is a kind of thing.
Revelation relates one serum to one morph. The verb to reveal (he reveals, he revealed, it
is revealed, he is revealing) implies the revelation relation.
Run Code Online (Sandbox Code Playgroud)
在我的游戏中,我想要喝一种血清,让玩家转变为特定的动物.该动物的名称存储为名为"动物名称"的文本属性.我希望能够仅仅根据血清本身来引用这个名称,所以我添加了变形和血清对象之间的关系.
然后我添加这个规则:
Instead of drinking a serum:
say "You can now become a [animal name of
morph revealed by noun].";
now the morph revealed by the noun is held by the player;
Run Code Online (Sandbox Code Playgroud)
我在这里做的是打印此消息,然后将相关的变形移动到玩家的库存中.我这样做是出于其他原因,但我需要这样做.
例如,鉴于这些断言:
Felis morph is a morph. Cat serum is a serum.
Cat serum reveals felis morph.
The animal name of felis morph is "cat".
Run Code Online (Sandbox Code Playgroud)
我希望喝猫血清游戏打印"你现在可以成为一只猫.",并将felis变身为玩家的库存.
我得到两个错误,我不知道如何解决.
1)在句子中"说"你现在可以成为[由名词揭示的变形的动物名称]."',看起来好像你打算'名词所显示的变形的动物名称'是一个属性,但'变形' "对于拥有者是谁或者什么是不够具体.
2)你写道'现在由名词所揭示的变形由玩家持有':但这不够明确,应该在具体事物之间设定明确的关系,比如"现在猫在袋子里",而不是更多难以捉摸的像'现在这只猫被一个女人带走了.' (哪个女人?那就麻烦了.)
似乎我添加的规则只是不想工作.它围绕着[由名词揭示的变形的动物名称]部分,以及由名词'部分揭示的'变形'.这些听起来像是完全合理的事情.由名词揭示的动物名称变形应该是一个可说的陈述.由名词揭示的变形应该是完全特定的 - 我指出启示将一个血清与一个变形相关联,毕竟.
有什么问题?或者更确切地说,如何将显示的变形的动物名称作为文本替换,以及如何更改血清显示的变形状态?
这里的问题是,当您编写类似的短语时the morph revealed by noun,您通过关系访问一个对象时,Inform假定多个对象可以具有该属性,即使实际上不可能(例如,在这种情况下,显示关系是一个)。 -一对一)。
解决方案是使用确定器a random从列表中实际选择一个项目。该确定器将从其作用的列表中选择一个随机对象,但是由于此处的两个列表只能包含一个对象,因此您每次都会获得相同的对象。这是一个工作示例:
Instead of drinking a serum:
say "You can now become a [animal name of a random morph revealed by noun].";
now a random morph revealed by the noun is held by the player;
Run Code Online (Sandbox Code Playgroud)
您也可以使用确定器every,但是由于它还会提供一个列表,因此它不适用于所有应用程序(上面示例中的第二个语句有效,但第一个语句无效)。
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |