单位修改

修改单位

游戏中的所有单位都存放在/Europa Universalis IV/common/units/。

陆军单位

要添加新的历史陆军单位(例如 halberd_infantry),请在/Europa Universalis IV/common/units/目录下创建一个文件,格式如下:

type = <internal type>              # 内部类型之一
unit_type = <technology group>      # 可选。该单位出现的科技组。省略则该单位对所有科技组显示。

maneuver = <int>                    # 步兵和炮兵为 1,骑兵为 2
offensive_morale = <int>
defensive_morale = <int>
offensive_fire = <int>
defensive_fire = <int>
offensive_shock = <int>
defensive_shock = <int>

manpower = <float>                  # 可选。覆盖该单位的人力成本和团规模。1 代表 1000 名士兵。小数前请补 0(0.1),否则无效。

# 可选,满足触发条件时将该单位作为可选项显示。
trigger = {
    <triggers>
}

陆军单位可以属于以下三种内部类型之一:

infantry
cavalry
artillery

注 1:修改单位的 manpower 不会改变战斗公式,这意味着规模较小的团在战斗中表现会很差。

注 2:unitsize 属性已被移除,因为它似乎没有任何作用。manpower 属性同时影响人力成本和团的实际规模。

海军单位

要添加新的历史海军单位(例如 barque),请在/Europa Universalis IV/common/units/目录下创建一个文件,格式如下:

type = <internal type>              # 内部类型之一
unit_type = <technology group>      # 可选。该单位出现的科技组。省略则该单位对所有科技组显示。

hull_size = <int>
base_cannons = <int>
sail_speed = <int>
blockade = <int>

trade_power = <float>   # 可选。该舰船在保护贸易时提供的贸易力量。
sprite_level = <int>    # 可选。舰船的贴图等级(1 到 5)
manpower = <float>      # 可选。覆盖该单位的人力成本。1 相当于 1 名水手。

# 可选,满足触发条件时将该单位作为可选项显示。
trigger = {
    <triggers>
}

海军单位可以属于以下四种内部类型之一:

heavy_ship
light_ship
galley
transport

内部类型

内部类型的功能无法修改。例如,你无法移除 cavalry 类型单位的骑兵侧翼包抄机制,也无法将其添加到其他内部类型上。

文件中的其他部分(如 defines 和修正)会引用这些类型(例如 ARTILLERY_SPEED 或 infantry_power),并改变所有使用该内部类型的单位。

科技

单位要想出现,必须在某项科技中启用。在科技中添加以下语句即可启用某个单位:

enable = <unit>

注:陆军单位只能在 MIL 类型的科技中启用,而海军单位只能在 DIP 类型的科技中启用。

本地化

单位的本地化格式如下:

<unit>: "单位名称"
<unit>DESCR: "描述"

特殊单位类型

旗军、射击军和耶尼切里等特殊单位混合了硬编码与软编码的元素,具体取决于单位本身。目前无法制作完全自定义的特殊单位。

旗军

旗军是一类单位,有三种启用方式:通过文化、修正或政府。

旗军可以通过定义在/Europa Universalis IV/common/cultures中的文化启用,代码如下:

manchu_new = {
	country = { has_banners = yes}
	province = { local_has_banners = yes}
	primary = MCH
	dynasty_names = {}
	male_names = {}
	female_names = {}
}

旗军可以在/Europa Universalis IV/common/government_reforms中的政府改革里启用,代码如下:

great_mongol_state_reform = {
	icon = "horde_riding"
	potential = {}
	modifiers = {}
	conditional = {
		allow = { has_dlc = "Mandate of Heaven" }
		allow_banners = yes
	}
}

旗军也可以通过/Europa Universalis IV/common/event_modifiers中的修正启用。该修正可以应用在任何接受国家修正的地方,例如国家理念。

enable_banners_modifier = {
	has_banners = 1
}

旗军的兵力上限通过修正 local_amount_of_banners 计算。默认情况下,它在/Europa Universalis IV/common/static_modifiers中被定义为每点发展度 0.066,大约相当于每 15 点发展度对应 1 面旗军。

development = {
	local_amount_of_banners = 0.066 # * 每点发展度
}

影响旗军的修正可以在/Europa Universalis IV/common/static_modifiers中找到:

banner_regiment = {
        discipline = 0.05
        land_maintenance_modifier = -0.5
        reinforce_speed = -0.5
        regiment_manpower_usage = -0.75
}

