编辑“模组制作

警告:您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您登录创建一个账户,您的编辑将归属于您的用户名,且将享受其他好处。

该编辑可以被撤销。 请检查下面的对比以核实您想要撤销的内容,然后发布下面的更改以完成撤销。

最后版本 您的文本
第1行: 第1行:
{{Version|timeless}}{{需要翻译}}
{{Version|timeless}}{{需要翻译}}
'''模组制作'''('''Modding'''),或者说创建[[ 模组]] ,是一种修改游戏资源或行为的方式,有时候仅仅是为了个人使用,有时候制作者也会发布出来供其它玩家一起使用。可以通过以下途径了解mod制作[https://mods.paradoxplaza.com/games/ck3 Paradox Mods]和[https://steamcommunity.com/app/1158310/workshop/ Steam Workshop]。
'''模组制作'''('''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的水平。


大多数模组会改变校验码, 这在1.9版本之前的游戏中 将禁 成就。在{{Cite file|Crusader Kings III\game}}中的{{Cite file|checksum_manifest.txt}}查看校验文件夹和文件。 不会改变校验码 的是替换纹理、字体、着色器或音乐的模组。
''重要'': 大多数模组会改变校验码,将禁 止玩家获得 成就。在{{Cite file|Crusader Kings III\game}}中的{{Cite file|checksum_manifest.txt}}查看校验文件夹和文件。 唯一安全 的是替换纹理、字体、着色器或音乐的模组。


== 提示 & 指引==
== 提示 & 指引==
第12行: 第12行:
*'''创建一个mod对游戏进行修改''': 即使是很小的改动,也不要直接修改CK3游戏本体的游戏文件,而是要单独创建一个mod。因为本体更新时会直接覆盖这些修改,并且没有任何提示。
*'''创建一个mod对游戏进行修改''': 即使是很小的改动,也不要直接修改CK3游戏本体的游戏文件,而是要单独创建一个mod。因为本体更新时会直接覆盖这些修改,并且没有任何提示。
*'''使用好的文本编辑器''' 用来编辑和搜索文件。以下软件均免费:
*'''使用好的文本编辑器''' 用来编辑和搜索文件。以下软件均免费:
**[https://code.visualstudio.com/ Visual Studio Code].  可使用[https://marketplace.visualstudio.com/items?itemName=dragon-archer.paradox-highlight Paradox Highlight]插件为Crusader Kings III和其它Paradox Games提供最新版的语法高亮。还 有一个粉丝自制的CWTools扩展,具有Paradox语法高亮、验证以及触发器和效果的工具提示。要安装它,请到VS左侧面板的扩展,搜索CWTools。(注意:验证规则是不完整的,会在gui和本地化文件中显示许多错误)
**[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://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://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 这个例子]。
第24行: 第24行:
* '''清晰明了的传达你的MOD的关键内容'''
* '''清晰明了的传达你的MOD的关键内容'''
**你的MOD说明应当以简短并清晰的描述开始,说明你的MOD为游戏增添或更改的内容。切忌以长篇大论、长长的告示列表、前提条件以及安装介绍等等开头。
**你的MOD说明应当以简短并清晰的描述开始,说明你的MOD为游戏增添或更改的内容。切忌以长篇大论、长长的告示列表、前提条件以及安装介绍等等开头。
** 不要假设用户已经了解过这个mod了。( 如果他们已经了解了这个mod就不会再读你的描述了)
**Don't assume the person reading the description has ever heard of the mod before (if they had, they wouldn't generally be reading the description).
** 标明这个mod支不支持成就和铁人模式。 ( 即使你觉得这已经很明显了也要标出来)
**Clearly and visibly state whether your mod is Ironman-compatible. (Even if it seems obvious to you.)
* 当你订阅这个mod的steam版本时,记得移除你放在本地的mod,否则这个mod可能会出现问题或者无法运行。
*Remove your local mod when you subscribe to the Steam version, otherwise it may not work in the game.
* 记得保存和备份。要么手动保存要么存在github一类的地方。Github同时也是合作制作mod的好工具。
*Backup your work. Either manually or with a source control system like Git. Also consider using GitHub for team collaboration.
* [https://winmerge.org/?lang=en WinMerge] 一类的工具来合并文件夹,更新、修改文件以及打补丁。
*Use a proper merge tool (like [https://winmerge.org/?lang=en WinMerge]) to merge between folders and update modified files for a new patch.
* 当你想要换掉大量的文字时,最好使用正则表达式。 所有上面提到的编辑器都可以用. 资源: [https://regexone.com/ RegexOne], [https://regexr.com/ RegExr].
*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].


===本地化文件===
===本地化文件===
第36行: 第36行:
*为了保证游戏正确读取文件,文件名需要以'''*l_<language>.yml'''形式保存。例如'''council_l_english.yml'''。
*为了保证游戏正确读取文件,文件名需要以'''*l_<language>.yml'''形式保存。例如'''council_l_english.yml'''。
** 你必须使用美式拼写"localization"。使用英式拼写"localization"会无法运行。
** 你必须使用美式拼写"localization"。使用英式拼写"localization"会无法运行。
* 如果要重写原始的本地化数值, 将你修改过的文件放入名为localization文件夹内名为"replace" 的文件夹.
* To overwrite existing localization values, put your files with changes into a folder named "replace" within the localization folder.


==创建一个模组==
==创建一个模组==
{{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.


==上传/更新模组==
==上传/更新模组==
第60行: 第60行:
==保存修改的内容==
==保存修改的内容==


保存的文件被放在:
Save files are located in:


*Windows: Documents\Paradox Interactive\Crusader Kings III\save games
*Windows: Documents\Paradox Interactive\Crusader Kings III\save games
*Linux: ~/.local/share/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!''


首先在debug模式下开一局游戏并且保存。
First start the game in the debug mode and save.


*Steam: 在Steam上右键单击游戏 -> Properties -> Set Launch Options -> 勾选debug_mode
*On Steam: right-click the game on Steam -> Properties -> Set Launch Options -> add -debug_mode


*Windows: .exe 文件创建一个快捷方式 -> 右键单击-> Properties -> add -debug_mode at the end of the Target field
*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.
# 右键单击此文件用7-Zip 或者 WinRar 提取出压缩文件.
#Right-click the save file and extract it like an archive with 7-Zip or WinRar.
#将提取出的'gamestate'文件的扩展名重名为.ck3
#将提取出的'gamestate'文件的扩展名重名为.ck3
# 右键单击并且用编辑器打开 ( 不推荐使用windows notepad,因为这些文件很大).
#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(不需要重复压缩)。
#游戏中会直接加载mod(不需要重复压缩)。


你可以直接编辑自动保存的游戏without extracting the gamestate.
Autosaves can be edited directly without extracting the gamestate.


Mac:
Mac:
第105行: 第105行:
|}
|}


=== 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 mw-collapsible mw-collapsed"
{| class="wikitable"
! Block
!Block
! Description
!Description
|-
|-
| meta_data
|meta_data
| Contains metadata about the game, such as the game version. Used by the main menu screen.
|Contains metadata about the game, such as the game version. Used by the main menu screen.
|-
|-
| ironman_manager
|ironman_manager
| Related to ironman saving.
|Related to ironman saving.
|-
|-
| (various variables)
|(various variables)
| These variables do not belong in a block.
|These variables do not belong in a block.
{| class="wikitable"
{| class="wikitable"
! Variable
!Variable
|-
|-
| date
|date
|-
|-
| bookmark_date
|bookmark_date
|-
|-
| first_start
|first_start
|-
|-
| speed
|speed
|-
|-
| random_seed
|random_seed
|-
|-
| random_count
|random_count
|}
|}
|-
|-
| variables
|variables
| Contains script flags.
|Contains script flags.
|-
|-
| game_rules
|game_rules
| Contains the save's current game rules.
|Contains the save's current game rules.
|-
|-
| provinces
|provinces
| Contains province data, including buildings.
|Contains province data, including buildings.
|-
|-
| landed_titles
|landed_titles
| Contains the following sub-blocks:
|Contains the following sub-blocks:
{| class="wikitable"
{| class="wikitable"
! Sub-block
!Sub-block
! Description
!Description
|-
|-
| dynamic_templates
|dynamic_templates
|
|
|-
|-
| landed_titles<br>''(repetition)''
|landed_titles<br>''(repetition)''
| Contains an entry for each landed title in the game, in the format:
|Contains an entry for each landed title in the game, in the format:
<pre>
<pre>
# Exact formatting in file is different in terms of spaces and lines
# Exact formatting in file is different in terms of spaces and lines
第216行: 第216行:
In vanilla CK3, this block ends at entry ~12369.
In vanilla CK3, this block ends at entry ~12369.
|-
|-
| index=(value)<br>''(variable)''
|index=(value)<br>''(variable)''
|
|
|}
|}
|-
|-
| dynasties
|dynasties
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* dynasty_house (ends at entry ~6401)
 
* dynasties (ends at entry ~6239)
*dynasty_house (ends at entry ~6401)
* static_dynasties (list of numbers)
*dynasties (ends at entry ~6239)
* static_dynasty_houses (list of numbers)
*static_dynasties (list of numbers)
*static_dynasty_houses (list of numbers)
|-
|-
| deleted_characters
|deleted_characters
|
|
|-
|-
| living
|living
| Contains entries of living characters. The following format is used for each character:
|Contains entries of living characters. The following format is used for each character:
<pre>
<pre>
index={
index={
first_name="..."
first_name="..."
birth=(date) # Format: yyy.m.d
birth=(date)
female=yes # Optional
female=yes # Optional
was_playable=yes # Optional
culture=(culture index)
nickname="nick_..." # Optional
faith=(faith index)
culture=(culture index) # Optional if dynasty_house is specified, defaults to dynasty_house culture. Required if no dynasty_house, or culture different from that of dynasty_house.
dynasty_house=(dynasty house index) # Optional
faith=(faith index) # Optional if dynasty_house is specified, defaults to dynasty_house faith.  Required if no dynasty_house or faith different from that of dynasty_house.
dynasty_house=(dynasty house index) # Optional, must specify culture and faith if omitted
skill={ (diplomacy) (stewardship) (martial) (intrigue) (learning) (prowess) } # One value for each skill
skill={ (diplomacy) (stewardship) (martial) (intrigue) (learning) (prowess) } # One value for each skill
prowess_age=(value) # Optional. Negative value.
sexuality=(sexuality id) # Optional
dna="(dna string)" # Optional
dna="(dna string)" # Optional
mass=(value) # Optional, exclusive with weight
mass=(value) # Optional
weight={ # Optional, exclusive with mass
traits={ (trait index...) } # List of trait indices
base=(value)
current=(value) # Optional
target=(value) # Optional
}
 
sexuality=(value) # Optional. Defaults to heterosexual. Valid values: ho, bi, as, none. None is for children under 10.
traits={ (trait index...) } # Optional. List of trait indices. Typically omitted for young children.
recessive_traits = { (trait index...) } # Optional. List of trait indices
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={
real_father=(character id) # Optional
primary_spouse=(character id)
betrothed=(character id) # Optional
spouse=(character id)
primary_spouse=(character id) # Optional. Equal to one of the spouse ids.
child = { (character id...) } # List of character ids
spouse=(character id) # Optional. First spouse
spouse=(character id) # Optional. Second spouse
spouse=(character id) # Optional. Third spouse
spouse=(character id) # Optional. Fourth spouse
concubine=(character id) # Optional. First concubine
concubine=(character id) # Optional. Second concubine
concubine=(character id) # Optional. Third concubine
former_spouses={ (character id...) } # Optional. List of character ids
former_concubines={ (character id...) } # Optional. List of character ids
former_concubinists={ (character id...) } # Optional. List of character ids
child = { (character id...) } # Optional. List of character ids
}
}


第282行: 第262行:
# (...)
# (...)
}
}
}
# Optional (modifiers), various locations in alive_data
modifier={
modifier="(modifier)"
expiration_date=(date)
}
}


第293行: 第267行:
income=(value) # Optional
income=(value) # Optional
location=(landed title index) # Optional
location=(landed title index) # Optional
stress=(value) # Optional
fertility=(value)
fertility=(value)
health=(value)
health=(value)
piety={
piety={
currency=(value)
currency=(value)
accumulated=(value) # Optional. Devotion
accumulated=(value) # Optional
}
}
prestige={
prestige={
currency=(value) # Optional
currency=(value)
accumulated=(value) # Optional. Fame
accumulated=(value) # Optional
}
}
focus={ # Optional
weight_update=(value)
type="(value)" # Education or lifestyle
date=(date)
changes=(value)
progress=(value)
}
secrets= { (id...) } # Optional. List of ids
targeting_secrets={ (id...) } # Optional. List of ids
schemes={ (id...) } # Optional. List of ids
targeting_schemes={ (id...) } # Optional. List of ids
heir={ (ids...) } # Optional. List of ids
pretender={ (ids...) } # Optional. List of ids
claim={ { # Optional. List of claims
title=(title id)
pressed=yes # Optional
}
}
used_punishments={ # Optional. List of reasons
(value)={
imprisonment_reason=yes # Optional
revoke_title_reason=yes # Optional
}
}
lifestyle_xp={ # Optional
diplomacy_lifestyle=(value) # Optional
martial_lifestyle=(value) # Optional
stewardship_lifestyle=(value) # Optional
intrigue_lifestyle=(value) # Optional
learning_lifestyle=(value) # Optional
}
perk={ ... } # Optional. List of perks
prison_data={ # Optional
imprisoner=(character id)
date=(date)
imprison_type_date=(date)
type="(value)" # house_arrest or dungeon
}
weight_update=(value) # Optional
kills={ (character ids... } # Optional. List of character ids
pool_history=(date) # Optional
wars={ (value) (value) (value) (value) } # Optional
} # 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
host=(value)
employer=(character id)
employer=(character id)
council_task=(council task index)
council_task=(council task index)
special_council_tasks={ (value...) }
army=(value)
regiment=(regiment index)
regiment=(regiment index)
knight=yes
knight=yes
wants_to_leave_court=yes
leave_court_date=(date)
}
}


第364行: 第292行:
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
units= { (values...) } # Optional
last_war_finish_date=(date) # Optional
last_raid=(date) # Optional
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)
strength_for_liege=(value) # Optional
liege_tax=(value) # Optional
balance=(value)
balance=(value)
dread=(value) # Optional
known_schemes={ (ids...) } # Optional. List of ids
succession={ (character id...) } # List of character ids
succession={ (character id...) } # List of character ids
is_powerful_vassal=yes # Optional
vassal_power_value=(value) # Optional
domain_limit=(value)
domain_limit=(value)
vassal_limit=(value) # Optional
vassal_limit=(value)
vassals_towards_limit=(value) # Optional
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行: 第307行:
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
absolute_control=yes # Optional
interaction_cooldowns={ # Optional
(interaction)=(date)
}
} # End of landed_data block
} # End of landed_data block


第404行: 第319行:
</pre>
</pre>
|-
|-
| dead_unprunable
|dead_unprunable
| Contains character entries.
|Contains character entries.
|-
|-
| characters
|characters
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* dead_prunable (contains character entries)
 
* prune_queue
*dead_prunable (contains character entries)
* dummy_female (contains a character entry)
*prune_queue
* dummy_male (contains a character entry)
*dummy_female (contains a character entry)
* unborn (contains unborn data entries)
*dummy_male (contains a character entry)
* natural_deaths
*unborn (contains unborn data entries)
* current_natural_death
*natural_deaths
* sexuality_chances
*current_natural_death
*sexuality_chances
|-
|-
| character_lookup
|character_lookup
|
|
|-
|-
| units
|units
|
|
|-
|-
| activities
|activities
|
|
|-
|-
| opinions
|opinions
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* active_opinions (contains opinion entries)
 
*active_opinions (contains opinion entries)
|-
|-
| relations
|relations
| Encompasses hooks, alliances, Contains the following sub-blocks:
|Encompasses hooks, alliances, Contains the following sub-blocks:
* active_relations
 
*active_relations
|-
|-
| schemes
|schemes
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* active (contains scheme entries)
 
*active (contains scheme entries)
|-
|-
| stories
|stories
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* active (contains story entries)
 
* next=(date) ''(variable)''
*active (contains story entries)
*next=(date) ''(variable)''
|-
|-
| pending_character_interactions
|pending_character_interactions
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* data
 
* player
*data
*player
|-
|-
| secrets
|secrets
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* secrets (contains entries of secrets) ''(repetition)''
 
** indices
*secrets (contains entries of secrets) ''(repetition)''
*** type
*known_secrets
*** target
**** type
**** identity=(id)
*** owner=(id)
*** relation_type
*** participants = { (ids)}
* known_secrets = {
** secret=(id)
** owner=(id)
|-
|-
| armies
|armies
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* regiments
 
* army_regiments
*regiments
* armies
*army_regiments
*armies
|-
|-
| religion
|religion
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* religions
 
* faiths
*religions
* great_holy_wars
*faiths
* holy_sites
*great_holy_wars
*holy_sites
|-
|-
| wars
|wars
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* active_wars
 
* names
*active_wars
*names
|-
|-
| sieges
|sieges
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* sieges ''(repetition)''
 
*sieges ''(repetition)''
|-
|-
| raid
|raid
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* raid ''(repetition)''
 
*raid ''(repetition)''
|-
|-
| succession
|succession
|
|
|-
|-
| holdings
|holdings
|
|
|-
|-
| ai
|ai
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* war_coordinator_db
 
* war_plan_db
*war_coordinator_db
* ai_stategies
*war_plan_db
*ai_stategies
|-
|-
| county_manager
|county_manager
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* counties
 
* monthly_increase (list of values)
*counties
*monthly_increase (list of values)
|-
|-
| fleet_manager
|fleet_manager
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* fleets
 
*fleets
|-
|-
| council_task_manager
|council_task_manager
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* active
 
*active
|-
|-
| important_action_manager
|important_action_manager
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* active
 
*active
|-
|-
| faction_manager
|faction_manager
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* factions
 
*factions
|-
|-
| culture_manager
|culture_manager
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* cultures
 
* template_cultures (list of numbers)
*cultures
* era_discovery
*template_cultures (list of numbers)
*era_discovery
|-
|-
| mercenary_company_manager
|mercenary_company_manager
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* mercenary_companies
 
*mercenary_companies
|-
|-
| holy_orders
|holy_orders
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* holy_orders
 
* religion_name
*holy_orders
* faith_name
*religion_name
*faith_name
|-
|-
| coat_of_arms
|coat_of_arms
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* coat_of_arms_manager_name_map
 
* coat_of_arms_manager_database (ends at entry ~17278)
*coat_of_arms_manager_name_map
* next_id=(id) ''(variable)''
*coat_of_arms_manager_database (ends at entry ~17278)
*next_id=(id) ''(variable)''
|-
|-
| (triggered events)
|(triggered events)
| Each triggered event has its own block, started using triggered_event={
|Each triggered event has its own block, started using triggered_event={
|-
|-
| next_player_event_id=(value) ''(variable)''
|next_player_event_id=(value) ''(variable)''
|
|
|-
|-
| played_character
|played_character
| Contains the following sub-blocks:
|Contains the following sub-blocks:
* name="..." ''(variable)''
 
* character=(character id) ''(variable)''
*name="..." ''(variable)''
* player=(value) ''(variable)''
*character=(character id) ''(variable)''
* important_decisions
*player=(value) ''(variable)''
* legacy
*important_decisions
* rally_points
*legacy
*rally_points
|-
|-
| currently_played_characters={ (character id...) }
|currently_played_characters={ (character id...) }
| List of character ids.
|List of character ids.


|}
|}


== 从Microsoft Store 版本中提取文件==
==Extracting files From Microsoft Store version==
你可以用UWPDumper来提取文件。
If you want to read the files using the Microsoft Store version, you can use a program called UWPDumper to extract the files.


# 下载最新的x64版本的[[Modding#Tools & utilities|UWPDumper]]
#Download the latest x64 binary of [[Modding#Tools & utilities|UWPDumper]]
# 打开开发者模式 (Windows 设置 -> 更新和安全> 开发者选项-> 开发人员模式)
#Enable Developer Mode (Windows Settings -> Update and Security -> For Developers -> Developer Mode).
# 运行ck3.
#Run CK3.
# 运行你刚刚下载的UWPInjector.exe.
#Run UWPInjector.exe from the program you just downloaded.
# 输入ck3.exe 旁边的数字作为processID: ParadoxInteractive.ProjectTitus_zfnrdv2de78ny.
#Enter the number next to ck3.exe : ParadoxInteractive.ProjectTitus_zfnrdv2de78ny as the processID.
# 查看他储存文件的地址 ( 可能类似于 C:\Users\%USERPROFILE%\AppData\Local\Packages\ParadoxInteractive.ProjectTitus_zfnrdv2de78ny\TempState\DUMP
#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.


之后这些文件就会被放到上面提到的地址处。如果你想修改这些文件,创建一个mod并且把你想改的文件复制进去。
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.


==工具与实用程序==
==工具与实用程序==


*[https://marketplace.visualstudio.com/items?itemName=dragon-archer.paradox-highlight Paradox Highlight]: 一个为CK3和其它Paradox游戏代码文件提供语法高亮的VSCode插件。
*[[Exporters]] (Maya and Photoshop)
*[[Exporters]] (Maya and Photoshop)
*[https://forum.paradoxplaza.com/forum/threads/information-and-faq.924764/ Clausewitz Maya Exporter]: 一个可以创建和导出3D模型并且在CK3和其他Clausewitz游戏中使用的工具。
*[https://forum.paradoxplaza.com/forum/threads/information-and-faq.924764/ Clausewitz Maya Exporter]: 一个可以创建和导出3D模型并且在CK3和其他Clausewitz游戏中使用的工具。
请注意您对十字军之王3百科的所有贡献都被认为是在知识共享署名-非商业性使用-相同方式共享下发布,请查看在十字军之王3百科:版权的细节。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源。 未经许可,请勿提交受版权保护的作品!

为防止机器编辑,请完成下方验证

取消 编辑帮助(在新窗口中打开)