该编辑可以被撤销。 请检查下面的对比以核实您想要撤销的内容,然后发布下面的更改以完成撤销。
最后版本 | 您的文本 | ||
第1行: | 第1行: | ||
{{Version|timeless}}{{需要翻译}} | {{Version|timeless}}{{需要翻译}} | ||
'''模组制作'''('''Modding'''),或者说创建 | '''模组制作'''('''Modding'''),或者说创建模组,是一种修改游戏资源或行为的方式,有时候仅仅是为了个人使用,有时候制作者也会发布出来供其它玩家一起使用。可以通过以下途径了解mod制作[https://mods.paradoxplaza.com/games/ck3 Paradox Mods]和[https://steamcommunity.com/app/1158310/workshop/ Steam Workshop]。 | ||
在所有的P社游戏中,十字军之王3的可修改程度都是相当高的。mod制作者可以修改的内容也相当宽泛,比如语言翻译,更多的事件和决议,更优秀的地图,更大程度上的内容修改和作弊。 | 在所有的P社游戏中,十字军之王3的可修改程度都是相当高的。mod制作者可以修改的内容也相当宽泛,比如语言翻译,更多的事件和决议,更优秀的地图,更大程度上的内容修改和作弊。 | ||
第6行: | 第6行: | ||
这篇引导的目的在于降低制作mod的门槛。但是学习的曲线总是曲折的,这需要你通过不断的练习和阅读他人优秀mod代码来提升自己制作mod的水平。 | 这篇引导的目的在于降低制作mod的门槛。但是学习的曲线总是曲折的,这需要你通过不断的练习和阅读他人优秀mod代码来提升自己制作mod的水平。 | ||
''重要'': 大多数模组会改变校验码,将禁 止玩家获得 成就。在{{Cite file|Crusader Kings III\game}}中的{{Cite file|checksum_manifest.txt}}查看校验文件夹和文件。 唯一安全 的是替换纹理、字体、着色器或音乐的模组。 | |||
== 提示 & 指引== | == 提示 & 指引== | ||
* '''创建一个mod对游戏进行修改''': 即使是很小的改动,也不要直接修改CK3游戏本体的游戏文件,而是要单独创建一个mod。因为本体更新时会直接覆盖这些修改,并且没有任何提示。 | |||
* '''使用好的文本编辑器''' 用来编辑和搜索文件。以下软件均免费: | |||
** [https://code.visualstudio.com/ Visual Studio Code]. 有一个粉丝自制的CWTools扩展,具有Paradox语法高亮、验证以及触发器和效果的工具提示。要安装它,请到VS左侧面板的扩展,搜索CWTools。(注意:验证规则是不完整的,会在gui和本地化文件中显示许多错误) | |||
** [https://notepad-plus-plus.org/downloads/ Notepad++]。选择Perl作为你的语言,因为它可以提供良好的高亮显示,并允许折叠代码块和注释。要将其设置为默认语言,请进入 "设置","样式器配置器",在左侧列表中找到Perl,并在底部的 "User ext. "字段中添加 "gui txt"(不加引号)。 | |||
** [https://atom.io/ Atom]。不包括本地化文件所需的UTF-8-BOM编码。除此之外,它是非常可定制的。选择Perl 6作为你的语言以获得更好的效果。要将其设置为默认,请到文件,配置,找到 "core:",并在下面添加。"customFileTypes: "source.perl6"。["txt""gui"]",比如[https://discuss.atom.io/t/how-do-i-make-atom-recognize-a-file-with-extension-x-as-language-y/26539 这个例子]。 | |||
** [https://www.sublimetext.com/ Sublime Text]. There is an extension for it released by the developers of Imperator which could be used with CK3: [https://forum.paradoxplaza.com/forum/index.php?threads/sublime-tools-for-imperator.1274246/ Sublime Tools]. It adds colored highlighting for effects and triggers. If you want to toggle comments in Sublime, you also need to add [https://cdn.discordapp.com/attachments/563655919892692996/649656191173263370/PDXComments.tmPreference this file] to the same "User" folder. | |||
* '''总是通过 error.log 文件检查mod运行中出现的bug'''。<nowiki>...\Documents\Paradox Interactive\Crusader Kings III\logs</nowiki> | |||
* '''The log folder also contains lists of effects, triggers and scopes.''' Use "script_docs" and "DumpDataTypes" console commands in the game to generate them. | |||
* '''Start the game with -debug_mode -develop''' launch options to use the console and "reload gui", "reload gfx" commands. | |||
** On Steam: right-click the game on Steam -> Properties -> Set Launch Options -> add -debug_mode -develop | |||
** Windows: Create a shortcut for the .exe file -> right-click it -> Properties -> add -debug_mode -develop at the end of the Target field | |||
* '''CK3文件夹在Linux系统的路径 ''' <nowiki>~/.local/share/Paradox Interactive/Crusader Kings III</nowiki> | |||
* Clearly communicate whether your mod is ironman-friendly to players. | |||
* Remove your local mod when you subscribe to the Steam version, otherwise it may not work in the game. | |||
* Backup your work. Either manually or with a source control system like Git. Also consider using GitHub for team collaboration. | |||
* Use a proper merge tool (like [https://winmerge.org/?lang=en WinMerge]) to merge between folders and update modified files for a new patch. | |||
* If you're replacing text across dozens or hundreds lines of code, you may want to use regular expressions. They are available in all of the text editors above. Learning resources: [https://regexone.com/ RegexOne], [https://regexr.com/ RegExr]. | |||
=== 本地化文件 === | |||
*本地化文件夹中的yml后缀结尾的文件必须以'''UTF-8 + BOM'''编码保存,以便游戏正确读取。 | *本地化文件夹中的yml后缀结尾的文件必须以'''UTF-8 + BOM'''编码保存,以便游戏正确读取。 | ||
*为了保证游戏正确读取文件,文件名需要以'''*l_<language>.yml'''形式保存。例如'''council_l_english.yml'''。 | *为了保证游戏正确读取文件,文件名需要以'''*l_<language>.yml'''形式保存。例如'''council_l_english.yml'''。 | ||
== | == Creating a mod == | ||
{{main|Mod structure#Creating initial files}} | {{main|Mod structure#Creating initial files}} | ||
It is recommended to use the game launcher to create the mod's initial files. | |||
==上传/更 新mod== 。 | |||
再次上传您 的MOD 更新, | |||
==上传/更 | |||
再次上传您 | |||
#打开启动器, | #打开启动器, | ||
#导航到 | #导航到 "mods " 部分, | ||
# | # 按 "Mod 工具" ,从下拉菜单中选择你 的MOD, | ||
#选择什么平台上传它 | #选择什么平台 上传它 , | ||
#输入任何描述。(如果更新,请确保启动器从网站上复制最新的描述。) | #输入任何描述。(如果更新,请确保启动器从网站上复制最新的描述。) | ||
#添加一个缩略图 | #添加一个缩略图 | ||
#*对于Steam | #*对于Steam Workshop ,把thumbnail.png放在mod文件夹里。使用1:1的比例,最大1MB。工 作室 显示的最大缩略图约为600x600像素。 | ||
#*对于Paradox Mods,将缩略图拖到描述下方的区域。建议最小尺寸为900x500,png或jpg,最大1MB。 | #*对于Paradox Mods,将缩略图拖到描述下方的区域。建议最小尺寸为900x500,png或jpg,最大1MB。 | ||
# | # 按下 " 上 传" 。 | ||
#*在Steam上 | #*在Steam上 ,mod 将以私人模式上传,并出现在你的Steam资料->工 作室 项目中。打开它,并将侧栏上的可见性改为 " 公开" ,即可实际发布。 | ||
#*在Paradox Mods上,mod将在验证过程后被发布。你可能需要编辑你的描述,因为网站通常会删除换行符和BBCode格式。 | #*在Paradox Mods上,mod将在验证过程后被发布。你可能需要编辑你的描述,因为网站通常会删除换行符和BBCode格式。 | ||
通过www.DeepL.com/Translator(免费版)翻译 | |||
== 保存修改的内容 == | |||
Save files are located in: | |||
* Windows: Documents\Paradox Interactive\Crusader Kings III\save games | |||
* Linux: ~/.local/share/Paradox Interactive/Crusader Kings III/save games | |||
''It is not possible to edit an ironman save!'' | |||
First start the game in the debug mode and save. | |||
*Windows: | * On Steam: right-click the game on Steam -> Properties -> Set Launch Options -> add -debug_mode | ||
* Windows: Create a shortcut for the .exe file -> right-click it -> Properties -> add -debug_mode at the end of the Target field | |||
PC(Windows): | PC(Windows): | ||
# Find the save file in the save games folder. | |||
# Right-click the save file and extract it like an archive with 7-Zip or WinRar. | |||
# 将提取出的'gamestate'文件的扩展名重名为.ck3 | |||
# Right-click it and open with your text editor (Windows Notepad is not recommended as the save files are very big). | |||
# Edit the file and save it. | |||
# 游戏中会直接加载mod(不需要重复压缩)。 | |||
Autosaves can be edited directly without extracting the gamestate. | |||
Mac: | Mac: | ||
# 打开终端 | |||
#打开终端 | # 确认当前路径是正确的 | ||
#确认当前路径是正确的 | # 输入命令 "unzip FileName.ck3" | ||
#输入命令 "unzip FileName.ck3" | # 将提取出的'gamestate'文件的扩展名重名为.ck3 | ||
#将提取出的'gamestate'文件的扩展名重名为.ck3 | # 保存此纯文本 | ||
#保存此纯文本 | # 游戏中会直接加载mod(不需要重复压缩) | ||
#游戏中会直接加载mod(不需要重复压缩) | |||
{| class="wikitable" | {| class="wikitable" | ||
!平台!!保存方式!!路径 | ! 平台 !! 保存方式 !! 路径 | ||
|- | |- | ||
|Windows||本地||<code>C:\Users\%USERPROFILE%\Documents\Paradox Interactive\Crusader Kings III\save games</code> | | Windows || 本地 || <code>C:\Users\%USERPROFILE%\Documents\Paradox Interactive\Crusader Kings III\save games</code> | ||
|- | |- | ||
|Windows||Steam 云端||<code>C:\Program Files (x86)\Steam\userdata\####\1158310\remote\save games</code> | | Windows || Steam 云端|| <code>C:\Program Files (x86)\Steam\userdata\####\1158310\remote\save games</code> | ||
|- | |- | ||
|Mac||本地||<code>$HOME/Documents/Paradox Interactive/Crusader Kings III/save games</code> | | Mac || 本地 || <code>$HOME/Documents/Paradox Interactive/Crusader Kings III/save games</code> | ||
|- | |- | ||
|Linux||本地||<code>$HOME/.local/share/Paradox Interactive/Crusader Kings III/save games</code> | | Linux || 本地 || <code>$HOME/.local/share/Paradox Interactive/Crusader Kings III/save games</code> | ||
|} | |} | ||
=== gamestate | === Contents of the gamestate file === | ||
The table below contains the possible first-level blocks in the gamestate file. Entries are provided in order of appearance. | The table below contains the possible first-level blocks in the gamestate file. Entries are provided in order of appearance. | ||
{| class="wikitable | {| class="wikitable" | ||
! Block | ! Block | ||
! Description | ! Description | ||
第235行: | 第226行: | ||
index={ | index={ | ||
first_name="..." | first_name="..." | ||
birth=(date) | birth=(date) | ||
female=yes # Optional | female=yes # Optional | ||
culture=(culture index) | |||
faith=(faith index) | |||
culture=(culture index) | dynasty_house=(dynasty house index) # Optional | ||
faith=(faith index) | |||
dynasty_house=(dynasty house index) # Optional | |||
skill={ (diplomacy) (stewardship) (martial) (intrigue) (learning) (prowess) } # One value for each skill | skill={ (diplomacy) (stewardship) (martial) (intrigue) (learning) (prowess) } # One value for each skill | ||
sexuality=(sexuality id) # Optional | |||
dna="(dna string)" # Optional | dna="(dna string)" # Optional | ||
mass=(value) # Optional | mass=(value) # Optional | ||
traits={ (trait index...) } # List of trait indices | |||
traits={ (trait index...) } # | |||
inactive_traits = { (trait index...) } # Optional. List of trait indices | inactive_traits = { (trait index...) } # Optional. List of trait indices | ||
# Optional (family_data) | # Optional (family_data) | ||
family_data={ | family_data={ | ||
primary_spouse=(character id) | |||
spouse=(character id) | |||
primary_spouse=(character id) | child = { (character id...) } # List of character ids | ||
spouse=(character id) | |||
child = { (character id...) } # | |||
} | } | ||
第282行: | 第252行: | ||
# (...) | # (...) | ||
} | } | ||
} | } | ||
第293行: | 第257行: | ||
income=(value) # Optional | income=(value) # Optional | ||
location=(landed title index) # Optional | location=(landed title index) # Optional | ||
fertility=(value) | fertility=(value) | ||
health=(value) | health=(value) | ||
piety={ | piety={ | ||
currency=(value) | currency=(value) | ||
accumulated=(value) # Optional | accumulated=(value) # Optional | ||
} | } | ||
prestige={ | prestige={ | ||
currency=(value) | currency=(value) | ||
accumulated=(value) # Optional | accumulated=(value) # Optional | ||
} | } | ||
weight_update=(value) | |||
weight_update=(value) | |||
} # End of alive_data block | } # End of alive_data block | ||
court_data={ | court_data={ | ||
# All keys within this block are optional | # All keys within this block are optional | ||
employer=(character id) | employer=(character id) | ||
council_task=(council task index) | council_task=(council task index) | ||
regiment=(regiment index) | regiment=(regiment index) | ||
knight=yes | knight=yes | ||
} | } | ||
第364行: | 第282行: | ||
domain={ (landed title index...) } # List of landed title indices | domain={ (landed title index...) } # List of landed title indices | ||
vassal_contracts={ (values) } # List of values | vassal_contracts={ (values) } # List of values | ||
became_ruler_date=(date) | became_ruler_date=(date) | ||
laws={ "(law id)"... } # List of law ids | laws={ "(law id)"... } # List of law ids | ||
strength=(value) | strength=(value) | ||
balance=(value) | balance=(value) | ||
succession={ (character id...) } # List of character ids | succession={ (character id...) } # List of character ids | ||
domain_limit=(value) | domain_limit=(value) | ||
vassal_limit=(value) | vassal_limit=(value) | ||
vassals_towards_limit=(value) | vassals_towards_limit=(value) | ||
government="(government id)" | government="(government id)" | ||
realm_capital=(value | realm_capital=(value | ||
ai_allowed_to_marry=yes | ai_allowed_to_marry=yes | ||
council={ (value...) } # List of values | council={ (value...) } # List of values | ||
第388行: | 第297行: | ||
diplo_centers={ (value...) } # List of values | diplo_centers={ (value...) } # List of values | ||
election_titles={ (landed title index...) } # List of landed title indices | election_titles={ (landed title index...) } # List of landed title indices | ||
} # End of landed_data block | } # End of landed_data block | ||
第452行: | 第357行: | ||
| Contains the following sub-blocks: | | Contains the following sub-blocks: | ||
* secrets (contains entries of secrets) ''(repetition)'' | * secrets (contains entries of secrets) ''(repetition)'' | ||
* known_secrets | |||
* known_secrets | |||
|- | |- | ||
| armies | | armies | ||
第562行: | 第457行: | ||
| currently_played_characters={ (character id...) } | | currently_played_characters={ (character id...) } | ||
| List of character ids. | | List of character ids. | ||
|} | |} | ||
== | == Extracting files From Microsoft Store version == | ||
If you want to read the files using the Microsoft Store version, you can use a program called UWPDumper to extract the files. | |||
# Download the latest x64 binary of [[Modding#Tools & utilities|UWPDumper]] | |||
# | # Enable Developer Mode (Windows Settings -> Update and Security -> For Developers -> Developer Mode). | ||
# | # Run CK3. | ||
# | # Run UWPInjector.exe from the program you just downloaded. | ||
# | # Enter the number next to ck3.exe : ParadoxInteractive.ProjectTitus_zfnrdv2de78ny as the processID. | ||
# | # Check where it is going to store the files (probably somewhere like C:\Users\%USERPROFILE%\AppData\Local\Packages\ParadoxInteractive.ProjectTitus_zfnrdv2de78ny\TempState\DUMP | ||
# | # Wait for the program to finish. | ||
# | The files should then be present in the directory specified earlier. If you want to edit the files, create a mod and copy the desired files there. | ||
== | == 工具与实用程序 == | ||
* [[Exporters]] (Maya and Photoshop) | |||
* [https://forum.paradoxplaza.com/forum/threads/information-and-faq.924764/ Clausewitz Maya Exporter]: 一个可以创建和导出3D模型并且在CK3和其他Clausewitz游戏中使用的工具。 | |||
* [https://github.com/Wunkolo/UWPDumper UWPDumper]: a tool to extract files from Microsoft Store games. | |||
*[https://forum.paradoxplaza.com/forum/forums/crusader-kings-iii-user-mods.1080/ CK3 User Mods] P社论坛 | == 外部链接 == | ||
*[https://discord.gg/ck3 Crusader Kings] 官方Discord模组频道。Go to the server-roles channel and choose CK3 Modding in the [https://discordapp.com/channels/616881873506795550/710484698924711976/710490306788982804 Channel Access post]. | * [https://forum.paradoxplaza.com/forum/forums/crusader-kings-iii-user-mods.1080/ CK3 User Mods] P社论坛 | ||
*[https://discord.gg/apEvxDZ CK3 Mod Coop] A community Discord server dedicated to modding for CK3. | * [https://discord.gg/ck3 Crusader Kings] 官方Discord模组频道。Go to the server-roles channel and choose CK3 Modding in the [https://discordapp.com/channels/616881873506795550/710484698924711976/710490306788982804 Channel Access post]. | ||
* [https://discord.gg/apEvxDZ CK3 Mod Coop] A community Discord server dedicated to modding for CK3. | |||
<br> | <br> |