切换语言: English 日本語 Русский

Scenario system/zh: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
Added 'Scenario System/zh' page
 
Cardinal (talk | contribs)
m Sync with English version.
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Languages}}
{{Languages}}{{Translation verification|revisionID=215847}}
场景系统允许创建基于存档的MOD,因此不需要单独安装MOD。这允许为服务器端编写脚本,或者提供一个与普通的自由模式不同的目标(实际上是一个场景,就像{{L|Tutorial}})。
'''{{Translation|Scenario system}}'''允许创建基于存档的模组,因此无需单独安装。这允许服务器端的脚本编辑,或者设置与原版标准模式游戏不同的胜利条件(实际上就是场景,就像{{L|Tutorial}}关卡一样)。
==创建==
== 创建 ==
场景通过{{L|Map editor}}创建,地图编辑器允许场景作者将他们创建的地图保存为场景。这允许玩家在场景中添加特殊脚本。
场景通过{{L|Map editor}}创建,地图编辑器允许场景作者将他们创建的地图保存为场景。这允许玩家在场景中添加特殊脚本。


创建场景有两种方法:
有两种方法创建场景:
* 通过{{L|Map editor}}。
* 通过{{L|Map editor}}。
* 在场景文件夹中创建一个新文件夹,并添加control.lua。
* 在场景文件夹中创建一个新文件夹,并添加一个 control.lua 文件。


==场景、存档和MOD之间的差异==
== 场景、存档和模组的差异 ==
场景、存档和MOD之间有一些区别。在某种程度上,场景是后两者的结合。
场景、存档和模组之间有一些区别。在某种程度上,场景是后两者的结合。


* 与MOD不同,场景无法为游戏添加任何内容。场景中唯一允许的脚本类型是control.lua中出现的脚本。
* 与模组不同,场景不能在游戏中新增任何原型。只有在 control.lua 中存在的脚本才能被场景调用。
* 场景可以有预先制作的地图,例如“物资供应挑战”场景,也可以使用{{L|Map editor}}制作地图,例如自由模式(普通游戏)。
* 场景可以包含预制的地图,例如{{L|Supply challenge}}场景,也可以使用由地图生成器创建的地图,例如标准模式游戏。
* 与MOD不同,场景不需要安装在客户端。这允许服务器端对游戏进行小的更改,例如向加入游戏的玩家显示MOTD(译者注:MOTD(Messages of the day),指加入游戏或服务器时聊天框显示的欢迎消息)。
* 与模组不同,场景不需要在客户端安装。这使得服务器端可以实施一些小规模的玩法更改,例如向加入游戏的玩家显示MOTD。<br><small>''译者注:MOTD(Messages of the day)是指加入游戏或服务器时在游戏界面显示的欢迎消息。''</small>
* 与正常保存不同,场景存储在不同的文件夹中。
* 与普通游戏存档不同,场景存储在不同的文件夹中。
* 场景可以有一些剧情,比如场景“团队生产擂台赛”。
* 场景可以包含一些剧情,就像教学关卡一样。


==场景的限制==
== 游玩场景 ==
* 场景必须打包到MOD中,然后在MOD门户上发布。
游戏默认自带了数个场景。要游玩场景,请单击“单人游戏”->“创建游戏”,然后从左侧的列表中选择场景。可选场景类型包含主要游戏场景、扩展游戏场景、玩家自建场景和模组场景。标准模式场景与基础游戏相同,其胜利条件都是发射一枚火箭。
* 场景无法为游戏添加任何内容(即,它们不会调用data:extend())。
* 为了与原版游戏{{L|Achievements}}隔离,场景被视为MOD。
* 场景可以在没有<code>info.json</code>和<code>description.json</code>的情况下打包,但这样就不可能使用该场景来托管新的多人游戏。


==游玩场景==
选择要游玩的场景并保存游戏后,将创建一个包含地图本身和场景提供的 control.lua 脚本的存档。可以通过删除该存档中的 script.dat 和 control.lua 文件,将其转换为普通存档。(警告:风险自负,损坏存档的几率取决于场景与存档的关联程度。)
默认情况下,原版游戏中自带几个场景。要游玩场景,请单击“单人游戏”->“创建游戏”,然后从左侧的场景栏中选择用户创建的场景,或选择基础游戏或MOD中的场景。自由模式场景与基本游戏相同,目标是发射火箭。