更多配置可以在/Europa Universalis IV/common/defines.lua中找到:

 CORRUPTION_FROM_BANNERS = 5, --雇佣旗军所增加的腐败
 BANNER_AGE_MULTIPLIER = 0.50, --每进入一个时代,旗军兵力上限增加多少
 BANNER_STARTING_STRENGTH = 0.1, --旗军单位被雇佣时的团兵力。0.1 = 100 人
 BANNER_USES_CONSTRUCTION = 0, --旗军是否需要时间招募。0 = 立即招募

自1.33 补丁起,也可以在/Europa Universalis IV/common/event_modifiers中为旗军应用独特修正,写法如下:

the_green_standard_army = {
   reinforce_speed = 0.5
   is_banner_modifier = yes
}

适用于旗军的本地化文本格式如下:

 REGCAT_banner:0 "旗军"
 BANNER_NAME:0 "$HOME$的第$NUM$$ORDER$旗军"

哥萨克

哥萨克可以通过以下效果在某个省份中生成:

capital_scope = {
 cossack_cavalry = ROOT
}

如果你想用自定义的方式创建这些单位,例如通过阶层特权、决议或事件,这会很有用。

你可以创建一个启用哥萨克的阶层特权,只需添加这一行

mechanics = {
 enables_cossack_regiments
}

影响哥萨克的修正位于/Europa Universalis IV/common/defines:

COSSACKS_SHOCK_DAMAGE_BONUS = 0.1

自1.33 补丁起,也可以在/Europa Universalis IV/common/event_modifiers中使用以下方法为哥萨克团应用自定义修正: 注:该修正的本地化目前存在问题,但效果仍然会生效。

#国家修正
fear_tactics = {
   cavalry_shock = 1
   is_cossack_modifier = yes
}

适用于哥萨克的本地化文本格式如下:

 REGCAT_cossacks:0 "哥萨克"
 COSSACKS_NAME:0 "$HOME$的第$NUM$$ORDER$哥萨克"
 COSSACKS_REGIMENT:0 "哥萨克团\n冲击伤害加成:$VAL$"

耶尼切里

耶尼切里与/Europa Universalis IV/common/government_reforms中的 has_pashas = yes 语句绑定。目前没有手动生成耶尼切里的效果,且单位界面是硬编码的,因此只能在对当前国家而言信仰异端宗教的省份中招募。耶尼切里的修正在/Europa Universalis IV/common/static_modifiers中指定:

janissary_regiment = {
	fire_damage_received = -0.1
	shock_damage_received = -0.1
	reinforce_cost_modifier = 1.0
	drill_gain_modifier = 1.0
}

/Europa Universalis IV/common/defines中与耶尼切里有关的代码包括:

 CREATE_JANISSARIES_MIL_COST = 10,				-- 创建耶尼切里的成本(每个单位)
 JANISSARIES_USES_CONSTRUCTION = 0,

也可以在/Europa Universalis IV/common/event_modifiers中为耶尼切里应用独特修正,写法如下:

loyal_to_sultan = {
   infantry_power = 0.1
   is_janissary_modifier = yes
}

