部队技能详解
部队技能不是一张表单里的一个数值,而是一条由“界面身份 → 运行规则 → 生效阶段 → 阶段效果 → 授予对象”组成的数据链。主动技能、被动技能、人物技能、装备技能、绑定法术和普通法术都复用这套底层框架,但它们的授予方式、消耗、目标和界面分类并不相同。
本文只讲 RPFM 中能够配置的数据。技能依赖的施法动画、粒子特效、声音、投射物模型或复合场景必须已有可用资源;只把 Key 填进表单,不会自动生成这些资产。
游戏界面中的正式名称是“部队技能”“主动技能”和“被动技能”。数据库仍使用
ability、special_ability和phase等英文标识。下文面向玩家时统一写“技能”,只有表名和字段名保留数据库原名。
先看完整数据链
land_units_to_unit_abilites_junctions_tables
├─ land_unit ───────────────→ land_units_tables
└─ ability ─────────────────→ unit_abilities_tables
│ 相同 Key
↓
unit_special_abilities_tables
├─ 主动/被动、次数、冷却、范围、目标
├─ projectile / bombardment / vortex / spawned_unit
└─ special_ability_to_special_ability_phase_junctions_tables
↓
special_ability_phases_tables
├─ special_ability_phase_stat_effects_tables
├─ special_ability_phase_attribute_effects_tables
├─ phase_display → special_ability_phase_displays_tables
└─ special_ability_phases_to_additional_ui_effects_junctions_tables
按需扩展:
unit_abilities_to_additional_ui_effects_juncs_tables
special_ability_to_invalid_target_flags_tables
special_ability_to_invalid_usage_flags_tables
special_ability_to_auto_deactivate_flags_tables
special_ability_to_recharge_contexts_tables
special_ability_exclusive_toggle_groups_tables
unit_special_ability_to_special_ability_toggle_groups_junctions_tables
special_ability_behaviour_*_tables
special_ability_intensity_*_tables
effect_bonus_value_unit_ability_junctions_tables
unit_set_unit_ability_junctions_tables
最常见的阶段型技能至少需要四层记录:
unit_abilities_tables:玩家看到什么,以及技能属于哪种界面类别。unit_special_abilities_tables:技能怎样启动、能用几次、冷却多久、以谁为目标。special_ability_to_special_ability_phase_junctions_tables:把技能连接到一个或多个阶段。special_ability_phases_tables及阶段效果表:真正改变数值、属性、生命、弹药或其他状态。
投射物、轰击、魔法漩涡和召唤类技能可能主要依靠载荷造成效果,阶段表只负责附加状态或根本不使用。不要强迫所有技能都套用同一条链。
需要哪些表单
| 表单 | 什么时候需要 | 负责什么 |
|---|---|---|
unit_abilities_tables |
几乎所有可见技能都需要 | 定义技能 Key、名称、说明、图标、界面类型、来源类型、隐藏状态和增幅版本入口。 |
unit_special_abilities_tables |
主动、被动及多数战斗技能需要 | 定义次数、持续时间、冷却、目标、范围、消耗、载荷、施放动作、AI 和自动战斗参数。 |
special_ability_to_special_ability_phase_junctions_tables |
技能使用阶段时需要 | 把技能连接到阶段,并决定该阶段作用于自身、友军还是敌军。 |
special_ability_phases_tables |
增益、减益、持续伤害、治疗、附魔等需要 | 定义阶段持续时间、正负面类型、生命与魔法变化、弹药、状态和显示入口。 |
special_ability_phase_stat_effects_tables |
修改战斗数值时需要 | 给阶段添加近战攻防、护甲、领导力、速度、抗性等数值变化。 |
special_ability_phase_attribute_effects_tables |
添加或压制单位属性时需要 | 在阶段内添加或移除属性;具体属性 Key 及正负方向必须跟随原版模板核对。 |
special_ability_phase_displays_tables |
阶段需要旗帜、光环或实体特效时需要 | 连接阶段持续期间的视觉表现。 |
special_ability_phases_to_additional_ui_effects_junctions_tables |
技能提示需要额外效果条目时需要 | 给阶段连接额外的界面说明。 |
unit_abilities_additional_ui_effects_tables |
自定义额外说明时需要 | 定义额外界面文字、排序和正负面状态。 |
unit_abilities_to_additional_ui_effects_juncs_tables |
整个技能需要额外说明时需要 | 把界面技能记录直接连接到额外说明。 |
land_units_to_unit_abilites_junctions_tables |
兵种永久自带技能时常用 | 把技能连接给land_units_tables记录。表名中的abilites是原表保留的拼写。 |
unit_set_unit_ability_junctions_tables |
一组单位统一获得技能时需要 | 通过单位集合批量连接技能。 |
effect_bonus_value_unit_ability_junctions_tables |
科技、人物技能、特性或装备启用、禁用或修改技能时需要 | 把 Effect 与具体技能和 Bonus Value 连接。 |
| 各类限制、行为、强度和切换组表 | 模板本身使用时才需要 | 控制可用条件、目标排除、自动关闭、互斥开关、行为组和强度驱动。 |
没有阶段就不要创建阶段表,没有特殊限制就不要创建限制表。完整复制一套原版技能时,应先查清它实际引用了哪些分支,而不是把所有名字里含special_ability的表全部导入。
主动技能和被动技能到底差在哪里
主动技能
主动技能由玩家或 AI 下令使用,常见特征是:
unit_abilities_tables.source_type通常为active、character、item、unit等符合来源的类型;unit_special_abilities_tables.passive不勾选;- 可能设置使用次数、冷却、初始冷却、施放前摇、目标、范围和 AI 使用模板;
- 效果可以来自阶段,也可以来自投射物、轰击、魔法漩涡、召唤等载荷。
被动技能
被动技能自动生效或在条件满足时自动启停,常见特征是:
unit_abilities_tables.source_type通常为passive或与实际来源一致的其他值;unit_special_abilities_tables.passive勾选;- 常用无限持续阶段,或通过无效使用条件、自动关闭条件、强度和行为组决定何时生效;
- 一般不需要玩家选择目标,但可能持续检查自身、周围友军或周围敌军。
source_type主要决定界面上的来源分类,passive才直接参与主动/被动运行方式。只改其中一处可能出现“界面写着被动技能,实际却要手动使用”或相反的错配。复制模板时必须同时检查两处。
不要混淆的其他机制
| 目标 | 应优先检查 |
|---|---|
| 于森林中隐蔽、引发恐惧、心理免疫等单位固有属性 | unit_attributes_to_groups_junctions_tables和属性组,而不是先做技能。 |
| 近战攻击命中后施加状态 | melee_weapons_tables.contact_phase及接触阶段。 |
| 投射物命中后施加状态 | 投射物、爆炸或接触阶段相关字段。 |
| 法术、绑定法术和魔法之风 | 同一技能框架,但还要处理法术载荷、魔法之风分组、增幅法术和授予链;见《法术详解》。 |
| 全战场任意位置使用的军队技能 | 可能由战斗资源、派系机制或脚本授予,不应默认连接给某个兵种。 |
怎样选择原版模板
不要只按技能名称或图标选择模板,要按运行机制选择。
| 想做的技能 | 优先比较的原版模板 |
|---|---|
| 点击后强化自身 | 同样只以自身为目标、持续时间相近、阶段修改相似数值的主动技能。 |
| 点击后强化友军 | 同样以友军单位或地面范围为目标、效果人数和作用半径相近的增益技能。 |
| 对敌军施加减益 | 同样使用单体或范围目标、同样刷新目标方式的妖法技能。 |
| 常驻自身被动 | passive已勾选、阶段持续时间和启停条件相近的被动技能。 |
| 条件触发光环 | 同样使用effect_range、每帧更新目标、无效使用条件或强度系统的被动技能。 |
| 投射、轰击、魔法漩涡、召唤 | 同样填写对应载荷字段,并且动画、AI 模板和目标方式相近的原版技能。 |
| 阵型切换 | 同样使用formation及切换组的原版阵型技能。 |
可直接定位的技能实例
| 机制入口 | 官方简中名称 | unit_abilities.key |
优先核对 |
|---|---|---|---|
| 主动范围减益 | 天火闪 | wh3_main_unit_abilities_stun_bomb |
passive=false,阶段对敌军施加近战攻防减益。 |
| 条件被动 | 武道宁和:阳 | wh3_main_unit_passive_battle_harmony_yang |
passive=true,连同宁和条件和关联单位检查,不能当作无条件光环。 |
| 自身被动 | 防御状态 | wh3_main_unit_passive_defensive_stance |
passive=true,实际启停条件继续查无效使用和自动关闭连接。 |
| 阵型技能 | 骑枪阵型 | wh_dlc07_unit_formation_lance |
passive=false、formation=wedge_formation,阵型数据与普通数值阶段不同。 |
四个名称均已按同一 Loc Key 对照官方三种文本。在unit_special_abilities_tables中用相同 Key 精确筛选,不需要先从数千行里寻找候选;载荷型法术的八个具体入口见法术详解。
查找步骤:
- 在游戏中找到两到三个机制相近的原版技能,记录准确的游戏内名称和拥有者。
- 用 RPFM 全局搜索名称,在 Loc 中找到
unit_abilities_onscreen_name_技能Key。 - 搜索技能 Key,查看它出现在
unit_abilities_tables、unit_special_abilities_tables和哪些分支表中。 - 使用
查找引用确认拥有者、阶段、Effect 和单位集合等关系。 - 比较多个模板共有的字段,再识别某个模板独有的例外。
某个技能由兵种永久自带,只能说明它适合直接连接;不能据此推断所有技能都必须写进兵种连接表。科技、人物技能、装备、派系机制和脚本都可能从其他入口授予同一个技能。
安全复制技能链
原版记录统一从依赖项 → 游戏文件查找,打开后核对Game-RO:只读页签。不要从Assembly Kit 文件导入、复制或编辑表单,也不要把其中的记录当作游戏引用来源。所有修改都在自己的Mod类型 Pack 中进行,可以使用下面两种方式准备记录。
新建空表单
- 在自己的 Pack 上右键,新建需要的 DB 表。
- 新增记录。
- 在
依赖项 → 游戏文件打开原版模板,确认当前页签为Game-RO:、子表为原版data__,按行选中所需完整记录,复制到自己 Pack 中同类型、同版本的表单。不要逐列抄写而漏掉右侧字段。 - 立刻把所有主 Key 改成带个人前缀的新 Key。
这种方法适合只有两三个字段的连接表。unit_special_abilities_tables字段很多,手工创建容易漏掉 AI、自动战斗、音频或特殊目标字段,通常更适合导入模板。
从依赖项导入原版表单
- 在依赖项中搜索技能 Key,打开它所在的原版表单。
- 将需要的表单导入自己的 Pack。
- 把导入后的
data__重命名为自己的唯一子表名。 - 筛选模板技能,按行选中真正需要保留的记录,然后清除筛选,确认这些行仍被选中,再反选并删除其他行。不要只在筛选结果中反选,否则隐藏的原版行可能仍留在 Pack 中。
- 按数据链从外到内修改 Key,并同步更新所有引用。
原版 DB 子表通常也叫
data__。Mod 中保留相同路径和子表名,可能覆盖原版整张子表,而不是只添加你留下的几行。每张导入表都应改名,例如twcn_tutorial_unit_abilities、twcn_tutorial_special_ability_phases。
建议先列出 Key 映射,避免漏改:
原技能 Key → twcn_tutorial_skill_guard
原阶段 Key → twcn_tutorial_skill_guard_phase
原阶段显示 Key → twcn_tutorial_skill_guard_display
原额外界面效果 Key → twcn_tutorial_skill_guard_ui_effect
如果你只想复用原版技能,不要复制整条定义链,只在授予表中引用原版 Key。复制后不改 Key 会覆盖原技能,复制后漏改引用则会让自定义技能继续使用原版阶段。
技能的界面身份:unit_abilities_tables
这张表回答“玩家看到什么”,但不决定技能造成多少伤害或增加多少属性。
| 字段 | 含义与使用要点 |
|---|---|
key |
技能唯一 Key,也是unit_special_abilities_tables和各类授予表使用的连接值。新技能必须使用唯一前缀。 |
superseded_abilities_set |
连接被替代技能集合,用于升级或互相取代的界面关系。只有模板使用时才复制。 |
requires_effect_enabling |
勾选后,战役中通常需要 Effect 启用技能才会出现;不勾选时,直接授予的技能可以自行显示。人物技能或科技授予链必须结合原版 Effect 检查。 |
tooltip_text(本地化,不是 Pack DB 列) |
在 Loc 中添加unit_abilities_tooltip_text_技能Key,填写技能说明。不要在 RPFM 的这张 DB 表里寻找这一列。 |
onscreen_name(本地化,不是 Pack DB 列) |
在 Loc 中添加unit_abilities_onscreen_name_技能Key,填写游戏内名称。 |
icon_name |
ui/battle ui/ability_icons/下的图标名,通常不写扩展名。自定义图标必须按原版目录和格式放入 Pack。 |
overpower_option |
指向技能的另一版本。法术通常用它连接增幅法术;普通技能也可能用于升级变体,但不是所有技能都需要。 |
type |
界面中的效果类型和图标分类,例如游戏内显示的增益、妖法、直接伤害、轰击、吹息、魔法射击、魔法漩涡或阵型。空值可能导致严重错误,必须复制相近模板。 |
video |
可选预览视频入口,常见于法术浏览或说明界面。普通部队技能多为空。 |
uniqueness |
界面稀有度或分类信息。它不是“这个技能只能存在一次”的运行开关。 |
is_unit_upgrade |
是否作为可切换的单位升级出现在自定义战斗界面。崩溃、溃散等不可关闭的系统效果通常不会按普通升级处理。 |
is_hidden_in_ui |
勾选后技能不在通常界面显示。隐藏不等于停止运行。 |
source_type |
游戏界面的来源类别,例如active、passive、unit、item、character、spell、bound、army。应按玩家实际看到的来源选择,不要把字段英文直译成新的游戏术语。 |
is_hidden_in_ui_for_enemy |
是否只对敌方界面隐藏。可用于不希望敌人提前看到的机制,但应沿用已验证模板。 |
名称和说明为什么不能只写在 DB 表里
RPFM 编辑 Pack 时,玩家实际看到的文字来自 Loc。常见键名为:
unit_abilities_onscreen_name_twcn_tutorial_skill_guard
unit_abilities_tooltip_text_twcn_tutorial_skill_guard
只复制 DB 记录而没有 Loc,游戏可能显示 Key、空白或原版文字。复制原版 Loc 后也必须改 Loc Key 后缀,否则会覆盖原版技能文字。
type和source_type不是同一个概念
这里对照原版“天火闪”:type是wh_type_area_of_hexes,游戏显示“妖法(区域)”;source_type是active。上面的requires_effect_enabling未勾选,overpower_option为空,所以它不需要按法术增幅版本来补一条记录。示例适合主动范围减益;治疗、被动光环和法术应查找目标方式相近的模板,不要全部照搬天火闪。
type回答“这是什么效果形式”,例如增益、妖法或魔法射击。source_type回答“它来自哪里”,例如主动技能、被动技能、装备或法术。
一个主动技能可以是增益,也可以是妖法;一个装备技能也可能使用和主动技能相同的效果类型。不要根据 Key 中有没有active来代替这两个字段。
技能类型完整对照
type引用unit_ability_types_tables.key。下面是当前原版全部 30 项及其官方简中显示名称,可直接按所需效果查 Key;分类名称不会代替投射物、阶段或召唤等实际载荷。先选一个同类型、同目标方式的原版技能,再复制其完整运行规则。
type |
官方简中名称 |
|---|---|
wh_type_area_of_augments |
增益(区域) |
wh_type_area_of_augments_of_the_winds |
魔法之风强化(区域) |
wh_type_area_of_direct_damage |
直接伤害(区域) |
wh_type_area_of_hexes |
妖法(区域) |
wh_type_area_of_regeneration |
重生(区域) |
wh_type_area_of_ward_save |
特殊保护(区域) |
wh_type_area_of_ward_save_hex |
特殊保护妖法(区域) |
wh_type_augment |
增益 |
wh_type_augment_of_the_winds |
魔法之风强化 |
wh_type_bombardment |
轰击 |
wh_type_breath |
吹息 |
wh_type_chain_augment |
链式增益 |
wh_type_chain_direct_damage |
链式直接伤害 |
wh_type_chain_hex |
链式妖术 |
wh_type_chain_regeneration |
链式重生 |
wh_type_direct_damage |
直接伤害 |
wh_type_explosion |
爆炸 |
wh_type_formation |
阵型 |
wh_type_hex |
妖法 |
wh_type_hex_of_the_winds |
魔法之风妖法 |
wh_type_hiding |
隐蔽 |
wh_type_magic_missile |
魔法射击 |
wh_type_magic_missiles |
魔法射击 |
wh_type_regeneration |
重生 |
wh_type_summon_unit |
召唤部队 |
wh_type_transform |
变形 |
wh_type_vortex |
魔法漩涡 |
wh_type_ward_save |
特殊保护 |
wh_type_ward_save_hex |
特殊保护妖法 |
wh_type_wind |
魔法之风 |
wh_type_magic_missile与wh_type_magic_missiles的官方显示名相同,选择时仍要区分单个模板的载荷和发射方式。wh_type_wind在这一类型表中显示为“魔法之风”,这里指技能类型,不能与魔法之风资源或法术分组混为同一个字段。
技能来源完整对照
source_type引用unit_ability_source_types_tables.key,完整定义有 23 项。普通主动技能以active为起点,被动技能以passive为起点,普通法术用spell,绑定法术用bound;装备或特殊来源按实际授予方式选择。表中“有原版技能使用”只表示当前数据中确有引用,不代表填了该值就已经完成授予。
source_type |
官方简中名称 | 当前数据情况 |
|---|---|---|
active |
主动技能 | 有原版技能使用 |
army |
军队技能 | 有原版技能使用 |
banner |
战旗 | 有原版技能使用 |
bound |
绑定法术 | 有原版技能使用 |
building |
建筑 | 有原版技能使用 |
cataclysm |
天劫法术 | 有原版技能使用 |
character |
人物技能 | 有原版技能使用 |
default |
默认 | 定义保留;本次原版技能未使用 |
faction |
派系 | 定义保留;本次原版技能未使用 |
hero |
英雄技能 | 定义保留;本次原版技能未使用 |
item |
物品 | 有原版技能使用 |
lord |
领主技能 | 有原版技能使用 |
lore |
魔法属性 | 有原版技能使用 |
mark |
混沌印记 | 定义保留;本次原版技能未使用 |
mount |
坐骑技能 | 定义保留;本次原版技能未使用 |
passive |
被动技能 | 有原版技能使用 |
quest |
任务技能 | 有原版技能使用 |
replenishments |
补员 | 有原版技能使用 |
rune |
符文 | 有原版技能使用 |
spell |
法术 | 有原版技能使用 |
unit |
部队技能 | 有原版技能使用 |
upgrades |
升级 | 有原版技能使用 |
weapon |
魔法武器 | 有原版技能使用 |
来源为item不会自动生成物品,army不会自动把技能交给全军,spell也不会自动建立技能树解锁。相应授予入口仍按本文后面的数据链连接。
技能的运行规则:unit_special_abilities_tables
这张表与unit_abilities_tables使用相同的key连接。字段很多,应按功能分组理解。
次数、时间和冷却
原版天火闪的active_time为31、recharge_time为90、num_uses为1、effect_range为35。这是原版模板数据,不是推荐所有技能共用的数值;只改自建版本时先复制完整行,并给新技能分配不冲突的unique_id。
| 字段 | 含义与使用要点 |
|---|---|
key |
必须对应unit_abilities_tables.key。 |
num_uses |
每场战斗可用次数。原版常用-1表示不按有限次数限制,但必须以同类模板为准。 |
active_time |
技能持续时间。投射物类模板常用-1,因为弹丸寿命由投射物记录决定;阶段型技能通常与阶段持续时间协调。 |
recharge_time |
冷却时间。-1常见于不使用普通冷却的被动技能。 |
initial_recharge |
开战或技能获得后的初始冷却。 |
wind_up_time |
下令后到正式生效之间的前摇时间,应与施放动作和显示效果对齐。 |
shared_recharge_time |
给同组、同样配置共享冷却的技能设置公共冷却时间。不要把它当普通recharge_time使用。 |
update_phase_by_ability_duration |
是否让阶段时间跟随技能持续时间更新。只在原版同类模板使用时沿用。 |
active_time、阶段duration和载荷寿命属于不同层。三者不一致时,可能出现按钮已结束但效果仍在、效果提前消失、显示一直不关闭等问题。
主动、被动和目标刷新
原版天火闪勾选target_ground,未勾选target_friends和target_enemies,但仍然能把减益施加给地面范围内的敌军。原因是“点击哪里”与“谁承受阶段”属于两层配置。它的target_intercept_range是75,不能把前面的效果范围35当成施放距离。
| 字段 | 含义与使用要点 |
|---|---|
passive |
勾选为被动运行,不勾选为主动使用。 |
effect_range |
技能收集受影响单位的作用半径。它不一定等于玩家点击目标的最远距离。 |
target_intercept_range |
搜索或拦截目标的距离,常用于施放距离和条件检查;按同类模板理解。 |
min_range |
不能在该距离以内使用,常见于需要最小施放距离的技能。 |
update_targets_every_frame |
勾选后持续重新检查范围内目标;不勾选时通常只在开始时确定目标。移动光环与一次性范围技能的选择通常不同。 |
affect_self |
目标收集时是否允许技能拥有者受到影响。 |
always_affect_self |
即使普通目标筛选没有选中自己,也强制让施放者受影响。不要与affect_self混为一谈。 |
only_affect_target |
只影响直接选中的目标,不继续搜索附近单位。 |
only_affect_owned_units |
只影响符合所有权条件的单位,用于召唤物或特殊控制关系。 |
num_effected_friendly_units |
最多影响多少友军。原版常用负值表示不按普通数量上限限制,但应复制模板。 |
num_effected_enemy_units |
最多影响多少敌军。 |
target_self |
是否允许选择或指向自身。 |
target_friends |
是否允许以友军为目标。 |
target_enemies |
是否允许以敌军为目标。 |
target_ground |
是否允许以地面位置为目标。 |
target_ground_under_allies |
是否允许选择友军脚下的地面。 |
target_ground_under_enemies |
是否允许选择敌军脚下的地面。 |
affect_siege_equipment |
是否影响攻城器械实体。 |
目标设置不是“勾得越多越兼容”。例如只想对敌军单位施放的减益技能,若同时允许地面和友军目标,玩家可能看到错误光标或 AI 选择错误对象。
四类主要载荷
天火闪的passive未勾选,bombardment、spawned_unit为空;它主要通过阶段降低敌军数值。界面里没有填轰击或召唤,并不是记录不完整。被动光环、魔法射击、召唤技能则应各自追踪相应分支。
| 字段 | 连接对象 | 常见用途 |
|---|---|---|
activated_projectile |
projectiles_tables.key |
魔法射击、投掷物或其他从施放者发出的弹丸。 |
bombardment |
projectile_bombardments_tables.bombardment_key |
从目标上空生成的一组投射物。 |
vortex |
battle_vortexs_tables.vortex_key |
魔法漩涡、移动或持续区域伤害。 |
spawned_unit |
land_units_tables.key |
召唤单位、变身替换、诱饵或代理单位。 |
这些字段可以与阶段同时使用,但每条伤害来源都会独立结算。复制技能时必须确认伤害究竟来自阶段、弹丸、爆炸、轰击还是魔法漩涡,避免把原版载荷和新阶段叠在一起造成双重伤害。
召唤、变身与特殊生成
| 字段 | 含义与使用要点 |
|---|---|
spawn_type |
生成方式枚举,控制新单位怎样进入战场。 |
spawn_proxy_vfx |
目标预览代理上的粒子特效。 |
spawn_is_transformation |
生成单位是否替换原单位,属于变身流程。 |
spawn_is_decoy |
新单位是否作为原单位的诱饵,界面可能继续展示拥有者数据。 |
spawn_shares_health_and_fatigue |
变身前后是否共享生命和疲劳。 |
can_be_copied_to_transformation_unit |
该技能是否可以复制给变身后的单位。 |
召唤和变身还会涉及单位许可、生成类型、动画、生命同步和脚本限制。只填写spawned_unit并不等于完成一套可靠的变身系统。
施放动作、范围显示与视觉
| 字段 | 含义与使用要点 |
|---|---|
wind_up_stance |
前摇阶段请求的动作姿态。人物没有对应动作时可能站立不动或动作错误。 |
wind_down_stance |
施放结束后的动作姿态。 |
use_loop_stance |
是否循环播放姿态。 |
targetting_aoe |
选择目标时显示的范围样式。 |
passive_aoe |
已下令但尚未正式施放时的范围显示。 |
active_aoe |
技能生效期间的范围显示。 |
activation_effect |
下令或施放时播放的一次性粒子特效。 |
special_ability_display |
连接特殊技能显示记录,可覆盖动画元数据相关效果。 |
composite_scene_group_on_wind_up |
前摇时触发的复合场景组。 |
composite_scene_group_on_active |
正式生效时触发的复合场景组。 |
display_stops_when_display_expires |
让轰击或魔法漩涡的显示按资产自然结束;循环显示使用错误可能无法停止。 |
formation |
连接特殊阵型类型。只用于确实改变阵型的技能。 |
失误、魔法之风和特殊资源
| 字段 | 含义与使用要点 |
|---|---|
mana_cost |
消耗的魔法之风。普通部队技能通常为0;法术按普通版和增幅版分别设置。 |
miscast_chance |
法术失误概率,数值通常按比例表示,例如0.5代表 50%。普通技能一般为0。 |
miscast_explosion |
失误时使用的爆炸记录。 |
miscast_global_bonus |
是否接受全局失误概率修正。 |
current_mana_moves_to_reserve |
是否把当前魔法之风移动到储备,属于特殊机制字段。 |
mom_vortex_key |
特殊模式使用的魔法漩涡入口。没有完全匹配的原版模板时保持为空。 |
音频、语音和界面事件
| 字段 | 含义与使用要点 |
|---|---|
audio |
技能音频定义。 |
voiceover_state |
施放时触发的战斗语音状态。 |
audio_switch_ui_override |
覆盖模块化界面音频开关。 |
audio_switch_casting_override |
覆盖模块化施法音频开关。 |
audio_vo_actor_override |
覆盖语音演员入口。 |
ability_available_ui_event |
技能可用时触发的界面事件。没有明确模板时不要填写。 |
AI 与自动战斗
| 字段 | 含义与使用要点 |
|---|---|
ai_usage |
AI 使用模板,决定 AI 在什么战况和目标上倾向使用技能。 |
ai_usage_template_group |
AI 模板组;设置后可按组匹配多个模板。 |
additional_melee_cp |
技能为自动战斗增加的近战战力。必须大于等于0,负值可能导致启动崩溃。 |
additional_missile_cp |
技能为自动战斗增加的远程战力,同样不能为负。 |
autoresolver_usage |
自动战斗怎样理解该技能,例如单体伤害、范围增益或默认处理。不能为空。 |
autoresolve_cp_multiplier |
自动战斗战力倍率。 |
autoresolver_targets |
自动战斗估算该技能影响的目标数量。 |
技能能在手动战斗使用,不代表自动战斗一定合理。新技能至少要复制机制相近模板的 AI 和自动战斗字段,再通过多次战斗比较验证。
其他高级字段
| 字段 | 含义与使用要点 |
|---|---|
unique_id |
引擎使用的唯一数值标识。复制新技能时不能与其他技能冲突;优先使用 RPFM 提供的生成方式或经过检查的唯一值。 |
parent_ability |
法术浏览等界面使用的父技能关系。带父技能的专用变体可能不会单独显示。 |
behaviour |
连接特殊技能行为组。 |
intensity_based_activation |
根据强度值自动启用或关闭,需配合强度表。 |
additional_melee_cp、additional_missile_cp |
除自动战斗外也参与技能所附带的战力估值,不能随意留成负数。 |
audio_vo_actor_override、mom_vortex_key等末尾字段 |
只用于特定系统。空值不是“缺内容”,没有匹配机制时保持为空更安全。 |
技能与阶段的连接
special_ability_to_special_ability_phase_junctions_tables决定一个技能使用哪些阶段。
图中order=1,target_self和target_friends未勾选,target_enemies勾选。右侧phase恰好与技能 Key 同名,但它引用的是阶段定义,不是运行规则;新建技能时要分别检查这两种引用。
| 字段 | 含义与使用要点 |
|---|---|
special_ability |
字段直接引用unit_abilities_tables.key;运行规则表unit_special_abilities_tables也用同一个技能 Key,不能把三处改成不同的值。 |
phase |
指向special_ability_phases_tables.id。 |
order |
多阶段顺序。相同技能可有多个阶段,不能只复制第一条。 |
target_self |
该阶段作用于施放者自身。 |
target_friends |
该阶段作用于友军目标。 |
target_enemies |
该阶段作用于敌军目标。 |
unit_special_abilities_tables中的目标字段负责“玩家或系统允许选谁”,连接表中的三个目标字段负责“这个阶段实际加给谁”。两层不一致时,可能出现能选中目标却没有效果,或技能只影响施放者而不影响点击目标。
多阶段技能可能让同一次使用先施加短暂前置状态,再进入主效果,最后进入收尾状态;也可能把不同阶段分别给自己、友军和敌军。不要因为order相同就认定记录重复,先比较三个目标勾选和阶段内容。
技能阶段:special_ability_phases_tables
身份、持续时间、正负面和基础控制
| 字段 | 含义与使用要点 |
|---|---|
id |
阶段唯一 Key,也是阶段效果表引用的值。 |
duration |
阶段持续秒数。原版常用负值表示持续到其他机制终止,但不要脱离模板自行推断。 |
effect_type |
positive或negative等正负面分类,主要影响界面和属性效果方向;它不会自动把所有正数变成增益。 |
requested_stance |
阶段期间请求的动作姿态。 |
cant_move |
阶段期间不能接收移动或攻击命令,但实体仍可能射击、使用技能或进行近战反应。 |
freeze_fatigue |
阶段期间将体力保持为“精神饱满”(疲劳数值为0),不会把已经疲劳的状态原样锁住。 |
fatigue_change_ratio |
每秒按比例改变累计疲劳;正值增加疲劳,负值恢复体力。最终体力状态还受行动与其他效果影响。 |
inspiration_aura_range_mod |
修改激励光环范围。 |
ability_recharge_change |
改变目标技能的冷却时间;负值通常缩短,正值通常延长。 |
生命、复活、魔法之风和附魔
| 字段 | 含义与使用要点 |
|---|---|
hp_change_frequency |
每隔多少秒尝试一次生命变化。为0时不要假设会自动按每帧结算。 |
damage_amount |
每个受影响实体、每次结算受到的伤害。小单位规模下过低数值可能表现异常。 |
max_damaged_entities |
每次伤害或治疗最多影响多少实体;负值常用于不设普通上限。 |
resurrect |
过量治疗是否允许复活阵亡士兵。治疗单体人物时通常没有同样意义。 |
mana_regen_mod |
每秒改变魔法之风恢复。 |
mana_max_depletion_mod |
修改魔法之风系统的最大耗竭参数。Schema 没有给出它在当前游戏中的完整结算关系,不能直接当作法术消耗或储量上限;沿用同类原版模板并实测。 |
imbue_magical |
阶段内赋予魔法攻击。 |
imbue_ignition |
阶段内赋予火焰攻击相关状态。该字段不是简单布尔值,应复制同类模板。 |
接触效果、显示、音频和作用对象
| 字段 | 含义与使用要点 |
|---|---|
imbue_contact |
阶段内让目标攻击附带另一个接触阶段。由此可以形成“技能临时赋予命中效果”的链。 |
phase_display |
连接special_ability_phase_displays_tables。 |
phase_audio |
阶段持续期间使用的音频定义。 |
is_hidden_in_ui |
隐藏该阶段的界面条目,不等于停止阶段效果。 |
affects_allies |
阶段是否标记为影响友军。 |
affects_enemies |
阶段是否标记为影响敌军。 |
不要把阶段内的affects_allies、affects_enemies当成玩家选目标的开关,也不要机械地要求它们与连接表勾选完全一样。图中的天火闪阶段两项都勾选,但前面的阶段连接只勾选敌军;实际授予对象仍需追踪运行规则和连接表。Schema 没有为这两个阶段字段给出完整结算说明,修改时保留同类原版模板,并分别用友军、敌军、自身验收。
弹药、传播和冷却控制
| 字段 | 含义与使用要点 |
|---|---|
replenish_ammo |
阶段开始时按单位最大弹药比例恢复弹药,也可以用负值消耗弹药。 |
composite_scene_group |
阶段开始时触发复合场景组。 |
spreading |
连接传播规则,让状态按特定方式扩散。 |
freeze_recharge |
阶段期间暂停目标技能的冷却计时。 |
治疗、魔屏、移除魔法攻击和斩杀
图 03 至图 07 是同一条天火闪阶段横向滚动后的不同位置。它的伤害、治疗、弹药恢复和魔屏恢复均为0,因此不能把它当成治疗或持续伤害模板;它降低攻防的实际记录在下一张数值效果表中。想做治疗时,应从游戏内“重生”等相近技能反查对应阶段,再比较结算频率、治疗量和复活开关。remove_magical仅移除魔法攻击,不是通用“驱散所有法术”功能。
| 字段 | 含义与使用要点 |
|---|---|
heal_amount |
当前表右侧的生命恢复比例字段。《战锤 III》不能照旧 Schema 注释按固定生命点填写,例如原版尼科之咒的0.008按比例为0.8%,不是每个士兵恢复0.008点。累计治疗还要结合hp_change_frequency、持续时间、治疗上限和修正效果验收;详见《法术详解》的原版对照。前面的生命结算字段与这里属于同一张表,不存在两个需要重复填写的同名治疗字段。 |
barrier_heal_amount |
每次生命变化结算时按最大魔屏生命比例恢复魔屏。没有魔屏的单位不会因此自动获得魔屏系统。 |
remove_magical |
临时移除魔法攻击。 |
execute_ratio |
目标生命比例低于或等于该阈值时直接击杀。它不是普通伤害倍率。 |
阶段数值效果
special_ability_phase_stat_effects_tables一行只修改一个战斗数值。同一阶段可以有多行。
| 字段 | 含义与使用要点 |
|---|---|
phase |
指向阶段 Key。 |
stat |
指向可修改战斗数值,例如stat_melee_attack、stat_melee_defence、stat_armour、stat_morale。 |
value |
修改值。具体单位取决于stat和how。 |
how |
运算方式。常见add表示加减固定值,mult表示倍率。 |
例如:
stat_melee_attack / -24 / add → 近战攻击降低 24
stat_melee_damage_base / 1.15 / mult → 基础武器杀伤乘以 1.15
不要把mult=15当成“增加 15%”。原版倍率通常写成1.15一类系数;不同数值字段仍要对照同类模板和游戏实测。
阶段可修改的数值项
stat引用modifiable_unit_stats_tables.stat_key。下表列出全部 51 项,并列出它们在当前原版阶段中实际使用的运算,便于选择模板;这不是声明每项均适合任意单位。显示名相同也不意味着 Key 可以互换。
stat |
官方简中显示名称或核对情况 | 原版阶段使用的how |
|---|---|---|
scalar_bracing |
冲锋抗性 | mult |
scalar_charge_speed |
冲锋速度 | mult |
scalar_dealt_collision_knocked_back_threshold_modifier |
未找到对应官方简中名称,保留英文标识 | mult |
scalar_dealt_collision_knocked_down_threshold_modifier |
未找到对应官方简中名称,保留英文标识 | mult |
scalar_dealt_collision_knocked_flying_threshold_modifier |
未找到对应官方简中名称,保留英文标识 | mult |
scalar_entity_acceleration_modifier |
加速能力 | mult |
scalar_entity_deceleration_modifier |
减速能力 | mult |
scalar_entity_turn_speed_modifier |
转向速度 | mult |
scalar_harmony_amplifier |
宁和增幅器 | 本次原版阶段未使用 |
scalar_miscast_chance |
失误概率 | mult |
scalar_missile_damage_ap |
破甲远程杀伤 | mult |
scalar_missile_damage_base |
基础远程杀伤 | mult |
scalar_missile_explosion_damage_ap |
破甲爆炸杀伤 | mult |
scalar_missile_explosion_damage_base |
基础爆炸杀伤 | mult |
scalar_missile_explosion_radius |
未找到对应官方简中名称,保留英文标识 | 本次原版阶段未使用 |
scalar_missile_range |
射程范围 | mult |
scalar_speed |
移动速度 | mult |
scalar_spell_mastery |
法术精通 | mult |
scalar_splash_attack_power |
溅射击飞力度 | mult |
scalar_visibility_sight_modifier |
部队视野 | mult |
stat_abilities_healing_cap |
未找到对应官方简中名称,保留英文标识 | 本次原版阶段未使用 |
stat_accuracy |
射击精度 | add、mult |
stat_armour |
护甲强度 | add、mult |
stat_bonus_vs_cavalry |
对抗骑兵加成 | 本次原版阶段未使用 |
stat_bonus_vs_infantry |
对抗步兵加成 | add |
stat_bonus_vs_large |
对抗大型部队加成 | add、mult |
stat_charge_bonus |
冲锋加成 | add、mult |
stat_damage_reflection |
近战伤害反弹 | add |
stat_healing_power |
在途治愈力调整 | mult |
stat_mana |
魔力 | 本次原版阶段未使用 |
stat_mass |
质量 | mult |
stat_melee_attack |
近战攻击 | add、mult |
stat_melee_damage_ap |
破甲武器杀伤 | add、mult |
stat_melee_damage_base |
基础武器杀伤 | add、mult |
stat_melee_defence |
近战防御 | add、mult |
stat_missile_block_chance |
远程格挡概率 | add、mult |
stat_missile_minimum_range |
最小射程 | 本次原版阶段未使用 |
stat_morale |
领导力 | add |
stat_num_uses_additional |
额外使用次数 | 本次原版阶段未使用 |
stat_reloading |
装填技能 | add |
stat_resistance_all |
杀伤抗性 | add |
stat_resistance_flame |
火焰抗性 | add |
stat_resistance_magic |
法术抗性 | add |
stat_resistance_missile |
远程抗性 | add |
stat_resistance_physical |
物理抗性 | add |
stat_shield_armour |
盾牌护甲 | 本次原版阶段未使用 |
stat_shield_defence |
盾牌防御 | 本次原版阶段未使用 |
stat_spotting_forest |
侦测(森林) | add、mult |
stat_spotting_scrub |
侦测(森林) | mult |
stat_visibility_sight |
部队视野 | add、mult |
stat_weakness_flame |
惧怕火焰 | add |
需要固定增加 10 点近战攻击时,填写stat_melee_attack / add / 10;降低 24 点近战防御用stat_melee_defence / add / -24;速度乘以 1.1 用scalar_speed / mult / 1.1。百分比抗性以百分点加减时不要再除以 100,例如原版有stat_resistance_physical / add / -10的阶段记录。scalar_或stat_前缀不能独立证明任意字段的运算规则,表中未使用项不作为初学者模板。
没有官方简中名称的五项怎么处理
上表五项没有对应的官方繁中和简中 Loc,保留英文标识。前三项的英文显示分别是 Dealt Collision Knocked Back / Down / Flying Threshold,指向碰撞造成击退、击倒、击飞的门槛修正;这里是技术解释,不是自造的游戏简中名称。
原版wh2_dlc15_unit_passive_pump_harder_ladz阶段分别使用这三个统计项,how均为mult,value依次为0.025、0.022、0.02。需要同类碰撞表现时,可以在阶段数值表按该阶段精确筛选,对照完整实体和阶段配置;它们不是近战攻击、伤害或被击退抗性的数值,不要按字面随意换用。
scalar_missile_explosion_radius的英文 Loc 也只是 Key 本身;stat_abilities_healing_cap的英文文本为 Abilities healing cap。本次原版阶段没有使用这两项的记录,暂不将它们作为新手制作爆炸范围或治疗上限的直接方案。爆炸范围先改实际爆炸或载荷的半径;治疗相关限制先沿已有治疗法术的阶段与授予链核对。
阶段属性效果
special_ability_phase_attribute_effects_tables修改的是引擎属性,不是普通数值。
| 字段 | 含义与使用要点 |
|---|---|
phase |
指向阶段 Key。 |
attribute |
指向unit_attributes_tables.key,例如silenced对应“沉默”。先核对属性定义和官方本地化,再选择 Key。 |
attribute_type |
positive表示赋予该属性,negative表示抵消该属性;不是判断它对玩家有利还是有害。 |
属性 Key 的英文含义不能完全替代游戏表现。先找到一个确实拥有目标属性的原版技能,再复制其阶段属性记录并验证。
天火闪不需要这条属性分支,因此这里改用wh2_dlc11_unit_contact_disrupted作对照:它以positive赋予silenced,游戏表现是“沉默”,也就是无法使用技能或施放法术。不要因为它是负面状态,就把attribute_type改成negative;那会反转添加属性的方向。
阶段显示效果和额外界面说明
special_ability_phase_displays_tables常用字段:
| 字段 | 含义与使用要点 |
|---|---|
key |
显示记录唯一 Key。 |
banner_vfx |
显示在单位旗帜底部的特效。 |
active_vfx |
阶段激活期间的通用特效。 |
entity_vfx |
加在单位实体上的特效。 |
entity_vfx_attach_type |
特效挂接方式或挂点类型。 |
use_new_vfx_scaling |
是否使用新的特效缩放方式。 |
显示效果只负责“看起来怎样”,不会自动提供数值效果。反过来,阶段有效但没有显示记录时,数值仍可能生效,只是玩家难以判断状态是否存在。
图中第439行wh_main_generic_debuff_attack是天火闪阶段使用的记录,同时配置旗帜与实体特效;第440行带_banner后缀,只配旗帜特效;第441行带_passive后缀,只配实体特效。它们说明视觉分支可以分别复用,不是让你把搜索结果三行全部复制。第二张图向右滚动,展示top挂接方式与缩放勾选;改变特效后还要进战斗检查不同体型单位,不能仅凭表内引用存在判断显示正确。
额外界面说明链为:
special_ability_phases_tables.id
↓
special_ability_phases_to_additional_ui_effects_junctions_tables
↓
unit_abilities_additional_ui_effects_tables
unit_abilities_additional_ui_effects_tables中的sort_order控制顺序,effect_state用于标记正面或负面显示。说明文字属于 Loc,Key 为unit_abilities_additional_ui_effects_localised_text_额外说明Key,不是这张 Pack DB 表中的localised_text列。它只向玩家解释效果,不会代替阶段数值或属性记录。
该记录的sort_order=102表示显示排序,数值较小的排在较上方;它不是“影响102个目标”。修改自建说明时,复制定义、改为新 Key、建立对应 Loc,再让阶段连接指向这个新 Key。如果文字和用途都不变,可以直接复用原版说明,无需复制。
图中改用“腐蚀护甲”阶段wh3_dlc20_unit_contact_corrosion作对照。它连接wh3_main_all_enemy_spreading_radius_30m与wh3_main_all_max_five_affected_units,对应游戏说明“会扩散至受影响部队传播范围内的敌军”和“影响至多5支部队”。这里的两条文字不会自动实现传播或数量上限;必须与阶段的传播规则、目标数量等实际配置一致。修改机制后也要检查说明是否需要更换,不能只保留原版文字。
阶段特效挂接位置速查
special_ability_phase_displays_tables.entity_vfx_attach_type在当前原版中实际使用七项:bottom、bottom_rotated、front、front_rotated、hips、top、top_rotated。它们分别以底部、前方、髋部或顶部作为挂接位置;带_rotated的值采用对应旋转方式,模型朝向仍须实看。
先在同表按已有entity_vfx筛选,比较它搭配的挂接类型与use_new_vfx_scaling。只换同尺寸效果时保留挂接方式;要从脚下光环改为头顶效果,再选择top同类记录作为整体模板。没有实体特效时,不需要为凑齐字段新建粒子 Key。
使用条件、目标排除和自动关闭
这些表不是每个技能都需要,但它们经常决定被动技能和特殊主动技能是否可用。
| 表单 | 作用 |
|---|---|
special_ability_to_invalid_target_flags_tables |
排除不允许成为目标的单位状态或类别。 |
special_ability_to_invalid_usage_flags_tables |
当施放者或战场满足某状态时禁止使用。 |
special_ability_to_auto_deactivate_flags_tables |
条件出现时自动关闭已经激活的技能。 |
special_ability_to_recharge_contexts_tables |
规定技能在哪些上下文中进行冷却。 |
special_ability_invalid_usage_flags_tables |
定义可供上面几张连接表引用的条件 Key 和界面说明。 |
原版条件覆盖近战状态、移动、飞行、生命比例、疲劳、领导力、弹药、周围敌我单位、是否为施法者、魔法之风等。不要根据英文 Key 猜方向;invalid表示“满足该条件时无效”,而有些 Key 本身又带not或no,双重否定很容易填反。
检查方法:
- 查看模板使用的是
invalid target、invalid usage还是auto deactivate。 - 在
special_ability_invalid_usage_flags_tables中读取该 Key 的主说明和反向说明。 - 找另一个使用同一条件的原版技能,确认方向。
- 进游戏分别测试条件满足和不满足两种状态。
常用条件 Key 与两种提示
条件定义共有 229 项,包含大量特定资源、生命阈值和派系机制。普通技能先使用下面这些已核对的常见项;需要特殊条件时,在special_ability_invalid_usage_flags_tables.flag_key筛选完整 Key,再用同值在目标、使用或自动关闭连接表中查实际使用者。
| 条件 Key | 官方主提示 | 官方反向提示 |
|---|---|---|
flying_currently |
飞行时 | 已落地 |
flying_unit |
飞行部队 | 地面部队 |
ground_unit |
地面部队 | 飞行部队 |
grounded |
已落地 | 飞行时 |
unit_is_large |
兵模体积必须为小 | 兵模体积为小 |
unit_is_not_large |
兵模体积必须为大 | 兵模体积为大 |
on_a_platform |
位于平台上或下 | 不位于平台上或下 |
moving |
移动时 | 未移动 |
not_moving |
未移动 | 移动时 |
engaged_in_melee |
陷入近战 | 脱离近战 |
out_of_melee |
脱离近战 | 近战时 |
health_above_50% |
生命值高于50% | 生命值低于50% |
undead_unit |
亡灵 | 存活时 |
这两列是界面提示,不应直接当成同方向的逻辑表达式。例如在无效目标表中用unit_is_large排除大型目标时,玩家会看到要求小型目标的提示。限制目标用special_ability_to_invalid_target_flags_tables.invalid_target;限制施放者使用条件用special_ability_to_invalid_usage_flags_tables.invalid_usage_flag;要求技能运行中停止用special_ability_to_auto_deactivate_flags_tables.deactivate_flag。三张表都在special_ability填写技能 Key,每个条件各建一行。
原版还定义health_above_10%、health_above_20%、health_above_25%、health_above_50%、health_above_75%等阈值条件。若希望生命值高于一半时不能使用,可从使用条件中的health_above_50%模板开始;先保留一条明确条件验证,不把多个含否定词的条件同时拼进去。
切换组、行为组和强度系统
互斥切换
special_ability_exclusive_toggle_groups_tables与unit_special_ability_to_special_ability_toggle_groups_junctions_tables用于把多个开关技能放进互斥组。常见效果是开启一种阵型、姿态或模式时,自动关闭同组其他选项。
不要仅仅因为两个技能图标相邻就给它们建立切换组;先确认原版是否允许同时激活。
行为组
special_ability_behaviour_groups_tables、special_ability_behaviour_groups_to_types_tables和special_ability_behaviour_to_ability_junctions_tables用于把技能放入更高层的行为分类。只有原版模板实际引用时才复制整组关系。
强度驱动
special_ability_intensity_settings_tables及相关强度表用于根据某种累积值控制技能强度或自动启停。设置表中的default_amount、max_amount、intensity_source、intensity_type分别负责初始量、最大量、来源与处理类型;它们需要连成与模板一致的链。intensity_based_activation只是其中的自动启停选项:强度大于0时自动激活,否则关闭,不是整个强度系统的总开关。普通被动光环没有使用这条链时,不必额外接入。
把技能授予谁
兵种永久自带
land_units_to_unit_abilites_junctions_tables包含:
| 字段 | 含义 |
|---|---|
land_unit |
获得技能的land_units_tables.key。 |
ability |
被授予的unit_abilities_tables.key。 |
适用条件:技能确实应该成为该兵种的固定组成部分,且不受额外解锁条件限制。复用这种原版技能时只添加连接,不需要复制定义;若模板勾选requires_effect_enabling,还要追踪启用它的 Effect 及授予来源,不能保证只连兵种就能使用。
图中南皋霹雳手wh3_main_cth_inf_grenadiers连接天火闪和武道宁和:阴。RPFM 在技能 Key 后附带显示中文名称,是查找提示,不属于实际保存的 Key;复制时不要把冒号后的中文写进引用。给自建兵种添加其中一项时,只复制所需连接,并将land_unit改为你的兵种 Key,不要修改原版南皋霹雳手。
一组单位统一获得
unit_set_unit_ability_junctions_tables适合已经由unit_sets_tables定义的一组单位。它不是“给一个单位添加技能”的更高级做法,而是单位集合本身就是设计对象时的入口。
由科技、人物技能、装备或其他 Effect 授予
常见链路是:
科技 / 人物技能 / 特性 / 装备
↓
effects_tables
↓
effect_bonus_value_unit_ability_junctions_tables
├─ unit_ability → 技能 Key
└─ bonus_value_id → enable / disable / uses_mod / recharge_mod 等
这种路径适合“满足条件后才出现”“增加次数”“减少冷却”或“暂时禁用”。若requires_effect_enabling已勾选,却没有任何有效的enable链,技能可能在战役中不可见。
常见 Bonus Value:
| Key | 作用 |
|---|---|
enable / disable |
启用或禁用技能。 |
uses_mod |
加减使用次数。 |
recharge_mod |
按百分比修改冷却。 |
active_time_mod |
按百分比修改持续时间。 |
effect_range_mod |
按百分比修改作用范围。 |
target_intercept_range_mod |
按百分比修改目标距离。 |
cost_mod / cost_percentage_mod |
修改魔法之风消耗。 |
miscast_percentage_mod |
修改失误概率。 |
spell_mastery_percentage_mod |
修改法术精通。 |
Effect 还必须被正确连接到科技、人物技能、特性、装备或事件。只创建effect_bonus_value_unit_ability_junctions_tables记录,不会自动让 Effect 生效。
从零制作主动技能
以下是通用顺序,不是要求所有技能使用同一载荷。
- 选择一个目标方式、载荷和 AI 用法都接近的原版主动技能。
- 复制
unit_abilities_tables记录,改 Key、名称、说明、图标、type和source_type。 - 复制
unit_special_abilities_tables记录,改相同 Key,再调整次数、冷却、范围、目标和载荷。 - 若使用阶段,复制技能—阶段连接、阶段和所有阶段效果,逐层改 Key。
- 若使用投射物、轰击、魔法漩涡或召唤,复制或复用对应载荷链。
- 按永久连接、单位集合或 Effect 三种路径之一授予技能。
- 运行 RPFM 诊断,再进游戏检查按钮、目标、动画、效果和 AI。
从零制作被动技能
- 选择一个触发条件、范围和刷新方式相近的原版被动技能。
- 在
unit_abilities_tables中使用符合游戏界面的source_type,通常为passive或实际来源类型。 - 在
unit_special_abilities_tables中勾选passive,复制模板的持续时间、范围和目标刷新设置。 - 复制无限或条件控制的阶段,并建立阶段数值、属性和显示记录。
- 若被动需要条件,复制对应的无效使用、自动关闭、行为或强度连接。
- 授予目标单位并测试条件的正反两种状态。
诊断顺序
技能完全不出现
依次检查:
- 授予表中的单位 Key 和技能 Key 是否正确。
unit_abilities_tables和unit_special_abilities_tables是否使用相同 Key。is_hidden_in_ui是否误勾选。requires_effect_enabling是否勾选但没有有效enableEffect。- 主动/被动与
source_type是否错配。 - 是否因无效使用条件而被隐藏或禁用。
技能有按钮但不能使用
检查目标字段、最小距离、目标距离、地面目标、无效目标条件、无效使用条件、次数、初始冷却和魔法之风消耗。还要确认施放者拥有模板要求的动作和载荷资源。
技能能使用但没有效果
检查技能—阶段连接中的目标勾选、阶段 Key、阶段持续时间、阶段效果的phase引用,以及伤害是否实际来自投射物、轰击或魔法漩涡。
数值生效但界面不显示
检查技能 Loc、type、阶段effect_type、阶段隐藏设置、阶段显示和额外界面效果。界面说明与运行效果是两条独立链。
效果结束后仍然残留
检查active_time与阶段duration、目标是否每帧刷新、显示是否循环、自动关闭条件、freeze_recharge和传播状态。不要只缩短按钮冷却来掩盖残留。
AI 从不使用或乱用
比较同类原版的ai_usage、AI 模板组、目标规则、效果人数和自动战斗字段。AI 需要能理解目标与收益,玩家能手动使用不等于 AI 会正确使用。
游戏内验收清单
RPFM 诊断只能发现架构、引用和部分字段问题,不能证明战斗行为正确。至少进行以下检查:
- 自定义战斗中,技能名称、说明、图标、类型和来源术语正确。
- 主动技能只在允许的目标和距离上出现可用光标。
- 使用次数、初始冷却、普通冷却、持续时间与设计一致。
- 自身、友军、敌军和地面目标分别按预期受到效果。
- 阶段数值、属性、生命、弹药、魔屏或接触效果只结算一次。
- 技能结束、单位死亡、逃跑、变身或条件失效后,效果和显示都能正确移除。
- 被动技能在条件满足和不满足时分别测试,确认没有反向触发。
- AI 能在合理时机使用主动技能,自动战斗结果没有明显异常。
- 战役授予技能时,未解锁、已解锁、升级和失去来源四种状态都正确。
- 与其他 Mod 一起加载时,没有 Key 冲突、Loc 覆盖或共享原版记录被误改。

