附属国类型修改

/Europa Universalis IV/common/subject_types文件夹提供了创建新附属国类型的方式。新的附属国类型必须先从某个模板复制而来(使用 'copy_from = x';使用 'default' 则从第一个模板复制)。之后可以覆盖其中的具体数值。 附属国类型创建完成后,可以通过和平选项、外交行动或历史将其整合进游戏。

默认附属国


default = {
	# 图形:
	sprite = GFX_icon_vassal
	diplomacy_overlord_sprite = GFX_diplomacy_leadvassal # 宗主国看到的图标
	diplomacy_subject_sprite = GFX_diplomacy_amvassal	# 附属国看到的图标

	# 触发条件:
	is_potential_overlord = { always = no } 			# 这一项不会被 copy_from 复制。实际默认值等同于 always = yes
	can_be_established = { always = no }				# 同上

	# 属性:
	has_overlords_ruler = no
	can_fight_independence_war = yes
	is_voluntary = no									# 它们是否可以随时退出这段关系(这决定该附属国是否算作主权附属国)
	transfer_trade_power = no
	transfer_trade_if_merchant_republic = no
	joins_overlords_wars = yes
	joins_colonial_wars = no
	can_be_integrated = no
	can_release_and_play = no							# 附属国界面中的“释放殖民地”
	uses_tariffs = no
	dynamically_created_during_history = no				# 该国家是否自动创建。(会在历史中进行特殊检查)
	eats_overlords_colonies = no						# 附属国是否接管同一殖民区域内宗主国的殖民地。
	has_colonial_parent = no							# 控制大多数仅适用于殖民地的规则
	overlord_can_attack = yes
	overlord_can_be_subject = no
	can_have_subjects_of_other_types = no
	can_be_annexed = no
	takes_diplo_slot = yes
	has_power_projection = yes
	can_release_in_peace = yes
	uses_military_focus = yes
	overlord_protects_external = no						# 宗主国是否总是会(可拒绝地)被召唤对抗不与其同属一个宗主国的国家。为 'no' 时,只有当防御方本会因其附属国类型而被禁止攻击进攻方时,宗主国才会加入。
	counts_for_borders = yes							# 计算边境之间的距离时,是否将该附属国类型视为其宗主国边境的一部分。
	overlord_enforce_peace_attacking = no				# 即使附属国是进攻方,宗主国是否仍可对附属国的敌人强制和平
	can_use_claims = yes								# 宗主国宣战时是否可以使用附属国的宣称和核心
	gives_daimyo_bonuses = no
	gets_help_with_rebels = no							# 仅对 AI 有效。双向。
	share_rebel_popup = yes								# 宗主国是否会收到关于附属国叛军的弹窗,并在稳定度界面中看到这些叛军。
	separatists_become_subjects = no					# 分离主义叛军的要求达成后,是否会成为宗主国的附属国。
	allows_taking_land_without_independence = no
	can_transfer_in_peace = yes							# 该附属国类型是否可以通过“转让附属国”时代能力变为封臣。
	can_set_mil_focus = yes
	can_send_missionary_to_subject = yes				# 需要文明的摇篮
	can_union_break = no								# 仅与 has_overlords_ruler 一同生效
	overlord_can_fabricate_for = yes

	max_government_rank = 0								# 0 表示没有限制
	cities_required_for_bonuses = 0						# 附属国需要拥有多少座城市才会给宗主国带来加成
	trust_on_start = 35									# 游戏开始时,宗主国和附属国各自额外获得这么多对彼此的信任

	base_liberty_desire = 0.0
	liberty_desire_negative_prestige = 0.0
	liberty_desire_development_ratio = 0.0
	liberty_desire_same_dynasty = 0.0
	liberty_desire_revolution = 30.0					# 国内革命扩散度为 100% 时的自由渴望
	pays_overlord = 0.0									# 1.0 代表封臣所支付的数额
	forcelimit_bonus = 0.0								# 1.0 代表拥有一个封臣所带来的加成
	forcelimit_to_overlord = 0.0						# 附属国兵力上限中用作修正基数的百分比
	military_focus = 1.0								# AI 附属国应在陆军和要塞上花费多少等。0 应使其不花费任何资金。过高的数值大概不会有太大区别,因为存在合理性检查。

	relative_power_class = 1 							# 0 - 不考虑相对实力,1 - 仅限该附属国,x - 所有设为 x 的附属国
	diplomacy_view_class = 1							# 参见文件中的说明

	can_fight = {
	}
	can_rival = {
	}
	can_ally = {
	}
	can_marry = {
	}

	# 附属国互动:
	# (持续性)
	embargo_rivals = yes
	support_loyalists = no
	subsidize_armies = no
	scutage = no
	send_officers = no
	divert_trade= no
	# (即时性)
	placate_rulers = yes
	place_relative_on_throne = no
	enforce_religion = yes
	customize_subject = no
	replace_governor = no
	grant_province = yes
	enforce_culture = no
	siphon_income = no
	fortify_march = no
	seize_territory = no
	start_colonial_war = no
	grant_core_claim = yes
	sacrifice_ruler = no
	sacrifice_heir = no
	increase_tariffs = no
	decrease_tariffs = no
	takeondebt = yes
	bestow_gifts = no
	send_additional_troops = no
	demand_artifacts = no
	demand_additional_tribute = no
	force_seppuku = no
	press_sailors = no
	contribute_to_capital = no
	force_isolation = no
	return_land = no
	conscript_general = no
	knowledge_sharing = yes
	block_settlement_growth = yes
	allow_settlement_growth = yes
	# (特殊)
	sword_hunt = no
	sankin_kotai = no
	expel_ronin = no

	# 修正:
	modifier_subject = clear # 用它来清除 copy_from 之后的内容。
	modifier_subject = { # 否则,这里只会添加修正,而不会移除之前已添加的修正。
		modifier = subject_nation
	}
	modifier_overlord = clear

	overlord_opinion_modifier = null # 如果不是 "null",则会在 00_opinion_modifiers.txt 及该目录下的其他文件中查找同名修正。
	subject_opinion_modifier = null
}

