全面战争模组中文站全面战争模组中文站
搜索/

搜索教程

输入标题,直接打开已发布教程。

输入教程标题开始搜索。

教程目录

战役效果详解

创建时间:2026年9月4日最后更新:2026年9月4日

战役中的收入、控制力、补员、招募等级、行军距离、建筑成本、研究速率、兵种上限等变化,最终大多会落到 Effect 数据链上。Effect 不是“一个能独立运行的 Buff”,而是告诉游戏:显示什么说明、把数值交给哪一种处理逻辑、影响什么对象,以及由哪个系统授予。

本文讲通用 Effect 框架。建筑、科技、角色技能、特性和物品怎样连接 Effect,会在各自教程中继续展开。不要为了“做一个效果”复制所有含effect的表;先确定授予入口,再沿引用关系补齐实际使用的分支。

先看完整数据链

授予入口
├─ building_effects_junction_tables
├─ technology_effects_junction_tables
├─ character_skill_level_to_effects_junctions_tables
├─ trait_level_effects_tables
├─ ancillary_to_effects_tables
└─ effect_bundles_to_effects_junctions_tables
        │
        ├─ effect_key ───────────→ effects_tables
        ├─ effect_scope ─────────→ campaign_effect_scopes_tables
        └─ value

effects_tables.effect
        ↓
effect_bonus_value_*_junctions_tables
        ├─ bonus_value_id:游戏实际执行的数值逻辑
        └─ 可选目标:兵种、兵种集合、建筑链、武器、派系等

阅读时把它分成四个问题:

  1. effects_tables:这个效果叫什么、怎样显示。
  2. effect_bonus_value_*_junctions_tables:这个数值究竟修改什么。
  3. effect_scope:修改谁、在哪里生效。
  4. 授予入口:为什么当前角色、建筑、科技或事件会拥有它。

只看 Effect 的 Key 无法判断完整行为;只看授予表也无法判断底层处理器。排错时必须把四层串起来。

需要认识的表单

表单 作用
effects_tables 定义 Effect Key、说明、图标、界面优先级、类别和数值正负的显示倾向。
effect_bonus_value_basic_junction_tables 把 Effect 连接到不需要额外目标的基础 Bonus Value。
effect_bonus_value_*_junctions_tables 把 Effect 连接到特定目标类型,例如兵种、兵种集合、建筑链、远程武器、角色类型或派系。
campaign_effect_scopes_tables 定义战役效果作用对象之间的关系,例如己方派系、所属军队、所在地区或省份。
effect_bundles_tables 定义一个可以被脚本、事件或系统整体添加、移除的效果包。
effect_bundles_to_effects_junctions_tables 把若干 Effect、数值和作用范围装进效果包。
effect_bundle_advancement_stages_tables 当原版效果包采用阶段变化时,定义阶段入口。只在模板实际使用时复制。
effect_bundle_exclusion_groups_tables及连接表 处理互斥效果包。普通独立效果包通常不需要。
unit_sets_tables 定义可被 Effect 指向的一组兵种。
unit_set_to_unit_junctions_tables 用具体兵种、兵种类型、类别或排除条件组成兵种集合。

effects_tables:界面身份

effects表中的核心显示字段

橙色框从左到右标出 Effect 身份区和图标、优先级等显示区。当前截图来自 RPFM v5.0.6 实际打开的db.pack

字段 含义 使用要点
effect Effect 的唯一 Key 自定义记录必须使用不会与原版和其他 Mod 冲突的前缀。所有连接表都引用它。
icon 正面或常规显示使用的图标 填写原版已有图标时先从相近效果复制路径,不要猜文件名。
description 玩家看到的效果说明 文本中常含%n%+n等数值占位。占位格式应沿用同类原版 Effect。
priority 多条效果同时显示时的界面排序权重 它不代表效果强度。没有明确需求时复制同类模板。
icon_negative 负值或负面显示使用的图标 某些效果与icon相同,某些效果需要单独的负面图标。
category 界面分类 影响归类或显示方式,不是 Bonus Value。
is_positive_value_good 正数是否被视为有利 用于说明和颜色倾向。它不会自动把数值取反,也不会改变底层计算公式。

说明文字的正负方向

不要只根据中文句子判断正负:

  • “建筑成本降低”可能由负值配合“成本修正”实现。
  • “补员速率提高”通常使用正值。
  • 某些处理器把1当开关,而不是百分比。
  • 某些说明需要%+n显示正负号,某些需要%n%显示百分号。

最稳妥的方法是找到游戏中已经产生相同结果的原版条目,同时查看它的 Effect、Bonus Value、Scope 和 Value,而不是只复制文字相似的 Key。

