切换语言: Deutsch English Русский Українська

Modding/zh: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
substituted links to go to official lua api documentation
m en page adapted change from here
 
(19 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{Languages}}
{{Languages}}{{Translation verification|revisionID=214723}}
{{sublinks|Main Page}}
本页面将会介绍{{Translation|Modding}}(Mod)的下载和安装方法,并简述创建模组时的注意事项。关于模组开发的详细内容,可以参阅{{L|Tutorial:Modding tutorial}}。如果需要查找模组API,请查阅[http://lua-api.factorio.com/latest/ 官方Lua-API文档](英文)。如果需要了解如何安装压缩包格式的模组,请参考{{L|Application directory}}页面上的相关说明。
[[File:Fff-18-entity-graph.jpg|400px|thumb|'Diagram of entities' (objects on the map) class inheritance structure generated by doxygen. Taken From Friday Facts #18 http://www.factorio.com/blog/post/fff-18]]


制作Mod是这个游戏最大的特色。
== 下载并安装模组 ==
玩家可以从以下位置下载模组:
* 模组平台(游戏内置)
* [https://mods.factorio.com/ 模组平台(网站)]
* [https://forums.factorio.com/viewforum.php?f=14 官方论坛模组区]


== 开始工作 ==
=== 模组平台(游戏内置) ===
游戏主菜单中的“模组”部分是获取模组的最便捷方式。它集成了下载和安装模组、检查模组更新、启用/禁用模组等常用功能。


=== 模组平台(网站) ===
[https://mods.factorio.com/ 模组平台](网站)是官方设立的模组托管平台。模组作者会在此上传他们的作品,玩家可以在此找到旧版本和讨论内容。模组会以ZIP文件形式提供给玩家,通过复制(而非解压缩)到[[Application directory/zh#用户数据目录|用户数据目录]]中的“mods”文件夹进行安装。可以在游戏主菜单中查看模组列表以验证安装是否成功。


大纲在这里 [[Mods| Mod列表]] 和 [http://www.factorioforums.com/forum/index.php Factorio forum].
=== 官方论坛模组区 ===
模组作者会在[https://forums.factorio.com/viewforum.php?f=14 官方论坛模组区]维护相关帖子以支持他们的工作。其中可能包含实验性的模组或更新,这类内容不会在模组平台上发布。它们将以ZIP文件的形式发布,可以是帖子的附件,也可以是托管网站的连接。这些模组的安装方式与从平台上下载的模组是相同的。


从这里开始学习会让你感到很轻松 [http://www.factorioforums.com/forum/viewforum.php?f=25 modding-Help-Board].这个社区总是有很多基佬回答具体问题。往往只要等待几分钟就有回复。 或者你可以试试 [[Modding FAQ]] 页面.
=== 依赖关系 ===
大多数模组使用游戏的基础模组(base mod)作为它们的唯一依赖项,无需玩家单独安装。然而有一些模组可能需要玩家安装其它模组才能运行,并且还可以为玩家推荐安装其它模组以扩展其功能。


== 授权信息 ==
==== 必需依赖 ====
当一个模组需要安装另一个模组才能运行,第二个模组就是第一个模组的必需依赖项。游戏内置的模组平台在下载任意模组时都会自动下载相关的必需依赖项。


随着v0.11版本的到来所有mod需要有一个作者声明。 如果一个MOD没有作者声明,将被视为同意开源MOD代码,与所有玩家共享:[http://creativecommons.org/licenses/by-nc/4.0 Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)].
==== 可选依赖 ====
当一个模组建议安装另一个模组,但并不强制需要另一个模组才能运行,第二个模组就是第一个模组的可选依赖项。玩家可以按需安装可选依赖项,这些模组可以扩展已安装模组的功能,以增强该模组提供的游戏体验。


附录
==== 不兼容 ====
* [http://www.factorioforums.com/forum/viewtopic.php?f=6&t=6202&p=48971#p48968 this forum article].
依赖关系也可以用来声明一个模组与其他模组不兼容,以防止它们一起加载。
:作者也在文中指出, 仅仅能使用 base-mod (特指Factorio中的这一部分) 来创建新的MOD, 但是不能用来 "在异星工厂游戏之外开发新的软件".
* http://www.factorio.com/terms-of-service


== 从游戏存档(地图)中创建一个方案(scenario) ==
==== 自动同步存档和多人游戏中的模组 ====
当玩家尝试加入使用模组的多人游戏时,游戏将提供与服务器同步模组的选项。确认同步模组后,游戏会自动下载并启用多人服务器使用的所有模组。玩家还可以同步模组的启动设置,当与多人服务器同步模组时,游戏会下载与服务器使用版本完全相同的模组版本。


一个常常被提及的问题是如何从一个地图创建一个方案(scenario)(也可以通过地图编辑器创建一个方案):
如果玩家使用未安装相应模组的游戏加载使用了模组的存档/模组设置已变更的存档时,游戏将提供与存档同步模组的选项。确认同步模组后,游戏会自动下载并启用存档使用的所有模组。玩家还可以同步模组的启动设置,当与存档同步模组时,游戏会默认使用最新版本的模组。
[http://www.factorioforums.com/forum/viewtopic.php?f=18&t=2844 Factorio can convert them] ([http://www.factorioforums.com/forum/viewtopic.php?f=5&t=3801&p=28289#p28289 see also this post]):
./bin/prod/factorio --map2scenario mapfoo


[[GameClient/zh|更多关于客户端的信息]]
玩家可以通过在“载入存档”菜单中点击右上角的“保存游戏时同步模组”按钮以手动将模组同步到存档文件。默认情况下,这会启用模组的最新版本。使用{{Keybinding|ctrl|lmb}}点击“保存游戏时同步模组”按钮时,游戏将使用与存档完全相同的模组版本。


== 用地图编辑器创建一个方案(scenarios) ==
== 模组开发 ==
: ''参见:{{L|Tutorial:Modding tutorial}}''
=== API 文档 ===
* [https://lua-api.factorio.com/latest 模组API文档] - 模组API文档网站的概述页面
** [https://lua-api.factorio.com/latest/index-prototype.html 原型文档] — 可以添加到游戏中的原型,以及它们的属性
** [https://lua-api.factorio.com/latest/index-runtime.html Runtime API文档] — 监听事件,改变玩家周围的世界
* [[Tutorial:Mod structure/zh|模组结构]] — 所有模组的基本结构
* [https://github.com/wube/factorio-data 异星工厂GitHub数据库] — 跟踪不同版本之间Lua原型定义的变化。
* [[Data.raw]] — 列出所有内置原型的名称和类型


自然,第一步也是用地图编辑器创建地图. 保存的地图将视为“方案(scenario)”,存储在专属的文件系统之中。 可以通过这个文件去体会它的作用。或者你可以浏览这个页面:
<small>''(注:除模组结构外,以上文档均为英文)''</small>


== 概述 ==
=== Lua 脚本 ===
需要使用Lua编程语言(版本: 5.2.1)来制作异星工厂的任意模组。游戏的模组系统会在游戏启动和数据构建阶段将代码注入游戏。 可以使用任意文本编辑器编写模组代码。具有Lua语法高亮功能的知名文本编辑器包括Notepad++和Visual Studio Code。


* [http://lua-api.factorio.com/latest/ official factorio lua API documentation]
有用的 Lua 资源:
* [http://lua-users.org/wiki/TutorialDirectory Lua 教程]
* [https://www.lua.org/manual/5.2/ Lua 参考手册]
* [https://repl.it/languages/lua Lua REPL] : 一个 Lua 在线运行环境,本质上是一个沙盒
 
=== 第三方工具 ===
社区成员贡献了各种工具以帮助模组开发,例如为IDE(集成开发环境)提供自动补全、调试器以及用于自动化翻译或打包等常见任务的脚本。
 
* [https://forums.factorio.com/viewforum.php?f=135 官方论坛模组开发工具区]
 
== 参见 ==
* [[:Category:Technical|技术文档]] — 与模组无关的技术格式和API的文档(英文)
 
{{C|Modding/zh{{!}}#}}

Latest revision as of 15:29, 20 June 2025

本页面将会介绍模组(Mod)的下载和安装方法,并简述创建模组时的注意事项。关于模组开发的详细内容,可以参阅教程:模组开发。如果需要查找模组API,请查阅官方Lua-API文档(英文)。如果需要了解如何安装压缩包格式的模组,请参考应用程序目录页面上的相关说明。

下载并安装模组

玩家可以从以下位置下载模组:

模组平台(游戏内置)

游戏主菜单中的“模组”部分是获取模组的最便捷方式。它集成了下载和安装模组、检查模组更新、启用/禁用模组等常用功能。

模组平台(网站)

模组平台(网站)是官方设立的模组托管平台。模组作者会在此上传他们的作品,玩家可以在此找到旧版本和讨论内容。模组会以ZIP文件形式提供给玩家,通过复制(而非解压缩)到用户数据目录中的“mods”文件夹进行安装。可以在游戏主菜单中查看模组列表以验证安装是否成功。

官方论坛模组区

模组作者会在官方论坛模组区维护相关帖子以支持他们的工作。其中可能包含实验性的模组或更新,这类内容不会在模组平台上发布。它们将以ZIP文件的形式发布,可以是帖子的附件,也可以是托管网站的连接。这些模组的安装方式与从平台上下载的模组是相同的。

依赖关系

大多数模组使用游戏的基础模组(base mod)作为它们的唯一依赖项,无需玩家单独安装。然而有一些模组可能需要玩家安装其它模组才能运行,并且还可以为玩家推荐安装其它模组以扩展其功能。

必需依赖

当一个模组需要安装另一个模组才能运行,第二个模组就是第一个模组的必需依赖项。游戏内置的模组平台在下载任意模组时都会自动下载相关的必需依赖项。

可选依赖

当一个模组建议安装另一个模组,但并不强制需要另一个模组才能运行,第二个模组就是第一个模组的可选依赖项。玩家可以按需安装可选依赖项,这些模组可以扩展已安装模组的功能,以增强该模组提供的游戏体验。

不兼容

依赖关系也可以用来声明一个模组与其他模组不兼容,以防止它们一起加载。

自动同步存档和多人游戏中的模组

当玩家尝试加入使用模组的多人游戏时,游戏将提供与服务器同步模组的选项。确认同步模组后,游戏会自动下载并启用多人服务器使用的所有模组。玩家还可以同步模组的启动设置,当与多人服务器同步模组时,游戏会下载与服务器使用版本完全相同的模组版本。

如果玩家使用未安装相应模组的游戏加载使用了模组的存档/模组设置已变更的存档时,游戏将提供与存档同步模组的选项。确认同步模组后,游戏会自动下载并启用存档使用的所有模组。玩家还可以同步模组的启动设置,当与存档同步模组时,游戏会默认使用最新版本的模组。

玩家可以通过在“载入存档”菜单中点击右上角的“保存游戏时同步模组”按钮以手动将模组同步到存档文件。默认情况下,这会启用模组的最新版本。使用CTRL + 鼠标左键点击“保存游戏时同步模组”按钮时,游戏将使用与存档完全相同的模组版本。

模组开发

参见:教程:模组开发

API 文档

(注:除模组结构外,以上文档均为英文)

Lua 脚本

需要使用Lua编程语言(版本: 5.2.1)来制作异星工厂的任意模组。游戏的模组系统会在游戏启动和数据构建阶段将代码注入游戏。 可以使用任意文本编辑器编写模组代码。具有Lua语法高亮功能的知名文本编辑器包括Notepad++和Visual Studio Code。

有用的 Lua 资源:

第三方工具

社区成员贡献了各种工具以帮助模组开发,例如为IDE(集成开发环境)提供自动补全、调试器以及用于自动化翻译或打包等常见任务的脚本。

参见

  • 技术文档 — 与模组无关的技术格式和API的文档(英文)