下载客户端

《星际漫游》模组制作:对话基础教程

2026-04-04 10:00:23
转载

导读

这是《星际殖民》的对话系统修改教程,聚焦飞船对话的创建与编辑,介绍了需准备的工具、commdialogue.xml文件路径,还讲解了简单对话、中级对话的制作,以及用<req>标签实现条件触发对话的高级技巧,同时提醒要备份文件。

这是一篇关于修改《星际殖民》对话系统的教程。在本教程中,你将学习如何修改现有对话以及从头创建新对话。本部分将重点介绍飞船对话,但其中很多内容也适用于星球NPC,后者将在另一篇教程中深入讲解。 开始学习 本指南旨在教授大家《星际殖民》对话编辑的基础知识。为此,我们将限制编辑范围。我们将编辑太空对话,这些对话位于commdialogue.xml文件中。在后续的另一篇指南中,我们将探讨星球NPC及其对话。NPC的情况更为复杂,所以现在让我们先学习对话创建和编辑的基础知识。在开始深入编辑文件之前,你需要准备以下工具。幸运的是,清单很短。 文本编辑器:我使用Textpad++,因为它的搜索工具以及能轻松同时处理多个文件的特性。如果你不需要特殊功能,也可以使用普通的记事本。 文件:本教程中我们唯一会接触的文件是commdialogue.xml。它位于以下路径:Steam steamapps common Interstellaria Assets Resources TextFiles 准备工作:为你要修改的任何文件创建备份 由于《星际殖民》目前不支持创意工坊,你将直接编辑游戏文件。这意味着,如果你验证游戏缓存,或者游戏推送了影响你已修改文件的更新,你的更改将会丢失。你好啊,船长!今天感觉怎么样? 选项一:挺好的。不过我有个问题想问你。 选项二:我心情很差,要杀了你!<hex>597dce</hex>中的代码是十六进制颜色代码,你可以在此处放置任何颜色代码。当显示对话选项时,第二个会导向战斗的选项将显示为红色,以表明选择该选项会进入战斗。选项2和3已全部设置完成,但选项1需要设置一个导向的回应。<对话 id="人类"> <回应> 回应0数据。包含跳转到1。 </回应> <回应> <文本>当然,有什么能为您效劳的,舰长?</文本> <选项> <选项文本>我们再聊会儿吧,太空孩子们怎么样了?</选项文本> <跳转>2</跳转> </选项> <选项> <选项文本>你有多余的量子纠缠器装置吗?</选项文本></ctext> <goto>3</goto> </choice> <choice> <ctext>嘿,我们从头开始这次对话好吗?</ctext> <goto>0</goto> </choice> </response> </dialogue><goto>0</goto>会将对话送回第一个对话树。另外两个goto会跳转到回应2和回应3(按顺序是第三个和第四个,因为第一个回应是0)。现在你可以创建其他回应,或者将其设置为直接结束对话。 接下来,我们将学习如何使用<req>来让某些选项仅在满足特定条件时出现。第四步:高级对话 到目前为止,希望你已经能够构建多路径对话树。不过,这缺少某些上下文元素。无论你在游戏中进展到何种程度,这些对话始终是相同的。在游戏中,这目前最常用于提供与你当前游戏进度相关的提示。我们可以通过使用<req>来基于特定触发器引导对话。 让我们从一些熟悉的对话开始。 <NPCS> <talkers> <dialogue id="Human"> <response> <text>你好啊, fellow captain!今天过得怎么样?-结束通讯- 你好, fellow captain!今天过得怎么样? -提供相关信息! -提供相关信息! -提供相关信息!这将显示3次“给我相关信息!”,且每次都会导向不同的回应/对话树。现在我们将设置成:选项的出现受游戏内事件限制。 地图等级 我们要使用的第一个<req>是最简单的,即<req>994=#</req>。这是游戏整体进度的最大标记,与星图的显示范围相关。 “994=0” 仅贸易公司可用 “994=1” 云栖族、西风族、重生族以及之前的势力可用“994=2”除以下行星外的大部分行星。 “994=3”新泰拉、希望星、信仰星以及之前的行星。 “994=4”地平线空间站以及之前的地点。 “994=5”动物园以及之前的地点。 因此,使用<req>994</req>我们可以根据整体游戏进度来改变对话响应。例如: <dialogue id="Human"> <response> <text>你好啊, fellow captain!今天过得怎么样?</text> <choice> <ctext>给我相关信息!</ctext> <req>994=0</req> <goto>1</goto> </choice> <choice> <ctext>给我相关信息!</ctext>选项: - 给我相关信息! - 结束通讯 回应1数据:去贸易公司。他们能帮你搞定! 回应2数据:我会去探索。银河系很大,但我们总能找到路。 回应3数据:你就快到了!去拯救银河系吧! 现在的情况是,当玩家开始这段对话时,如果他们的星图等级等于0、2或5,就会看到“给我相关信息!”这一外观相同的选项,但他们所导向的回应(以及由此获得的信息)会有所不同。需要注意的是,如果你的星图等级是1、3或4,玩家将不会看到这个对话选项。在很多情况下这没问题,否则你可以用所需的<req>994=#</req>创建额外的选项。 星球已解锁?第二种最简单的<req>是检查你是否有权限访问某个星球。它用<req>997="planet"</req>表示。这与星图相关联,但使用起来更简单一些。这意味着,如果你搞砸了某些东西并通过验证文件来修复,所有文件都会被还原。因此,为你编辑的任何文件创建未修改的备份是值得的。 此外,由于你的文件可能会被更新覆盖,这意味着你还应该复制你修改过的文件。 有用的存档文件:在编辑太空通讯对话时,我发现最好准备一个存档文件。首先遇到一艘你希望编辑其通讯内容的种族飞船。退出对话并保存游戏。不要通过按“X”键离开飞船遭遇战。在遭遇战中但退出通讯后保存。不再检查行星绑定的星图等级,只需检查行星是否可用。我们将使用先前代码的基础来演示其用法。可想而知,其用法非常相似。 <dialogue id="Human"> <response> <text>我喜欢行星!我也很了解它们!尽管问我任何关于行星的问题!</text> <choice> <ctext>你去过新泰拉吗?</ctext> <req>997=New Terra</req> <goto>1</goto> </choice> <choice> <ctext>跟我说说地球!</ctext>响应1数据:新泰拉?他们相当与世隔绝。他们喜欢独处,也会同样对待你。 响应2数据:你为什么想了解那块破石头?乌鲁星很奇怪。是那种非常奇怪的。不过住在那里的居民呢? 在这个示例中,你可以看到,如果玩家能在星图中访问某些星球,他们就能询问这些星球的相关信息。你可以在此处找到所有可用星球的列表。 我已尽一切努力确保星球名称与游戏中使用的完全一致。如果名称中包含空格,此处也必须保留。就像上面的新泰拉所示。 步骤5:高级对话继续 是否解锁等级?这是最后一项也是最具体的要求,它会检查某个单独的等级是否已解锁。除了星图等级外,星图.xml文件还有一个【startingZones】设置。通过此设置,你可以锁定星球上的关卡。你可以在参考指南的星图.xml注释部分了解更多相关内容。简单来说,当你首次登陆某个星球时,可能会显示部分关卡,而隐藏其他关卡。此【req】用于检查特定星球上的特定关卡是否已解锁,它通过【<req>996="planet"*#</req>】来实现。 <dialogue id="Human"> <response> <text>追捕臭名昭著的游牧者布莱恩特的行动进展如何?</text> <choice> <ctext>嗯,关于这个...</ctext>我们有重大突破! 我知道他确切的位置! -结束通讯- 回应1数据:与其他人的信息相同。“在希望星的某个地方”! 回应2数据:我有一条线索,我需要探索一些洞穴。 回应3数据:我知道他的宠物在哪里,它身上有一颗炸弹,这能让我打开他的门! 在这段对话中(基于赏金猎人支线任务),玩家正在搜寻一名臭名昭著的海盗。该星球有3个层级,但由于星图文件的设置,只有第一个层级处于解锁状态。当你首次与该角色对话时,系统检测到层级1已解锁,因此只会显示该选项。 之后,你会在希望星发现/解锁第二张地图。这会改变需求检测的内容。当你进入对话时,现在会看到希望星上已解锁2个等级,并且只显示第二个选项。继续游戏后,你解锁第三个等级,第三个对话选项就会显示出来。 此代码适用于星图.xml文件中详细说明的任何星球名称和任何已解锁等级数。有关所需的额外信息,请参考该文件。 总结 如果你按照本教程操作,希望你能理解对话创建的基础知识。本系列教程专门聚焦于你在通信对话.xml文件中处理的对话。这些是仅在太空中发生的飞船船长之间的对话。这类对话的数量是硬编码的,其使用也稍微受限。不过,学习对话树的构建以及这些设置的使用方法可用于处理星球地表的NPC。下一系列教程将重点介绍星球地表NPC的修改与创建。星球地表NPC有一些独特的对话设置,因此我们在此处没有对其进行详细讲解。我会在NPC教程中专门介绍这些新设置。 感谢阅读,如果你有任何问题或意见,欢迎提出。我很乐意提供帮助,或根据需要完善本教程。 一旦下一篇教程指南创建完成,我会在此处添加一个链接。这意味着加载存档后,你将直接进入正在编辑的对话。如果因对方敌对而无法靠近飞船,你可以在存档文件中编辑你的声望等级。确保数值设为100左右,这样几乎每次都能触发友好的通讯遭遇。当你修改通讯文件后,保存文件,启动游戏,加载存档,之后通讯界面会自动打开,或者你可以通过“交谈”指令发起对话。 步骤1:准备首次对话 现在我们要将人类飞船的通讯内容替换成我们自己的。因此,按照存档文件准备部分所述,创建一个能遇到人类飞船的存档会很有帮助。 打开commdialogue。你会看到大量代码。如果你有相关经验,应该能很清楚这是怎么回事。如果没有,这里有个快速说明。 1 <NPCS> 此行表明接下来的数据内容。 2 <talkers> 这基本是承接第一行的内容。 3 <dialogue id="Human"> 当你遇到一艘飞船时,游戏会查找该种族的NPCS/talkers信息中包含的数据。所以当你遇到人类飞船时,游戏会加载ID为Human的对话。 4 <response> 这是对话信息的开始部分。包括对话框中显示的内容以及玩家可以做出的选择。 人类对话中包含大量信息,这是因为随着游戏的进展,你会得到不同的问题回应。这里可以看到很多重复的<ctext>。这部分内容稍后会在我们创建全新对话树时进行解释。现在,我们要删除对话ID和</dialogue>之间的所有内容。 完成后,你的代码应该如下所示: <NPCS> <talkers> <dialogue id="Human"> </dialogue> 如果你保存了commduialogue.xml并尝试强制遭遇人类飞船并与他们对话,游戏可能会崩溃。所以我们先不要这么做! 步骤2:简单对话 从以下代码开始,我们需要添加第一个对话界面。 <NPCS> <talkers> <dialogue id="Human"> </dialogue> 我们可以通过添加这样的响应来实现。<对话> <对话者> <对话 id="人类"> <回复> </回复> </对话> 回复标签内的内容将显示在单个对话界面上。让我们让人类船长向我们打招呼。这段代码会被视为回复0。为节省篇幅,此处展示的代码中已移除<对话>和<对话者>标签。 <对话> <对话者> <对话 id="人类"> <回复> <文本>你好啊, fellow captain!今天感觉怎么样?</文本> </回复> </对话> 如果保存并运行这段代码,船长会向你打招呼,但你会被困在对话窗口中,无法离开。让我们添加一个选项。所有选项都需用<choice>和</choice>标签包裹。它们之间的所有内容将决定该单个选项的呈现方式和作用。 ]<NPCS> <talkers> <dialogue id="Human"> <response> <text>你好啊, fellow captain!今天感觉怎么样?</text> <choice> <ctext>-结束通讯-</ctext> <goto>999</goto> </choice> </response> </dialogue>此代码现在会向玩家显示来自另一艘飞船的消息,并给玩家一个选择的选项。该选项有一个被选择显示的文本,点击时将执行<goto>999</goto>操作。这是一个硬编码的跳转目标。这将结束对话。 恭喜!这是一个单一的对话界面,允许玩家回应船长的问候并结束对话。虽然不是很有趣,但它具备了一个功能完整的对话事件所需的最低要素。接下来我们会让事情变得稍微复杂一些。 步骤3:中级对话 让我们在第一个对话界面中添加3个选项。 <dialogue id="Human"> <response> <text>你好, fellow captain!你今天怎么样?</text> <choice> <ctext>挺好的。不过我有个问题要问你。</ctext> <goto>1</goto> </choice> <choice> <ctext>我心情很不好,我要杀了你!</ctext>玩家在首个对话界面会看到3个选项。第一个选项会加载回应1(即第二个回应部分)。第二个选项使用硬编码的跳转命令991,这会结束通讯并将对方飞船设为敌对状态,使玩家进入战斗。第三个选项使用硬编码的跳转命令999,用于退出通讯。 导致战斗的选项应该更清晰一些。我们可以使用十六进制代码为其上色。