Bonus Value:真正执行的逻辑

Effect与基础Bonus Value的连接

橙色框从左到右分别框出effectbonus_value_id。这张表说明一个关键事实:Effect 的名字与真正执行的逻辑是分开的。

基础连接

effect_bonus_value_basic_junction_tables只有两类核心信息:

字段 含义
effect 引用effects_tables.effect
bonus_value_id 交给战役系统处理的数值类型。

例如同样是“收入”,不同 Bonus Value 可能分别处理城镇收入、贸易收入、劫掠收入或税率。中文说明相近,不代表可以互换。

带目标的连接

很多 Effect 还必须告诉游戏“修改哪个对象”。常见分支包括:

表单 额外目标
effect_bonus_value_unit_record_junctions_tables 一个具体main_units记录。
effect_bonus_value_ids_unit_sets_tables 一个unit_sets兵种集合。
effect_bonus_value_building_chain_junctions_tables 一条建筑链。
effect_bonus_value_recruitment_source_junctions_tables 一种招募来源。
effect_bonus_value_agent_subtype_junctions_tables 一种角色类型。
effect_bonus_value_faction_junctions_tables 一个派系。
effect_bonus_value_technology_junctions_tables 一项科技。
effect_bonus_value_melee_weapon_junction_tables 一种近战武器。
effect_bonus_value_missile_weapon_junctions_tables 一种远程武器。
effect_bonus_value_projectile_junctions_tables 一种投射物。
effect_bonus_value_unit_ability_junctions_tables 一个部队技能。

这不是完整清单。正确选择方法是:

  1. 用 RPFM 全局搜索找到产生目标结果的原版 Effect。
  2. 对该 Effect Key 执行全局搜索。
  3. 查看它出现在哪张effect_bonus_value_*连接表中。
  4. 复制那张表的记录结构,再替换成自己的目标 Key。

如果一个 Effect 同时出现在多个 Bonus Value 连接表中,它可能同时驱动多种逻辑。复制时不能只拿其中一条。

campaign_effect_scopes_tables:效果作用于谁

Scope 不是装饰字段。相同 Effect 和相同 Value 换一个 Scope,生效对象就可能完全不同。

campaign_effect_scopes_tables通过以下维度描述关系:

字段 关注的问题
source 效果从谁或什么对象出发。
target 最终影响谁。
ownership 是否要求己方、敌方或特定所有权关系。
location 是否受所在地区、省份、军队位置等关系限制。
territory 是否要求位于己方、敌方或其他领土。
localised_text RPFM 或游戏界面用于解释该 Scope 的文字。

Scope Key 往往很长,但长名字只是一条线索。不能把faction_to_force_own之类的英文凭感觉直译后直接使用;应当查找原版中与自己授予入口相同的记录。

选择 Scope 的实用顺序

  1. 先找相同授予入口:建筑效果优先参考建筑,角色技能优先参考角色技能。
  2. 再找相同目标:派系、所属军队、地区、省份、角色或单位。
  3. 最后比较 Value 的符号和说明文字。
  4. 游戏内分别检查拥有者、盟友、敌人和离开地区后的状态。

不要因为某个 Scope 在一项科技上正常,就假定它放进建筑、特性或效果包后仍有相同上下文。Scope 的 source 必须能由授予系统提供。

效果包:一次授予多条效果

效果包连接效果、范围和数值

橙色框从左到右标出effect_bundle_keyeffect_keyeffect_scopevalue区域。一个效果包可以包含多行,因此可以同时改变多个战役数值。

effect_bundles_tables

字段 含义
key 效果包唯一 Key。脚本和其他系统通常引用它。
localised_title 效果包标题。
localised_description 效果包说明。
ui_icon 效果包图标。
bundle_target 效果包预期附着的对象类型。
priority 界面显示顺序。
is_global_effect 是否按全局效果处理。不要脱离模板开启。
show_in_3d_space 是否允许在三维战役空间中显示相关表现。
owner_only 是否只向拥有者显示。

effect_bundles_to_effects_junctions_tables

字段 含义
effect_bundle_key 连接到哪个效果包。
effect_key 装入哪个 Effect。
value 传给 Bonus Value 的数值。可能是整数、百分比或开关,取决于处理器。
effect_scope 当前条目影响谁。一个效果包内的不同条目可以使用不同 Scope。
advancement_stage 阶段型效果包使用的阶段。普通固定效果包通常沿用空值或模板设置。

效果包只负责“打包”。持续回合数、何时添加、何时移除,通常由脚本、事件、仪式、任务、系统载荷或其他引用效果包的表决定。

