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

场景系统

From Official Factorio Wiki
Jump to navigation Jump to search

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

创建

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

有两种方法创建场景:

  • 通过地图编辑器
  • 在场景文件夹中创建一个新文件夹,并添加一个 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 bool false 多人游戏兼容
is-main-game bool 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]

参见