建筑很容易制作一个模组。
建筑定义在common\buildings\文件夹。
Structure
变量名称 | 变量类型 | 变量说明 | 代码示例 |
---|---|---|---|
potential | conditions (province scope) | 决定该建筑是否出现在持有的建筑清单上。值为FROM表示定居点持有者(一个角色), FROMFROM代表持有中(一个男爵领头衔)。 | potential = { religion = catholic } |
desc | Key | 建筑物描述的本地化键,在建筑物的工具提示中显示。一般按照 <building_name>_desc的习惯。 | desc = shipyard_desc |
add_number_to_name | bool | 使游戏使用一级建筑名称,并在其后添加数字以命名更高级别的建筑。 | add_number_to_name = no |
replaces | building | 被替换的建筑将无法施工,就算potential 变量能匹配也不行。警告: 不要取代建筑链中的一个ck2建筑! 先决条件不允许检查被替换的建筑。
|
ca_steppe_barracks_1 = { replaces = ca_barracks_1 } |
trigger | conditions (province scope) | 能够建造这座建筑的要求。 | trigger = { TECH_CASTLE_CONSTRUCTION = 0 } |
is_active_trigger | conditions (province scope) | 除非满足触发条件,否则建筑不会将在控制者下启用修正。 | is_active_trigger = { location = { OR = { port = yes borders_major_river = yes borders_lake = yes } } } |
port | bool | 是否只能建设在沿海省份。警告: 如果该伯爵领没有统治者,则会检查失败,所以如果你的mod依赖于让游戏在开始新游戏时自动创建统治者,请小心。 | port = yes |
prerequisites | List<building> | 建设该建筑物前要求先拥有其他建筑物 | ca_steppe_barracks_2 = { prerequisites = { ca_wall_1 } } |
not_if_x_exists | List<building> | 如果另一个(些)建筑物存在则不能建造该建筑物。 | not_if_x_exists = { ca_walls_1 ca_walls_2 } |
upgrades_from | building | 该建筑会升级并替换另一个建筑物,但是建筑物修正会累积下来。 | upgrades_from = tb_training_grounds_1 |
gold_cost | int | 建造花费多少金币,与“以威望或虔诚为代价”的花费类型互相排斥。 | gold_cost = 150 |
prestige_cost | int | 建造花费多少威望,与“以金币或虔诚为代价”的花费类型互相排斥。 | prestige_cost = 300 |
piety_cost | int | 建造花费多少虔诚,与“以威望或金币为代价”的花费类型互相排斥。. | piety_cost = 100 |
build_time | int | 要用几天建造。 | build_time = 365 |
ai_creation_factor | int | AI建造该建筑物的百分比几率。 | ai_creation_factor = 95 |
ai_feudal_modifier | int | 如果ai是封建政体的,或者是部落但努力成为封建的,则修改ai的建造权重。 | ai_feudal_modifier = -10 |
ai_republic_modifier | int | 如果ai是共和政体的,或者是部落但努力成为商业共和国的,则修改ai的建造权重。 | ai_republic_modifier = 5 |
extra_tech_building_start | double | 当开始一局新游戏时。该建筑会出现在省份上,如果这个省份的科技>trigger+extra_building_start+一个0-1之间的随机数。 | extra_tech_building_start = 0.4 |
scouting | bool | 确定建筑是否提供了其所在省份的视觉效果,比如一个商业共和国的贸易港。 | scouting = yes |
convert_to_city | building | 如果持有转换为另一种类型,则建筑将转换为等效建筑 | convert_to_city = ct_wall_1 |
convert_to_castle | convert_to_castle = ca_keep_2 | ||
convert_to_temple | convert_to_temple = tp_town_1 | ||
convert_to_tribal | convert_to_tribal = tb_shipyard_1 | ||
<modifier_name> | Building modifiers | 建筑物提供的修正,比如is_active_trigger 。建筑物更新和升级时,修正会累加,详见变量upgrades_from 。
注意:
|
fort_level = 0.5 light_cavalry = 35 horse_archers = 20 knights = 10 |
代理示例
这是common\buildings\00_Castle.txt中的一段代码:
ca_keep_6 = { desc = ca_keep_1_desc trigger = { TECH_FORTIFICATIONS_CONSTRUCTION = 8 } upgrades_from = ca_keep_5 gold_cost = 500 build_time = 2190 #6y levy_size = 0.3 garrison_size = 0.2 ai_creation_factor = 97 extra_tech_building_start = 0.2 }
本地化
- <building_name>: 建筑物名称
- <building_name>_desc: 建筑物描述
- <building_name>_<religion_group>: 被宗教团体覆盖的名称(至少在寺庙建筑方面)
添加一个新的建筑物
所以,让我们假设你想在游戏中添加一个新建筑。本指南将提供如何创建基本工作建筑的基本指导。有更精细和专业的方法来完成这项任务,但它们都将建立在下面包含的基本文件结构和位置之上。
为了创建一个正常工作的建筑,您必须做出几个决定。建筑将位于哪种类型的定居点,城堡、城市还是寺庙?将对建筑物的建造地点施加何种限制?这座建筑将提供什么奖励或特征?
首先在CK2文件中找到“buildings”文件夹。它的文件路径可能是C:\Program Files\Steam\SteamApps\common\buildings。找到“buildings”文件夹后,您需要向其中一个文件中添加一个条目,该条目与您要添加的建筑物类型相对应。比如,我想要添加一个位于城堡中的,可以提供不错奖励的雕像。我要去编辑00_castle.txt。
强烈建议,在进行任何更改之前使用Notepad++编辑文件并备份此文件。
在“castle={”代码下,我将复制第一个条目的格式,稍作更改以创建自己的建筑。我最喜欢的开局地点是苏格兰的Moray,所以我将限制这座建筑只在那个省工作。我希望这座建筑始终可供我建造,成本适中,并为我的部队和收入提供一些不错的奖励。那么代码看起来似乎是这样:
castle = { ca_statue = { desc = ca_statue_desc potential = { OR = { province_id = 40 #Moray } } trigger = { always = yes } build_cost = 150 build_time = 91 knights = 50 levy_size = 0.5 tax_income = 5 } }
有大量不同的触发器和特征可以添加到建筑物中,使其独特而强大! 看看其他建筑物条目来学习如何个性化你的建筑是值得的。 这座建筑将为我的主人提供50名重步兵,50%的levy_size,以及5金币的税收!
一旦这些代码被添加到00_castle.txt file,就需要把描述的文本添加到本地化的字典里,本地化的文件可以在common文件夹下找到。
使用notepad++复制文件夹下其中一个csv文件,然后重命名为你自己的建筑。打开这个文件并删除除顶行之外的所有行(实际上第一行仅用作模板,也不是必要的)。遵循它在模板顶行中明确列出的格式,确保不要遗漏任何标点符号!如果需要,您可以添加这些翻译,只需在相应行上输入您希望出现的法语描述,以代替“法语”。我不玩其他语言的游戏,所以我没有添加任何翻译。关于我的那部分看起来像这样:
#CODE;ENGLISH;FRENCH;GERMAN;;SPANISH;;;;;;;;;x ca_statue;Heroic Statue;FRENCH;GERMAN;;SPANISH;;;;;;;;;x ca_statue_desc;This heroic statue stands as a testament for the deeds of the great men who came before and that all men can achieve greatness.;FRENCH;GERMAN;;SPANISH;;;;;;;;;x
完成这些步骤后,你应该拥有一个可以在Moray建造的雕像。
改变持有者限制
添加建筑物的一种新的持有者类型不太可能,但是你可以定义每种持有类型的条件。这些限制放在 common\holding_types\
文件夹下。The only thing supported within a holding is trigger
, 这定义了什么时候可以建设它。ROOT is the province, FROM is the builder。一些硬编码的限制也被采用并覆盖在上面。举个例子,如果你希望只有神权制政府下的角色可以建设寺庙:
temple = { trigger = { FROM = { is_theocracy = yes } } }
历史 | 角色 • 家族 • 省份 • 头衔 • 剧本 |
脚本 | 指令 • 条件 • 作用域 • 修正 • 事件 • 决议 |
常规 | 定义 • 游戏规则 • 另类开局 • 宗教 • 文化 • 政体 • 特质 • 血脉 • 科技 • 法律 • 建筑 • 宣战理由 • 朝贡国 • 单位 • 目标 • 疾病 • 死亡 • 荣誉头衔 • 社团 • 宝物 • 地图外政权 • 内阁成员 • 贸易路线 • 继承 • 奇观 • 称号 |
图像/音效/本地化 | 地图 • 图形 • 盾徽 • 肖像 • 界面 • 小地图 • 音乐 • 本地化 |
其他 | 故障排除 • 验证器 • 控制台指令 • 编辑游戏存档 • Steam创意工坊 • EU4转档器模组制作 |