兵种集合

当一条 Effect 要影响一批兵种时,不一定需要为每个兵种复制一条效果。原版经常使用unit_sets_tablesunit_set_to_unit_junctions_tables

unit_sets_tables

字段 含义
key 兵种集合 Key。
use_unit_exp_level_range 是否按部队经验等级进一步筛选。
min_unit_exp_level_inclusive 包含的最低经验等级。
max_unit_exp_level_inclusive 包含的最高经验等级。
special_category 特殊分类标记。只在相同系统模板使用时复制。

unit_set_to_unit_junctions_tables

字段 含义
unit_set 目标集合。
unit_record 直接加入某个具体兵种。
unit_caste 按兵种阶层纳入。
unit_category 按步兵、骑兵等类别纳入。
unit_class 按单位职业或细分类纳入。
exclude 把匹配项从集合中排除。

一行不必同时填写所有选择条件。应从原版同类集合复制结构,并用 RPFM 的引用和全局搜索确认实际成员。

怎样从原版数据找到正确 Effect

从游戏里的中文说明出发

  1. 记下游戏中完整说明,例如“补员速率:+5%”。
  2. 在 RPFM 全局搜索中先搜中文关键词。
  3. 从本地化结果定位 Effect 或授予对象 Key。
  4. 搜索该 Key 的全部引用。
  5. 记录 Effect、Bonus Value、Scope、Value 和授予入口五项信息。

从已知对象出发

如果已经知道某项建筑、科技、技能、特性或物品:

  1. 先在对应定义表找到它的 Key。
  2. 打开它的效果连接表。
  3. 复制目标行中的 Effect Key。
  4. 全局搜索该 Effect,确认 Bonus Value 连接。
  5. 查看是否还引用兵种集合、建筑链、招募来源等额外目标。

从 Bonus Value 出发

如果只知道想修改的机制:

  1. campaign_bonus_value_ids_*或已有 Effect 连接中搜索英文机制关键词。
  2. 查看哪些 Effect 使用该 Bonus Value。
  3. 优先挑选与目标授予入口和 Scope 相同的模板。
  4. 回到游戏中文本,确认该模板的玩家术语与目标一致。

新建自定义 Effect 的步骤

  1. 找到行为、授予入口和 Scope 都接近的原版模板。
  2. 把所需表导入自己的 Pack,只保留要参考的记录。
  3. 为自定义effects_tables.effect改成唯一 Key。
  4. 创建或复制正确的effect_bonus_value_*连接记录,并改为新 Effect Key。
  5. 在建筑、科技、技能、特性、物品或效果包的连接表中引用新 Effect。
  6. 添加或检查本地化说明和图标。
  7. 运行 RPFM 诊断,处理缺失引用和重复 Key。
  8. 进游戏检查实际对象、数值方向、范围、持续时间和提示文字。

从原版db.pack导入表单后,必须把 Pack 内的原版data__表名改成自己的唯一名称。保留data__可能覆盖原版同表数据;这不是“只新增一行”,而是高风险覆盖。

常见错误

有说明但没有效果

通常是只创建了effects_tables,没有创建 Bonus Value 连接;或者授予入口引用了错误的 Effect Key。

效果生效但对象不对

优先检查effect_scope,再检查带目标的effect_bonus_value_*连接表。不要先改数值。

正负号或颜色反了

同时检查 Value、is_positive_value_good、说明占位符和原版同类模板。显示错误与计算方向错误是两类问题。

效果包出现但不消失

效果包表本身不一定负责持续回合。检查授予它的脚本、事件、载荷或系统是否提供了移除条件和持续时间。

改了单位集合却影响过多兵种

检查unit_casteunit_categoryunit_class以及exclude行。集合可能通过分类自动包含后续兵种。

数值写成10却得到意外结果

不同 Bonus Value 对10的解释不同:可能是+10+10%、乘数的一部分、上限变化或开关。必须从同一个 Bonus Value 的原版记录确认单位。

游戏内验收清单

  • 游戏界面使用正确的简体中文术语和图标。
  • 正值、负值及百分号显示正确。
  • 目标派系、角色、军队、地区或省份正确。
  • 离开作用范围后效果按预期消失。
  • 多个来源叠加时结果符合预期。
  • 读取旧存档和新开战役的表现都经过检查。
  • AI 使用或获得该效果时没有明显异常。
  • 移除授予来源后不存在残留效果。

RPFM 诊断可以证明引用和表结构是否明显有错,但不能证明游戏的运行时上下文、叠加规则和中文提示完全正确。最终结果必须在游戏中验收。