模组制作:修订间差异

本页面讲述的内容长期有效
无编辑摘要
无编辑摘要
第10行: 第10行:
* '''Linux''': <code>~/.local/share/Paradox Interactive/Hearts of Iron IV/mod</code> 
* '''Linux''': <code>~/.local/share/Paradox Interactive/Hearts of Iron IV/mod</code> 


 为了开始模组制作, you will want to create a [[Mod_structure|mod structure]] in the mod directory.
 为了开始模组制作 ,你需要在模组文件夹下新建一个[[Mod_structure| 模组文件结构]]


== 指导原则 ==
== 指导原则 ==
*'''永远不要修改游戏文件''':即使是小的修改也要通过mod文件来实现,永远不要直接修改Steam库里的钢铁雄心4文件夹中的游戏文件,因为你的改动可能在完全没有警告的情况下失败。
*'''永远不要修改游戏文件''':即使是小的修改也要通过mod文件来实现,永远不要直接修改Steam库里的钢铁雄心4文件夹中的游戏文件,因为你的改动可能在完全没有警告的情况下失败。
*'''使用好的文本编辑器'''(例如[http://notepad-plus-plus.org/ Notepad++] 或者 [https://www.sublimetext.com/ Sublime Text]) 来编辑 文件并调查 多个文件。
*'''使用好的文本编辑器'''(例如[http://notepad-plus-plus.org/ Notepad++] 或者 [https://www.sublimetext.com/ Sublime Text]) 来 同时 编辑 和搜索 多个文件。
*'''尽量减少对原版文件的重写''':通过添加分开的文件并尽可能地从文件夹中加载来改善模组的兼容性和可维护性。(你的文件可以使用任何名字,文件夹中的所有文件都会被游戏加载。所以选择一个酷酷的其他人都没有用过的文件夹名字。例如: coolmod_countries)
*'''尽量减少对原版文件的重写''':通过添加分开的文件并尽可能地从文件夹中加载来改善模组的兼容性和可维护性。(你的文件可以使用任何名字,文件夹中的所有文件都会被游戏加载。所以选择一个酷酷的其他人都没有用过的文件夹名字。例如: coolmod_countries)
*'''使用正确的合并工具''':(例如[http://winmerge.org/ WinMerge])来 [[Merging guide|merge between folders]], and update modified vanilla files to a new vanilla patch.
*'''使用正确的合并工具''':(例如[http://winmerge.org/ WinMerge])来 [[Merging guide| 合并文件夹]], 并将新更新的文件打包为一个新补丁。
*'''备份你的工作'''以避免丢失全部进度 :Consider using a source control system like [https://git-scm.com/ Git] and a collaborative forge like [https://github.com/ GitHub] to manage team collaboration, or just make a copy of the file somewhere else.
*'''备份你的工作'''以避免丢失全部进度 :考虑使用诸如[https://git-scm.com/ Git] 一类的源代码控制系统,还有类似于[https://github.com/ GitHub] 的协作平台来管理团队协作的事情,或者就只是把文件的备份放在别的什么地方。
*'''使用 UTF-8 编码'''编写文本文件。
*'''使用 UTF-8 编码'''编写文本文件。
*'''使用 UTF-8-BOM 编码'''编 写localisation 文件(.yml)。
*'''使用 UTF-8-BOM 编码'''编 写 localisation  文件(.yml)。
*'''正确地缩进'''以快速找到未对应的花括号:原版游戏使 用1个tab 的缩进而不是空格。
*'''正确地缩进'''以快速找到未对应的花括号:原版游戏使 用 1 个 tab  的缩进而不是空格。
*'''使用注释''':用 # 符号注释本行以更好地想起编写难办的代码的逻辑。
*'''使用注释''':用 # 符号注释本行以更好地想起编写难办的代码的逻辑。
*通过使用Debug模式高效地'''Debug''':通过在Steam的游戏启动选项中添加'''-debug'''。这样可以启 用error log。
*通过使用Debug模式高效地'''Debug''':通过在Steam的游戏启动选项中添加'''-debug'''。这样可以启 用 error log。


== 模组结构 ==
== 模组结构 ==
第29行: 第29行:
* 工坊模组: <code>\Steam\steamapps\workshop\content\394360\</code>
* 工坊模组: <code>\Steam\steamapps\workshop\content\394360\</code>


.mod文件的名字必须不包含任何空格,否则它将不会被游戏启动器自动选择。
.mod 文件的名字必须不包含任何空格,否则它将不会被游戏启动器自动选择。


 根据.mod文件的结构可以把模组分为三类,分别是'''小型模组''','''大型模组'''和'''次级模组'''。这些种类模组的总体结构将在下文中讲述。模组是小型、大型还是次级模组取决于模组的制作者。
 根据 .mod 文件的结构可以把模组分为三类,分别是'''小型模组''','''大型模组'''和'''次级模组'''。这些种类模组的总体结构将在下文中讲述。模组是小型、大型还是次级模组取决于模组的制作者。


=== 模组缩略图 ===
=== 模组缩略图 ===
第47行: 第47行:


=== 大型模组 ===
=== 大型模组 ===
 大型模组可以典型地划分为两类——尽管可能并且时常重叠——改 模组 和Total Conversion Mods
 大型模组可以典型地划分为两类——尽管可能并且时常重叠—— 过的模组和完全翻新的 模组。
 改 模组使用<code>user_dir</code>来保证存档不能在此模组之外加载。
  过的 模组使用<code>user_dir</code>来保证存档不能在此模组之外加载。
 对 于Total Conversion mods ,<code>replace_path</code>可以用来完全忽略原版游戏的在此模组背景下不合理的内容(例如历史、旗帜等)。
 对 于完全翻新过的模组 ,<code>replace_path</code>可以用来完全忽略原版游戏的在此模组背景下不合理的内容(例如历史、旗帜等)。


<pre>
<pre>
第73行: 第73行:
==Game data==
==Game data==


* [[Console commands]], useful for debugging mods.
* [[Console commands|控制台指令]] ,对模组进行调试很有帮助。
* [[Defines]], which allow to influence some hardcoded vanilla behaviors
* [[Defines]] ,可以修改一些硬编码的原版行为
* [[Scopes]], [[Conditions]], and [[Commands]] used for scripting
* [[Scopes|作用域]] [[Conditions|条件]] 还有[[Commands|指令]] 被用来编写脚本
* [[Modifiers]], used to influence calculations made by the game
* [[Modifiers|修正]] 用来影响游戏中进行的计算
* [[Event_Modding|Event Modding]], used to define popups with decisions
* [[Event_Modding]] 用来定义带有决议的弹出菜单


Names for in-game items (e.g. the name for research categories or rules like can_create_faction) can be found in the game's localization folder, inside the localization files.
游戏中物品的名称(像是,研究类别的名称或者像 can_create_faction 等规则)可以在游戏的 localization 文件夹中的本地化文件中找到。


== 图像文件格式 ==
== 图像文件格式 ==
 图像应使 用DDS 格式。大多数文件是 以8.8.8.8 ARGB 32位无符号格式保存的。一些文件(例 如leader 肖像) 是1.5.5.5 ARGB 16位无符号格式保存的。事件图片也可以使用.tga格式。旗帜 是32 位像素深度的.tga文件。
 图像应使 用 DDS  格式。大多数文件是 以 8.8.8.8 ARGB 32 位无符号格式保存的。一些文件(例 如 leader  肖像) 是 1.5.5.5 ARGB 16 位无符号格式保存的。事件图片也可以使用 .tga 格式。旗帜 是 32  位像素深度的 .tga 文件。


== 工具&实用程序 ==
== 工具&实用程序 ==
第90行: 第90行:
* [http://steamcommunity.com/app/394360/workshop/ steam创意工坊] - 你可以和其他玩家分享作品的地方。
* [http://steamcommunity.com/app/394360/workshop/ steam创意工坊] - 你可以和其他玩家分享作品的地方。


==See also==
== 另见 ==
*[[Mods]]
*[[Mods|模组]]
* Getting started with modding [[forum: 995985]]
* 从制作模组开始 [[forum: 995985]]
* How to create a new ship unit in Man the Guns [[forum: 1157324]]
* 如何在炮手就位中创建一种新的舰船 [[forum: 1157324]]
* How to add a new unit - Checklist [[forum: 947435]]
* 如何添加新的兵种 - 一览表 [[forum: 947435]]


== References ==
== 参考 ==


<references />
<references />

2020年11月24日 (二) 11:16的版本


模组制作,或者制作模组, 是修改基本游戏(有时也叫“原版”)的行为,可能是用于个人用途,也可能是要发布给其他玩家,例如,通过 steam创意工坊

在所有的P社游戏中,钢铁雄心4的模组制作可以涵盖很大的范围。模组开发者们的动力可能各有不同:更好的语言翻译和本地化,更多的事件或决议,更好的地图,或是一次巨大的改造,等等。

钢铁雄心4的mod文件默认位于以下位置:

  • Windows: C:\Users\<Username>\Documents\Paradox Interactive\Hearts of Iron IV\mod
  • Mac OS: ~/Documents/Paradox Interactive/Hearts of Iron IV/mod
  • Linux: ~/.local/share/Paradox Interactive/Hearts of Iron IV/mod

为了开始模组制作,你需要在模组文件夹下新建一个模组文件结构

指导原则

  • 永远不要修改游戏文件:即使是小的修改也要通过mod文件来实现,永远不要直接修改Steam库里的钢铁雄心4文件夹中的游戏文件,因为你的改动可能在完全没有警告的情况下失败。
  • 使用好的文本编辑器(例如Notepad++ 或者 Sublime Text) 来同时编辑和搜索多个文件。
  • 尽量减少对原版文件的重写:通过添加分开的文件并尽可能地从文件夹中加载来改善模组的兼容性和可维护性。(你的文件可以使用任何名字,文件夹中的所有文件都会被游戏加载。所以选择一个酷酷的其他人都没有用过的文件夹名字。例如: coolmod_countries)
  • 使用正确的合并工具:(例如WinMerge)来 合并文件夹,并将新更新的文件打包为一个新补丁。
  • 备份你的工作以避免丢失全部进度:考虑使用诸如Git一类的源代码控制系统,还有类似于GitHub的协作平台来管理团队协作的事情,或者就只是把文件的备份放在别的什么地方。
  • 使用 UTF-8 编码编写文本文件。
  • 使用 UTF-8-BOM 编码编写 localisation 文件(.yml)。
  • 正确地缩进以快速找到未对应的花括号:原版游戏使用 1 个 tab 的缩进而不是空格。
  • 使用注释:用 # 符号注释本行以更好地想起编写难办的代码的逻辑。
  • 通过使用Debug模式高效地Debug:通过在Steam的游戏启动选项中添加-debug。这样可以启用 error log。

模组结构

游戏模组位于:

  • 普通模组 \Paradox Interactive\Hearts of Iron IV\mod\
  • 工坊模组: \Steam\steamapps\workshop\content\394360\

.mod 文件的名字必须不包含任何空格,否则它将不会被游戏启动器自动选择。

根据 .mod 文件的结构可以把模组分为三类,分别是小型模组大型模组次级模组。这些种类模组的总体结构将在下文中讲述。模组是小型、大型还是次级模组取决于模组的制作者。

模组缩略图

在新启动器发布之后,所有的缩略图都必须被命名为"thumbnail.png",并且应该放在你的模组的根目录中。

小型模组

最常见的模组类型就是小型模组,即仅仅改变游戏中的一小部分内容的模组。这种模组不需要新的存档或者图形文件,也不需要使用user_dirreplace_path,以保持与其他小型模组的兼容性。

 name = "Minor Mod"
 path = "mod/MinorMod"
 picture = "thumbnail.png"
 tags = { "Minor" "Mod" }

大型模组

大型模组可以典型地划分为两类——尽管可能并且时常重叠——大改过的模组和完全翻新的模组。 大改过的模组使用user_dir来保证存档不能在此模组之外加载。 对于完全翻新过的模组,replace_path可以用来完全忽略原版游戏的在此模组背景下不合理的内容(例如历史、旗帜等)。

 name = "Major Mod"
 path = "mod/MajorMod"
 user_dir = "MajorMod"
 replace_path = "history/states" 
 picture = "thumbnail.png"
 tags = { "Major" "Mod" }

次级模组

一个大型模组的次级模组使用dependencies以更精确地重写主模组内容。如果想要让次级模组正常运作这是必需的。

 name = "Sub Mod"
 path = "mod/SubMod"
 dependencies = { "Major Mod" }
 picture = "thumbnail.png"
 tags = { "SubMod" "Major Mod" }

Game data

游戏中物品的名称(像是,研究类别的名称或者像 can_create_faction 等规则)可以在游戏的 localization 文件夹中的本地化文件中找到。

图像文件格式

图像应使用 DDS 格式。大多数文件是以 8.8.8.8 ARGB 32 位无符号格式保存的。一些文件(例如 leader 肖像)是 1.5.5.5 ARGB 16 位无符号格式保存的。事件图片也可以使用 .tga 格式。旗帜是 32 位像素深度的 .tga 文件。

工具&实用程序

另见

参考