评论

共0条评论
face
inputImg
相关阅读

良好开局

欢迎来到《星际殖民》。如果你正在阅读本文,可能是因为你尝试游玩游戏后,完全不清楚哪里出了问题。AI有先发优势,AI的运输船似乎更快,而你在所有方面都落后了。本指…

2026-03-31 04:000赞 · 0评论

《无尽空间2》大型指南

详细信息:主要派系、次要派系、指南、直播、评测、游戏机制以及新手建议。你想了解的关于《无尽空间2》的一切都能在这里找到。祝太空征服顺利! 新手建议

2026-03-19 04:000赞 · 0评论

Solar Defense-视频介绍

2026-03-18 18:300赞 · 0评论

《星际殖民》入门指南(含星际殖民Plus)

我们有一份关于使用StarDrive Plus模组(Black Box + Combined Arms)以人类势力开局的指南,该模组为自安装程序。其中详细介绍了…

2026-03-26 22:000赞 · 0评论

The Oort Cloud 2020-视频介绍

2026-03-18 18:300赞 · 0评论

铁锈战争 铁锈杂谈:你设计的单位太超模怎么办

简介不允许写250字以上的小作文

2026-05-09 02:090赞 · 0评论

〖月榜〗『丸子小课堂』“怎么制作一个会摇尾巴的像素小猫”

Hello大家好,我是丸子~ 这期教的是怎么制作一个会摇尾巴的像素小猫,其实很简单一个运动器就足够了ヾ(´▽`;)ゝ @::༻小凡༇::

2026-05-05 13:1044赞 · 10评论

【月榜】〖模组制作〗阿黛&上官芷

Hello大家好,我是丸子🍡这期制作的是由粉丝投稿鞠婧祎的:阿黛&上官芷(露芜衣在下期尽情期待)

2026-04-12 08:1461赞 · 8评论

玩具大作战 MOD:档案数据与描述

为你的模组创建档案数据:档案头像、背景、描述、图标等 自动生成【道具】图标

2026-04-03 01:000赞 · 0评论

通过提取.lp归档文件内容、修改文件并重新导入来对《星球大战:原力释放》进行模组制作。

很抱歉内容过长,我并不擅长撰写指南,但我觉得或许应该发布出来给其他人看看。这款游戏“无法模组化”的名声已经流传太久了。说一款游戏“无法模组化”就是个骗局,也是一…

2026-04-02 10:000赞 · 0评论
暂无更多