我试图让这个玩家可以ASK [PERSON] ABOUT [TOPIC],TELL [PERSON] ABOUT [TOPIC]或THINK ABOUT [TOPIC]在通知7.我开始喜欢这个建模THINK ABOUT [TOPIC]:
主题是一种东西.主题已知或未知.一个主题通常是未知的.
思考是一种适用于一件事的行为.理解"思考[某事]"是一种思考.理解"思考[某事]"是一种思考.
进行思考:如果名词是一个主题,请改为"[名词描述]".
但后来我才意识到,我可能希望使用相同的机制来思考抽象主题和具体事物.我还遇到了一个问题,即除非主题是房间中的具体内容,否则Inform认为它超出了范围.我不知道如何解决这个问题.与此同时,我确实希望大多数主题从范围开始,但是在前面的主题建议的范围内.
在思考我想要实现的目标时,它似乎与Emily Short等人使用的系统非常相似.人.在Alabaster.源导入一个名为Threaded Conversation的扩展,但我看不出它来自哪里.
简而言之,我需要一个会话系统:
非常新的Inform7和它的风格.我查看了提供的文档,一些互联网浏览对我没有任何帮助......这是我正在寻找的简单版本.我想写这样的东西:
breakroom is a room. "A run of the mill breakroom."
soda pop is a kind of thing. "A refreshing soda pop."
soda machine is in the breakroom. dispense button is on the soda machine.
instead of pushing dispense button:
say "A soda can dispenses".
create a soda pop (called pop) in the breakroom.
Run Code Online (Sandbox Code Playgroud)
"在休息室里制作苏打水(称为流行音乐)." 显然不是一个有效的命令,但我希望它能传达我想做的事情.我不知道如何在运行时实例化对象.这可以合理地完成吗?任何帮助,将不胜感激.我知道Inform没有大的追随者,但我想我会试一试.
我只想提示用户在操作过程中输入一行文本.效果应该是这样的:
> north
The robot steps in front of you as you approach the gate.
"PAASSWAAAAWRD!!" it bellows.
Enter the password: _
Run Code Online (Sandbox Code Playgroud)
此时游戏应暂停并让玩家尝试猜测密码.例如,假设我猜"fribble",这不是密码:
Enter the password: fribble
"WRONG PASSWAAARD!" roars the robot. "CHECK CAPS LAAAWWWWK!"
>
Run Code Online (Sandbox Code Playgroud)
我想要的行为类似于if the player consents,但我想要整行输入,而不仅仅是是或否.
我正在使用Inform 7进行冒险.在冒险中,你可以拿起一块芯片.如果您的库存中有芯片,我希望能够拿起一台称为袖珍电脑的东西.把它放在可能的通知句中:
If chip is in the inventory, take pocket computer.
Run Code Online (Sandbox Code Playgroud) 在Inform中,我希望能够创建一个新的动作,并使它能够处理任意文本.
我可以轻松地创建一个可以处理现有事物的新动作.
Finding is an action with past participle found, applying to one thing.
Understand "Find [something]" as finding.
Carry out finding:
say "You find [the noun]."
Run Code Online (Sandbox Code Playgroud)
但这仅适用于游戏世界中存在的项目.例如,如果我尝试"查找fdsljk",它将失败,因为我没有创建"fdsljk".
我希望能够"找到fdsljk",然后能够抓住那些额外的文本并回复它......就像"你找到了fdsljk".
我在想那样的事情
A foo is a kind of value.
Finding is an action with past participle found, applying to one foo.
Understand "Find [something]" as finding.
Carry out finding:
say "You find [the foo]."
Run Code Online (Sandbox Code Playgroud)
可能很接近......但它不起作用.我收到的错误是:
你写了'说'你发现[foo]."',特别是'foo':但是这要求说出一种不能说,或者说是印刷的东西.虽然根据所使用的值的种类使用复杂形式的复杂文本替换会出现此问题,但更常见的是这意味着您尝试使用替换值(例如,在"说"中,表盘读取[V]."')一种无法打印出来的.例如,如果V是一个数字或一段文本,则没有问题:但如果V是解析主题,例如表中"主题"列中的条目,则会出现此问题.
斜体是我的,突出关键...我认为这应该是可行的,但我走的是错误的道路.线索?
假设我们有:
风暴门是一扇关闭的门.它位于花园的南面和棚屋的北面.
以下命令都可以正常通过花园的门:
但是进去不起作用:
>进去你不能那样走.
我找不到合理的方法让它发挥作用.我能做的最好的就是这个,这看起来很荒谬:
在花园里面是Tumbolia.在棚子外面是Tumbolia.
而不是从花园去Tumbolia,尝试进入风暴门.
而不是从棚屋前往Tumbolia,尝试进入风暴门.
如果我得到一个很好的答案,我会吃掉我的帽子...我怀疑虽然我是Inform 7的初学者,我猜这不是那么难,这里可能没有多少人谁熟悉Inform 7.尽管如此,没有什么冒险的......
我正在尝试为"拉"动作创建自定义响应.不幸的是,我认为"拉动"动作通常不会指望第二个名词.所以我正在尝试这样的事情:
The nails are some things in the Foyer. The nails are scenery.
Instead of pulling the nails:
If the second noun is nothing:
say "How? Are you going to pull the nails with your teeth?";
otherwise:
say "I don't think that's going to do the job."
Run Code Online (Sandbox Code Playgroud)
但是,当这个编译,第一部分工作时,"我不认为..."部分从未被调用过......翻译只是回答"我只是想要拉你的指甲才能理解你".我是否必须为此创建自己的自定义操作?覆盖标准拉动作?我错过了一些简单的东西,让我能够让它发挥作用吗?
这是一个代码片段,用于显示我目前在源代码中的内容:
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) 我有以下代码:
After going to room1:
if button1 is switched on:
say "You hear a loud noise in the distance!";
Run Code Online (Sandbox Code Playgroud)
不幸的是,这会阻止打印房间描述。如果我加上“继续行动”;最后,输出是“你听到远处有很大的噪音!” 在房间描述之前。我真的想先看一下房间描述。如果我加上“试试看;” 作为第一行,它打破了简短/详细模型。我如何编码以获得以下输出?
(详细)
>e
Room1
This is a small room.
There is a letter here.
You hear a loud noise in the distance!
Run Code Online (Sandbox Code Playgroud)
(简短,在第二次访问房间时)
>e
Room1
There is a letter here.
You hear a loud noise in the distance!
Run Code Online (Sandbox Code Playgroud) 我试图让演员检查玩家角色给他们后的东西。如果我说这样的话:
After giving a book to Tom:
try Tom examining the book.
Run Code Online (Sandbox Code Playgroud)
似乎整个事情都被完全忽略了。我把这本书交给汤姆,他没有检查。我什至创建了一个报告规则(
Report Tom examining book:
say "1.";
Run Code Online (Sandbox Code Playgroud)
),看看他是否进行了检查,只是没有告诉我他在检查,但这也不起作用。
基本上我想做的就是给他这本书。他自动地(最好是无声地)检查这本书,然后在检查了这本书之后,他会说诸如“多么美妙的书!”之类的东西。
感谢您抽出宝贵的时间回答。如果已经回答了这个问题,我很抱歉,我看了看,但没有发现任何类似的东西。