建築模組製作

本頁面所適用的版本可能已經過時,最後更新於2.8
(重新導向自Buildings (modding)


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
		}
	}
}