附属国示例

下面是一个附属国示例,注意其中的 'copy_from = default' 一行,它会使用默认附属国类型(见上文)作为其模板

一个好办法是复制一个相似的附属国,然后再编辑其属性


subject_type = {
	copy_from = default

	# 图标
	sprite = GFX_icon_subject_type
	diplomacy_overlord_sprite = GFX_diplomacy_lead_subject_type
	diplomacy_subject_sprite = GFX_diplomacy_am_subject_type

	# 属性
	can_be_annexed = yes
	has_power_projection = yes
	gets_help_with_rebels = yes

	max_government_rank = 2

	liberty_desire_development_ratio = 0.1
	liberty_desire_same_dynasty = -25.0
	pays_overlord = 2.0
	forcelimit_bonus = 0
	forcelimit_to_overlord = 0

	relative_power_class = 1

	restoration_cb = cb_disloyal_vassal

	# 附属国互动:
	scutage = yes
	place_relative_on_throne = yes
	divert_trade = yes
	seize_territory = no

	# 允许事件修正
        # 不过原版的修正并未被定义为事件修正
	modifier_subject = {
		modifier = subject_type_nation
	}
	modifier_overlord = {
		modifier = subject_type_subject
	}
        #在 00_opinion_modifers 中查找
	overlord_opinion_modifier = is_subject_type
	subject_opinion_modifier = is_subject_type
}

本地化

需要以下本地化条目(示例使用附属国类型 subject_type)


  subject_type: "附属国类型"
  subject_type_long_desc: "附属国界面中的描述(附属国类型是以某种方式支持其宗主国的附属国"
  subject_type_is_our: "$NAME|Y$是我们的附属国类型"
  subject_type_title: "附属国类型(x 是 y 的附属国类型——用于显示谁是谁的附属国)"
  subject_type_title_plural: "附属国类型(用于显示宗主国所有 subject_type 类型的附属国)"
  is_subject_type: "是附属国类型(用于 modifier_subject 修正的提示框)"

界面/GFX

需要以下文件: x 的宗主国所用的图像 显示 y 的附属国所用的图像 附属国界面中使用的图像

需要在 countrydiplomacyview.gfx 中添加以下 sprite:

        spriteType = {
		name = "GFX_diplomacy_lead_subject_type"
		texturefile = "gfx//interface//icon_diplomacy_lead_subject_type.dds"
	}
	spriteType = {
		name = "GFX_diplomacy_amjunior"
		texturefile = "gfx//interface//icon_diplomacy_am_subject_type.dds"
	}

需要在 countrysubjectview.gfx 中添加以下 sprite:

        spriteType = {
	  	name = "GFX_subject_subject_type"
	 	texturefile = "gfx/interface/subject_type_icon.dds"
	}



