建筑修改

关于该游戏机制的说明,参见建筑

建筑的定义文件位于/Europa Universalis IV/common/buildings/。

添加建筑

所有建筑都必须使用唯一的名称。一个建筑遵循以下格式:

# ROOT: 省份
# FROM: 拥有国
<name> = {
    cost = <int>                # 建筑造价,以达克特计
    time = <months>             # 建造该建筑所需的时间(以月计)
    make_obsolete = <building>  # 可选,建成该建筑后使列出的建筑变为过时

    one_per_country = yes           # 可选,限制每个国家只能建造一座
    allow_in_gold_provinces = no    # 可选,该建筑是否可以在产金省份建造
    indestructible = yes            # 可选,使该建筑不会因破产而被拆除
    onmap = yes                     # 可选,该建筑是否应在地图上显示3D模型
    influencing_fort = yes          # 可选,该建筑是否按要塞方式运作
    show_separate = yes             # 可选,工场是否在建筑菜单中单独显示,还是合并为一个工场条目

    # 可选。将建筑的可见性限制为满足触发条件的对象。注意:即使不满足要求,红框仍可能可见。
    potential = {
        <triggers>
    }

    # 可选。拥有所列贸易品的省份可以建造该建筑。
    manufactory = {
        <tradegoods>
    }

    # 可选。拥有所列贸易品的省份将获得bonus_modifier中的修正。
    bonus_manufactory = {
        <tradegoods>
    }

    # 可选。省份作用域。若不满足则限制该建筑的建造。
    build_trigger = {
        <triggers>
    }

    # 可选。省份作用域。若不再满足条件,该建筑将被移除。
    keep_trigger = {
        <triggers>
    }

    # 该建筑赋予省份的修正。
    # 此处使用的国家作用域修正将改为作用于该建筑拥有国。
    modifier = {
        <modifiers>
    }

    # 可选。若省份拥有bonus_manufactory中所列的贸易品之一,该建筑赋予省份的修正。
    # 此处使用的国家作用域修正将改为作用于该建筑拥有国。
    bonus_modifier = {
        <modifiers>
    }

    # AI对建造该建筑的重视程度。
    ai_will_do = {
        factor = <float>
    }

    # 可选。建成时触发的行动。
    # THIS = 省份,FROM = 建造者(不一定是拥有者,也可能是宗主国)
    on_built = {

    }

    # 可选。被拆除时(非过时)触发的行动。
    # THIS = 省份,FROM = 拆除者
    on_destroyed = {

    }

    # 可选。变为过时时(非拆除)触发的行动。
    # THIS = 省份,FROM = 拆除者
    on_obsolete = {

    }
}

关于ai_will_do,它的用法并不直观。由于建筑AI主要是硬编码的,AI现在会估算每座建筑每年能带来多少收益,并将该数值换算为达克特。年收益占建造成本百分比最高的建筑会被优先建造。

注意:

  • 若年收益低于1%,AI将不会考虑建造该建筑。
  • 当AI经济状况不佳时,其所要求的年收益会相应提高。
  • 要塞的年收益取决于地形、战略位置以及可用于要塞维护的预算。

ai_will_do现在只是简单地将年收益与ai_will_do的数值相乘。这意味着将ai_will_do设为0会使AI永远不会建造该建筑。

对于非经济类建筑,AI默认将每座建筑的基础价值视为每年0.01达克特。将ai_will_do提高到超过建筑造价,可以让AI考虑建造这类建筑。

例如,下面这座建筑目前永远不会被建造,因为它的年收益只有0.01%。

cultural_centre = {
	cost = 100
	time = 12

	modifier = {
		local_culture_conversion_cost = -0.1
	}

	ai_will_do = {
		factor = 1
	}
}

要让AI在某个时刻考虑建造这座建筑,应将ai_will_do在稳定度高于1时提高到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格式。

图标定义需要写在interface文件夹下的.gfx文件中。在该.gfx文件里添加如下内容:

# ...
spriteType = {
    name = "GFX_<building>"
    texturefile = "gfx//interface//buildings//<building icon>.tga"
    loadType = "INGAME"
}
# ...

此外,修改建筑时还必须手动编辑建筑界面。你需要同时编辑provinceview.gui和macrobuildinterface.gui这两个文件。两处的界面代码可以相同,因此可以先专注编辑其中一处,完成后再将代码复制粘贴到另一处。

包含建筑列表的windowType在provinceview.gui中名为new_buildings_entry2,在macrobuildinterface.gui中名为new_buildings_entry。

虽然你无疑还需要修改更多内容,但每座建筑必须添加的两项关键内容是instantTextBoxType和checkboxType。它们遵循以下格式:

checkboxType = {
    name = "build_<building>"
    position = { x = 9 y = 32 }
    quadTextureSprite = "GFX_courthouse_muslimgfx" #占位符,实际使用的贴图由游戏根据按钮名称决定。
}

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 or religion group>: "备用名称"
 building_<building>_<religion or religion group>_desc: "备用描述"
文档 效果 • 触发条件 • 修正列表 • 作用域 • 变量 • 本地化 • 可自定义本地化 • 运行文件 • 事件图片列表
脚本 脚本函数 • 顾问 • 时代 • 开局设定 • 建筑 • 宣战理由 • 殖民区域 • 国家创建 • 文化 • 决议 • Defines • 外交行动 • 灾难 • 中华帝国 • 阶层 • 事件 • 派系 • 政府 • 政府互动 • 伟大工程 • 历史 • 神圣罗马帝国 • 理念组 • 思潮 • 佣兵 • 任务树 • 修正 • On Actions • 议会 • 和约 • 君主性格 • 政策 • 叛军类型 • 宗教 • 附属国类型 • 科技 • 贸易公司 • 商品 • 单位
地图 地图 • 地图修改速查 • 随机新世界 • 贸易节点
图形 3D模型 • 界面 • 贴图库 • 字体 • 单位模型
音频 音乐 • 音效
其他 控制台命令 • 校验和 • 模组结构 • 故障排查 • 运行文件
工具 克劳塞维茨开局编辑器 • EU4模组编辑工具 • JoroDox模组制作工具 • The Validator
指南 省份 • 地图修改速查 • 存档编辑 • 脚本教程