建筑能在 /Europa Universalis IV/common/buildings/ 找到。
添加建筑
所有建筑都必须有独一无二的名称。建筑的编写格式如下:
# ROOT: 建造建筑的省份 # FROM: 建筑所有国 <name> = { cost = <int> # 花费 time = <months> # 建造时间 make_obsolete = <building> # 可选,在此建筑建设时令<building>所指建筑过时。(即为升级) one_per_country = yes # 可选,决定该建筑是否一个国家只能有一个 allow_in_gold_provinces = no # 可选,决定是否允许在出产金矿(以及其他goldlike货物)建设本建筑 indestructible = yes # 可选,决定该建筑是否在破产时不被摧毁 onmap = yes # 可选,决定该建筑是否在3D地图上显示一个模型 influencing_fort = yes # 可选,决定该建筑是否有要塞封锁功能 # 可选,省份商品为所列之一的省份才能建造该建筑 manufactory = { <tradegoods> } # 可选。满足所列条件的省份才能建造并维持该建筑。该条件为省份域 build_trigger = { <triggers> } # 该建筑给予所在省份的修正 # 若在此处写入国家域的修正,会直接影响拥有这个省份的国家 modifier = { <modifiers> } # AI建造该建筑的权重 ai_will_do = { factor = <float> } # 可选,建造该建筑时执行的指令 # THIS = 省份, FROM = 执行建造的国家(不一定是拥有国,可以是它的宗主) on_built = { } # 可选,摧毁该建筑时执行的指令(与升级时不同) # THIS = 省份, FROM = 执行摧毁的国家 on_destroyed = { } # 可选,升级该建筑时执行的指令(与摧毁时不同) # THIS = 省份, FROM = 执行升级的国家 on_obsolete = { } }
ai_will_do项并非随意填写,因为AI的建造逻辑是写死的(hard-coded),AI将会估计每一种建筑给它带来的收益。它们总是会建设那些高收益百分比的建筑。.
注意:
- 如果建筑的年回报率小于1%,那么AI将不会建造本建筑。
- 在AI面对经济困境时,它要求的年回报率更高。
- 堡垒将会以所在地地形、策略位置和维护预算来计算“年回报率”。
ai_will_do项目将会直接与年回报率相乘,意味着把它设置为0将不会让AI建造本建筑。
对于非经济类的建筑(堡垒除外),AI认为年回报量为0.01金币/年。提高ai_will_do数值将会让AI去考虑建设它们。
举个例子,AI永远不会建设下面的“文化中心”,因为它的年回报率是0.01%。
cultural_centre = { cost = 100 time = 12 modifier = { local_culture_conversion_cost = -0.1 } ai_will_do = { factor = 1 } }
为了让AI考虑建设此建筑,可以设定在稳定度大于等于1时, ai_will_do变为105,使得年回报率变为1.05%, 这样AI就会考虑建设它。
cultural_centre = { cost = 100 time = 12 modifier = { local_culture_conversion_cost = -0.1 } ai_will_do = { factor = 1 modifier = { factor = 105 FROM = { stability = 1 } } } }
科技
为了让建筑出现在游戏中,它们必须被添加到某种科技。科技文件能在 /Europa Universalis IV/common/technologies/ 找到。
在一个科技内,添加建筑像这样:
technology = { # ... <building> = yes }
界面
建筑需要定义图标才能正确地出现在游戏中。建筑图标的缺省尺寸是48乘以48,并且被保存为 .tga
或 .dds
格式。
图标定义(icon definition)需要写一个 .gfx
文件,在 interface 文件夹。在这个 .gfx
文件中,添加下列:
# ... spriteType = { name = "GFX_<building>" texturefile = "gfx//interface//buildings//<building icon>.tga" loadType = "INGAME" } # ...
此外,当你更改建筑时必须手动编辑建筑界面。你需要一起编辑 provinceview.gui
和 macrobuildinterface.gui
。界面代码在两处能是相同的,所以专注于一处然后复制并粘贴完成的代码到另一处。
包含建筑的 windowType 被叫做 new_buildings_entry2
在 provinceview.gui
以及 new_buildings_entry
在 macrobuildinterface.gui
。
尽管你毫无疑问需要编辑更多,你每个建筑需要的两条至关重要的附加项目是 instantTextBoxType 和 checkboxType。它们遵循这个格式:
checkboxType = { name = "build_<building>" position = { x = 9 y = 32 } quadTextureSprite = "GFX_courthouse_muslimgfx" #Placeholder, real sprite is decided by game (based on button name). } instantTextBoxType={ name = "<building>_cost" position = {x = 9 y = 82 } font = "vic_18" borderSize = {x = 0 y = 0} maxWidth = 128 maxHeight = 18 text = "2000¤" }
本地化
建筑遵循这个格式:
building_<building>: "名称" building_<building>_desc: "描述"
你能依据宗教组给建筑添加不同的本地化,使用下列格式:
building_<building>_<religion group>: "另一个名称在这里" building_<building>_<religion group>_desc: "另一个描述在这里"
参考资料
建筑代码关键字
常规建筑
- -
courthouse
-法院
- -
town_hall
-市政厅
- -
university
-大学
- -
workshop
-工坊
- -
counting_house
-会计室
- -
temple
-教堂
- -
cathedral
-大教堂
- -
shipyard
-造船厂
- -
grand_shipyard
-大船厂
- -
dock
-船坞
- -
drydock
-干船坞
- -
marketplace
-集市
- -
trade_depot
-贸易仓库
- -
stock_exchange
-证券交易所
- -
coastal_defence
-岸防工事
- -
naval_battery
-海防炮台
- -
barracks
-兵营
- -
training_fields
-训练营
- -
regimental_camp
-军营
- -
conscription_center
-征召中心
防御类型建筑
工厂
版本沿袭
1.29版本的建造条件并非是“build_trigger”而是“trigger”
文档 | 效果指令 • 触发条件 • 修正 • 作用域 • 变量 • 本地化 • 可定制的本地化 |
脚本 | 顾问 • 时代 • 书签 • 建筑 • 宣战理由 • 殖民区域 • 新建国家 • 文化 • 决议 • 定义 • 外交行动 • 灾难 • 阶层• 事件 • 派系 • 政府 • 政府互动(1.35) • 伟大工程 • 历史 • 理念组 • 思潮 • 任务树 • 修正 • 自定义国家 • 政策 • 宗教 • 叛军 • 附属国类型 • 科技 • 贸易公司 • 商品 • 单位 • 旗舰 |
地图 | 地图 • Map Modding Quick Reference• 随机新世界 • 贸易节点 |
图形 | 3D模型 • 界面 • 贴图库 • 字体 • 粒子特效 • 着色器 • 兵模 |
音频 | 音乐 • 音效 |
其它 | 控制台指令 • 校验码 • JoroDox模组制作工具 • Mod文件结构 • Mod错误调试 • 验证器 • 运行文件 |
教程 | 添加省份 • 成就修改 • On actions • 模组制作 |