适用于耶尼切里的本地化文本:

 REGCAT_janissaries:0 "耶尼切里"
 STATE_JANISSARIES_MIL_POWER:0 "花费 $AMOUNT|Y$ £mil£"
 CREATEJANISSARIES_TEXT:0 "$EFFECT$"
 STATE_JANISSARIES_CREATED_REGIMENTS:0 "$NUM|Y$ 个耶尼切里将在 $PROV|Y$ 生成"
 STATE_JANISSARIES_HEATHEN_PROVINCES:1 "国家需要至少 $AMOUNT|Y$ 点完全由你核心化并控制的异端信仰发展度。"
 STATE_JANISSARIES_BATTLE_OR_SIEGE:0 "你无法在正在进行战斗或围攻的省份中征召耶尼切里。"
 STATE_JANISSARIES_NO_REGIMENTS:0 "$STATE|Y$的异端人口过少,无法提供任何耶尼切里。"
 CREATE_JANISSARIES_BUTTON:1 "征召耶尼切里"
 CREATEJANISSARIES:1 "征召耶尼切里"
 JANISSARIES_REGIMENT:0 "耶尼切里团\n$EFFECT$"
 ONLY_JANISSARY_MODIFIER:0 "§Y仅影响耶尼切里团§!"
 STATE_JANISSARIES_GOVERNMENT_ALLOWS:0 "只有奥斯曼政府的国家才能征召耶尼切里。"
 STATE_JANISSARIES_COOLDOWN:0 "可在 $DATE|Y$ 招募更多耶尼切里。"
 STATE_JANISSARIES_NEED_MIL_POWER:0 "你需要 $AMOUNT|Y$ £mil£ 来征召耶尼切里"
 STATE_JANISSARIES_TITLE:0 "§Y征召耶尼切里§!"
 STATE_JANISSARIES_DESC:2 "在§Y奥斯曼政府§!下,我们能够在异端省份中招募耶尼切里。异端发展度越高,我们能从中征召的耶尼切里就越多。"
 JANISSARY_FORCELIMIT:1 "由于我们只能从异端省份中招募耶尼切里,因此我们最多可以将兵力上限 $FL$ 的 $VAL|%Y$ 招募为§G耶尼切里§!。\n"
 JANISSARY_LIMIT_RELIGION:0 "$PROVINCE$是$RELIGION$省份,因此无法在此招募耶尼切里。"
 JANISSARY_NAME:0 "$HOME$的第$NUM$$ORDER$耶尼切里"
 janissary_regiment:0 "耶尼切里"
 JANISSARIES_REGIMENT_TYPE:0 "耶尼切里"
 HAVE_LESS_JANISSARIES_THAN:0 "耶尼切里团少于 $VALUE|Y$ 个。\n"
 HAVE_AT_LEAST_JANISSARIES_THAN:0 "至少拥有 $VALUE|Y$ 个耶尼切里团。\n"

还有一些可用于修改耶尼切里的内容:

射击军

通过俄罗斯政府创建射击军单位,与/Europa Universalis IV/common/government_reforms中的

has_russian_abilities = yes

语句绑定。“俄罗斯能力”机制是硬编码的,因此无法只保留生成射击军的按钮。

幸运的是,射击军也可以通过以下效果在某个省份中生成:

capital_scope = {
   streltsy_infantry = ROOT
}

射击军影响稳定度成本的修正可以在/Europa Universalis IV/common/static_modifiers中找到。

streltsy_modifier = {
	stability_cost_modifier = 1.0
}

该修正反映的是兵力上限完全由射击军填满时的情形。它可以完全替换为另一个修正或另一组修正。

影响射击军的修正可以在/Europa Universalis IV/common/defines中找到:

STRELTSY_FIRE_DAMAGE_BONUS = 0.1

自1.33 补丁起,也可以在/Europa Universalis IV/common/event_modifiers中为射击军应用独特修正,写法如下:

注:该修正的本地化目前存在问题,但效果仍然会生效。

army_reforms = {
   discipline = 0.05
   is_janissary_modifier = yes
}

适用于射击军的本地化文本格式如下:

 REGCAT_streltsy:0 "射击军"
 STRELTSY_NAME:0 "$HOME$的第$NUM$$ORDER$射击军团"
 STRELTSY_REGIMENT:0 "射击军团\n火力伤害加成:$VAL$"
文档 效果 • 触发条件 • 修正列表 • 作用域 • 变量 • 本地化 • 可自定义本地化 • 运行文件 • 事件图片列表
脚本 脚本函数 • 顾问 • 时代 • 开局设定 • 建筑 • 宣战理由 • 殖民区域 • 国家创建 • 文化 • 决议 • Defines • 外交行动 • 灾难 • 中华帝国 • 阶层 • 事件 • 派系 • 政府 • 政府互动 • 伟大工程 • 历史 • 神圣罗马帝国 • 理念组 • 思潮 • 佣兵 • 任务树 • 修正 • On Actions • 议会 • 和约 • 君主性格 • 政策 • 叛军类型 • 宗教 • 附属国类型 • 科技 • 贸易公司 • 商品 • 单位
地图 地图 • 地图修改速查 • 随机新世界 • 贸易节点
图形 模型 • 界面 • 贴图库 • 字体 • 单位模型
音频 音乐 • 音效
其他 控制台命令 • 校验和 • 模组结构 • 故障排查 • 运行文件
工具 克劳塞维茨开局编辑器 • EU4模组编辑工具 • JoroDox模组制作工具 • The Validator
指南 省份 • 地图修改速查 • 存档编辑 • 脚本教程