建筑模组制作

本页面所适用的版本可能已经过时,最后更新于2.8


Constructed buildings of a castle holding

建筑很容易制作一个模组。

建筑定义在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

注意:

  • 可以使用将变量tax_income设置为负数来模拟建筑物的维护。
  • 持有者只能处理整个持有类型中的一个特殊单位,因此一旦持有者已经定义了一个特殊的单位,(比如,建造来一个将马弓箭手添加到领主税中的建筑物), 那么将忽略该类型中其他的特殊单位。
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
		}
	}
}