注:name 和 texturefile 字符串都可以更改,并不要求必须严格采用这种格式,但本指南将使用这种格式

这些 sprite 通过附属国文件中的以下几行来引用:

        sprite = GFX_icon_subject_type
	diplomacy_overlord_sprite = GFX_diplomacy_lead_subject_type
	diplomacy_subject_sprite = GFX_diplomacy_am_subject_type

和平选项

请注意,本指南只会介绍修改附属国类型所需的细节。 另外请注意,每个文件似乎只有一个和平选项能够生效,而由于默认文件中有一个占位选项(见下文),因此需要另建一个文件


#THIS 是索取方,FROM 是给予方

# 索取方或给予方不能与和平谈判页面中的双方不同。
# 不能割让省份,也不能对第三方进行操作

# 示例:
force_subject_type = {
	category = 6 #  和平选项所在的标签页。0 - 6。
	power_projection = vassalized_rival # 仅当给予方是索取方的对手时才生效
	power_cost_base = 1.0 # 无理由要求所需外交点数成本的基础系数,随战争分数成本缩放
	prestige_base = 1.0 # 声望的基础系数,随战争分数成本缩放
	ae_base = 1.0 # 侵略扩张的基础系数,同样随战争分数成本缩放。
	warscore_cost = {
		# 条约的成本,决定使用哪些省份的战争分数成本
		all_provinces = 0.0 # 给予方的所有省份
		no_provinces = 1.0 # 单个战争分数成本为 1 的省份的价格,只是一个常数
		owner_keeps = 0.0 # 被保留的省份
		conquered = 1.0 # 被索取方要求的省份
		returned_core = 0.0 # 作为“归还核心”被要求的省份
		released_nation = 0.0 # 被要求释放为独立新国家的省份
		cancelled_subject = 0.0 # 被取消附属关系的省份?
		concede_colonial_region = 0.0 # 殖民区域内的省份?
	}
	warscore_cap = -1 # 若不为负数,则为战争分数的上限
	requires_demand_independence = yes # 在独立战争中,前附属国是否必须要求独立才能使其生效
	is_make_subject = yes # 该和平选项能否与其他强制附属国互动或授予独立的选项同时使用
	requires_is_allowed = no # 是否必须由某个宣战理由明确允许(如恢复联合)。若为 no,则适用无理由要求。

	is_visible = { #该选项何时可见
		always = yes

	}
	is_allowed = { #该选项何时允许/可选
		always = yes
	}
	effect = { # 和平的效果
		create_subject = {
			subject = FROM
			subject_type = subject_type
		}
	}
	 ai_weight = {
		export_to_variable = {
			variable_name = ai_value # 必须有名为 'ai_value' 的变量,因为最终评估的正是这个变量
			value = 1
		}
		 limit = { # 如果 limit 为假,则 ai_weight 为 0
			always = no
		}
	}
}

和平选项的本地化

需要对以下内容进行本地化

  PEACE_force_subject_tyoe: "和平选项菜单中的标题"
  force_subject_type_desc: "使 [From.GetName] 成为 [This.GetName] 的附属国类型——和平概要中的值"
  CB_ALLOWED_force_subject_type: "强制附属国类型——在宣战理由中显示时使用的值?"
  PEACE_PO_subject_type: "强制附属国类型——和平概要中的描述"

历史

要让自定义附属国在游戏开始时出现,你需要在 history/diplomacy 中添加一个条目。请注意,这里需要参照朝贡国的写法,而不是封臣的写法。

dependency = {
    subject_type = "tributary_state"
    first = MNG
    second = KOR
    start_date = 1444.1.1
    end_date = 1644.4.22
}

检查清单

已在 /common/subject_types/00_subject_types 中添加条目(放在同一个文件中肯定可行,放在新文件中也可行,但这样 subjecttype = number 触发条件将无法使用)

已将图像添加到 /gfx/interface/name_used_in_gfx_file.tga

已将 sprite 添加到 /interface/countrydiplomacyview.gfx

已将 sprite 添加到 /interface/countrysubjectsview.gfx

已在 /common/peace_treaties/ 中添加包含和平选项的新文件(不确定放在同一文件中是否可行,除非放在占位选项之上)

已将上述值添加到任一本地化文件中(x: "y")(冒号后带空格)(本地化文件位于 /localisation)

所有语法均正确(如果遇到问题,这可能就是原因)

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