选择要玩的场景并保存游戏后,将创建包含地图本身和场景提供的control.lua脚本的正常存档。
== 安装场景 ==
可以通过从存档文件夹中删除script.dat和control.lua文件,将其转换为普通存档。(警告:风险自负,损坏存档的几率取决于场景与存档的关联程度。)
可以将其他玩家制作的场景复制到[[Application directory/zh#用户数据目录|用户数据目录]]的“scenarios”文件夹中,然后就可以在场景列表中浏览。


==安装方式==
由模组添加的场景也会在场景列表中显示。
其他玩家制作的场景可以放到到玩家的[[Application_directory/zh#User_data_directory|用户数据目录]]中名为“scenearios”的文件夹中,这样就可以在场景菜单中浏览。
由MOD添加的场景也将显示在场景菜单中。


==将场景打包为mod==
== 场景文件结构 ==
创建一个空的mod,如[[Tutorial:mod_structure/zh|教程:MOD格式]]中所述。然后,创建一个“scenearios”文件夹,然后将场景复制到该文件夹中。
[https://lua-api.factorio.com/latest/auxiliary/data-lifecycle.html 数据生命周期]的设置阶段和数据阶段,场景没有访问权限。这意味着它只能通过 control.lua 文件执行脚本运行。场景可以包含 [[#description.json|description.json]] 文件以标识它们支持多人游戏。
如果你使用地图编辑器创建了场景,可以在[[Application_directory/zh#User_data_directory|用户数据目录]]中的场景文件夹中找到它。


==场景名称和描述的本地化==
=== 将场景打包到模组 ===
在“开始新游戏”场景栏中看到的场景名称和描述是在场景文件夹中按照[[Tutorial:Localisation/zh#File_format|教程:本地化#文件格式]]进行本地化的。
必需将场景打包到模组中,才能在模组平台上发布。
其中的默认的键是<code>scenario-name</code>和<code>description</code>,两者都没有[category]
 
freeplay/locale/en/freeplay.cfg的一个范例:
在[https://lua-api.factorio.com/latest/auxiliary/mod-structure.html 模组]中添加一个“scenarios”文件夹,然后将场景复制到该文件夹中。如果用地图编辑器创建场景,可以在[[Application_directory/zh#用户数据目录|用户数据目录]]中的场景文件夹中找到场景文件。
 
=== description.json ===
场景文件夹中的一个 json 文件,可以包含以下字段:
{| class="wikitable"
|-
! 字段 !! 数据类型 !! 默认值 !! 说明
|-
| multiplayer-compatible || [https://lua-api.factorio.com/latest/types/boolean.html boolean] || false || 多人游戏兼容
|-
| is-main-game || [https://lua-api.factorio.com/latest/types/boolean.html boolean] || false || 是否为主游戏
|-
| order || [https://lua-api.factorio.com/latest/types/Order.html Order] || 无 || 排序
|}
 
==== 示例 ====
<syntaxhighlight lang="json">
{
  "multiplayer-compatible": true,
  "order": "d"
}
</syntaxhighlight>
 
=== 场景名称和说明的本地化 ===
在“创建游戏”界面中会显示场景列表,其中的场景名称和说明会按场景文件夹中的[[Tutorial:Localisation/zh#文件格式|语言文件]]进行本地化。相关变量为<code>scenario-name</code>和<code>description</code>,两者都没有[category]。下面是一个来自 freeplay/locale/zh-CN/freeplay.cfg 的示例:
<pre>scenario-name=标准模式
<pre>scenario-name=标准模式
description=你的目标是向太空发射一枚火箭,为此你要从零开始发展出你的自动化生产线,同时别忘了防范异星虫子的骚扰。\n[font=default-bold]这是 Factorio 的主要游戏模式。[/font]</pre>
description=你的任务是发射火箭到太空。为此,你需要研究先进科技,才能解锁火箭发射井。从简陋小作坊起步,逐步建立起自己的自动化基地!记得留意本土的异星生物,它们随时可能发动袭扰。\n[font=default-bold]这是《异星工厂》的标准玩法。[/font]</pre>
 
==另请参见==


== 参见 ==
* {{L|Tutorial}}
* {{L|Tutorial}}
* {{L|Map editor}}
* {{L|Map editor}}
* {{L|Map generator}}
* {{L|Map generator}}
{{C|Modding}}

Latest revision as of 07:57, 19 September 2025

场景系统允许创建基于存档的模组,因此无需单独安装。这允许服务器端的脚本编辑,或者设置与原版标准模式游戏不同的胜利条件(实际上就是场景,就像教学关卡一样)。

创建

场景通过地图编辑器创建,地图编辑器允许场景作者将他们创建的地图保存为场景。这允许玩家在场景中添加特殊脚本。

有两种方法创建场景:

  • 通过地图编辑器
  • 在场景文件夹中创建一个新文件夹,并添加一个 control.lua 文件。

场景、存档和模组的差异

场景、存档和模组之间有一些区别。在某种程度上,场景是后两者的结合。

  • 与模组不同,场景不能在游戏中新增任何原型。只有在 control.lua 中存在的脚本才能被场景调用。
  • 场景可以包含预制的地图,例如物资供应挑战场景,也可以使用由地图生成器创建的地图,例如标准模式游戏。
  • 与模组不同,场景不需要在客户端安装。这使得服务器端可以实施一些小规模的玩法更改,例如向加入游戏的玩家显示MOTD。
    译者注:MOTD(Messages of the day)是指加入游戏或服务器时在游戏界面显示的欢迎消息。
  • 与普通游戏存档不同,场景存储在不同的文件夹中。
  • 场景可以包含一些剧情,就像教学关卡一样。

游玩场景

游戏默认自带了数个场景。要游玩场景,请单击“单人游戏”->“创建游戏”,然后从左侧的列表中选择场景。可选场景类型包含主要游戏场景、扩展游戏场景、玩家自建场景和模组场景。标准模式场景与基础游戏相同,其胜利条件都是发射一枚火箭。

选择要游玩的场景并保存游戏后,将创建一个包含地图本身和场景提供的 control.lua 脚本的存档。可以通过删除该存档中的 script.dat 和 control.lua 文件,将其转换为普通存档。(警告:风险自负,损坏存档的几率取决于场景与存档的关联程度。)

安装场景

可以将其他玩家制作的场景复制到用户数据目录的“scenarios”文件夹中,然后就可以在场景列表中浏览。

由模组添加的场景也会在场景列表中显示。

场景文件结构

数据生命周期的设置阶段和数据阶段,场景没有访问权限。这意味着它只能通过 control.lua 文件执行脚本运行。场景可以包含 description.json 文件以标识它们支持多人游戏。

将场景打包到模组

必需将场景打包到模组中,才能在模组平台上发布。

模组中添加一个“scenarios”文件夹,然后将场景复制到该文件夹中。如果用地图编辑器创建场景,可以在用户数据目录中的场景文件夹中找到场景文件。

description.json

场景文件夹中的一个 json 文件,可以包含以下字段:

字段 数据类型 默认值 说明
multiplayer-compatible boolean false 多人游戏兼容
is-main-game boolean false 是否为主游戏
order Order 排序

示例

{
  "multiplayer-compatible": true,
  "order": "d"
}

场景名称和说明的本地化

在“创建游戏”界面中会显示场景列表,其中的场景名称和说明会按场景文件夹中的语言文件进行本地化。相关变量为scenario-namedescription,两者都没有[category]。下面是一个来自 freeplay/locale/zh-CN/freeplay.cfg 的示例:

scenario-name=标准模式
description=你的任务是发射火箭到太空。为此,你需要研究先进科技,才能解锁火箭发射井。从简陋小作坊起步,逐步建立起自己的自动化基地!记得留意本土的异星生物,它们随时可能发动袭扰。\n[font=default-bold]这是《异星工厂》的标准玩法。[/font]

参见