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

搜索教程

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

输入教程标题开始搜索。

教程目录

制作兵种:添加技能

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

兵种面板上的主动技能和被动技能,不是直接写在land_units_tables某一列里。最简单的做法,是把一个已经存在的原版技能连接给新兵种;只有需要修改名称、次数、范围、持续时间或实际效果时,才复制完整技能链。

本篇用原版南皋霹雳手wh3_main_cth_inf_grenadiers的主动技能“天火闪”wh3_main_unit_abilities_stun_bomb作为查找案例,并把它连接给系列中的精锐玉勇。这个案例适合演示有独立图标、使用次数和生效阶段的主动技能,但它不是所有技能的固定模板。

“添加技能”与“制作技能”是两件事。只添加原版技能时,不要复制它的定义表;制作独立版本时,也不能只改连接表中的AbilityKey。

先分清部队技能和其他属性

游戏界面把这一系统显示为“部队技能”,并继续区分“主动技能”和“被动技能”。RPFM 的表名、字段名仍会使用abilities、special_ability和Ability;这些英文是数据库标识,不代表游戏界面中的中文名称也应写成“能力”。下文面向玩家时统一使用“技能”。

想实现的内容 常见入口
给兵种添加一个已有主动技能或被动技能 land_units_to_unit_abilites_junctions_tables
森林隐蔽、引发恐惧、阵型等单位固有属性 unit_attributes_to_groups_junctions_tables和属性组
修改技能名称、图标、类别和界面信息 unit_abilities_tables及 Loc
修改使用次数、冷却、范围、目标和触发载荷 unit_special_abilities_tables
修改持续阶段和阶段内数值 special_ability_phases_tables及阶段效果表
让科技、人物技能或效果启用、增加次数或强化部队技能 对应的 Effect、Bonus Value 和 Unit Set 连接

不要因为一项机制在兵牌上显示,就把它全部当成unit_abilities_tables。先找一个确实拥有同类效果的原版单位,再看它使用了哪条数据路径。

本例适合什么情况

本例的“天火闪”是一个对地面施放、影响敌军并复用原版特效的主动技能。把它直接给其他兵种,适合快速验证“兵种与现有技能的连接”是否成立;正式 Mod 还要考虑派系风格、兵种定位、平衡和资源兼容。

以下情况应换用更接近的原版模板:

  • 需要常驻被动效果:参考同类被动技能,而不是主动投放技能。
  • 需要作用于自身或友军:参考目标类型相同的增益技能。
  • 需要召唤、投射物、轰炸、漩涡或特殊动画:参考使用同一载荷类型和动作资源的技能。
  • 技能由科技、领主技能、装备或脚本临时授予:继续追踪对应系统,不要默认把技能永久写给兵种。

RPFM 能建立数据连接,但不能保证任意兵种都具备某项技能依赖的动画、语音、特效、投射物或挂点。

找到兵种实际拥有的部队技能

已知原版单位 Key 时,直接全局搜索该 Key,并筛选:

land_units_to_unit_abilites_junctions_tables

这张表只有两个关键字段:

列 作用
Ability 指向一个已有的部队技能 Key。
Land Unit 指向获得该技能的land_units_tables.Key。

查看原版兵种与部队技能的连接

图中按南皋霹雳手 Key 筛选出两条原版连接:①Ability分别为“天火闪”和“武道宁和:阴”,②Land Unit都指向南皋霹雳手。这里只挑选天火闪,不会顺带给精锐玉勇添加阴属性相关技能。其他兵种的组合应从它自己的记录查找,不是复制这个单位附近的所有行。

截图来自依赖项 → 游戏文件,Game-RO:页签表示原版只读模板。若表中显示了Key:中文名称,冒号后的内容是 RPFM 查找显示的名称提示,复制到目标字段时应填写实际 Key,不把中文提示也拼进去。

表名里的abilites是游戏原表保留的拼写。搜索和新建表时应使用这个实际表名,不要自行改成abilities。

不知道技能 Key 时怎么找

从拥有者反查

  1. 在游戏里找一个确实拥有目标技能的原版兵种。
  2. 按《查找原版数据》的方法,从显示名称找到它的单位 Key。
  3. 全局搜索单位 Key,打开land_units_to_unit_abilites_junctions_tables。
  4. 查看这个单位的全部Ability,再逐个跳转到定义核对名称和用途。

从技能名称查找

  1. 在全局搜索中启用文本(Loc),搜索游戏里显示的完整技能名称。
  2. 找到以unit_abilities_onscreen_name_开头的 Loc Key。
  3. 取出后面的技能 Key,再搜索数据库(DB)。
  4. 查看它被哪些单位引用,确认找到的不是同名升级版、物品版或人物版。

同一种视觉效果可能有普通版、升级版、被动版、人物版或军队技能版。不要只看名称和图标;还要比较Source Type、目标、次数、范围和实际使用者。

跳转到技能定义

在Ability单元格上右键,选择转到... → 转到定义,可以打开unit_abilities_tables对应记录。若目标表原先已打开过,先检查是否残留其他筛选条件;清除旧条件,再用当前技能 Key 筛选,不能把跳转后留在画面中的旧记录当成目标。

跳转后筛选到天火闪的技能定义

图中①是技能 Key,②Requires Effect Enabling未勾选,③是原版图标名。右侧Overpower Option为空;这是模板实际设置,不要求给普通技能强行补一条强化版本。横向滚动还能查看下表提到的类型等字段。

unit_abilities_tables主要负责部队技能的界面身份和分类:

列 作用
Key 技能的唯一标识,也是其他表连接它时使用的值。
Requires Effect Enabling 是否需要其他效果先启用这项技能。普通自带技能通常参考模板保持原值。
Icon Name 技能图标名。自定义图标时还要在原版 Pack 中搜索同类图标的实际路径。
Type 技能的界面与行为类别。
Source Type 技能来源的界面分类,应沿字段引用和本地化核对。不要靠这一列判定主动或被动,运行方式还要看unit_special_abilities_tables。
Is Hidden In UI 是否在界面中隐藏。
Overpower Option 另一版本的连接;它可能用于升级、增幅或其他变体,应按模板核对,并非每项技能都使用。

这张表不是完整效果。继续全局搜索技能 Key,通常还会找到unit_special_abilities_tables、技能与阶段的连接、阶段记录及阶段效果。被脚本或其他系统调用的技能还可能出现更多结果。

本例可以直接使用下列原版分类对照,避免根据技能中文名称猜Type:

技能 Key type source_type 适合用来比较什么
wh3_main_unit_abilities_stun_bomb wh_type_area_of_hexes active 本例的范围减益主动技能。
wh3_main_unit_passive_battle_harmony_yang wh_type_augment passive 需要条件配合的宁和被动。
wh3_main_unit_passive_defensive_stance wh_type_augment passive 防御状态被动。

天火闪还保留requires_effect_enabling = false、is_hidden_in_ui = false、is_hidden_in_ui_for_enemy = false、overpower_option为空、icon_name = wh3_main_unit_abilities_stun_bomb。仅改新技能名称时先复用此图标,不必猜新图片路径。分类完整选项及各类授予方式见部队技能详解;把source_type写成passive不会自动去掉主动按钮或建立正确的被动运行规则。

路线一:直接添加已有技能

这是最简单、改动最少的路线。本例让精锐玉勇复用原版“天火闪”:

  1. 从依赖项 → 游戏文件打开land_units_to_unit_abilites_junctions_tables,确认Game-RO:页签,找到南皋霹雳手的天火闪记录。不要使用Assembly Kit 文件中的表。
  2. 在自己的 Pack 中创建同类型、同版本的 DB 表,从只读页复制所需整行并粘贴到自建表;这张表只有两个字段,也可以新增一行,按下方示例分别填写。不要寻找并不存在的“导入单行”操作。
  3. 保持Ability为wh3_main_unit_abilities_stun_bomb。
  4. 把Land Unit改为twcn_tutorial_cth_inf_elite_jade_warriors。
  5. 保存 Pack 并运行诊断。

最终记录是:

Ability Land Unit
wh3_main_unit_abilities_stun_bomb twcn_tutorial_cth_inf_elite_jade_warriors

只要复用原版技能,就不需要把unit_abilities_tables、unit_special_abilities_tables或阶段记录导入 Mod。新兵种会引用游戏现有定义;以后原版更新这项技能时,它也会随原版一起变化。

如果导入的是整张原版data__,必须先把表文件改成自己的名称,再删除其他行。保留db/land_units_to_unit_abilites_junctions_tables/data__会覆盖原版同名表。

路线二:制作独立技能副本

只有需要改变技能本身时才走这条路线。例如把“天火闪”改成精锐玉勇专属版本,可以统一使用:

twcn_tutorial_unit_abilities_stun_bomb

不要从空行猜字段。先全局搜索原技能 Key,记录它实际出现的所有相关表,再复制完整链路。本例至少包含:

表单 本例要复制和修改的内容
unit_abilities_tables 复制界面定义,把Key改为新技能 Key;图标可先复用。
unit_special_abilities_tables 复制主动技能规则,把Key改为新技能 Key,并生成新的Unique ID。
special_ability_to_special_ability_phase_junctions_tables 把新技能连接到新的阶段,并保留适用的敌我目标设置。
special_ability_phases_tables 复制生效阶段,把ID改为新阶段 Key。
special_ability_phase_stat_effects_tables 复制阶段内的近战攻防修正,把Phase改为新阶段 Key。
land_units_to_unit_abilites_junctions_tables 把新技能连接给精锐玉勇。

本例原技能会让目标阶段持续31秒,并通过两条special_ability_phase_stat_effects_tables记录分别降低近战攻击与近战防御。若要修改持续时间或数值,应编辑自己的阶段和效果记录,不能修改原版 Key。

先复制运行规则

在游戏文件的unit_special_abilities_tables中用同一技能 Key 筛选,选中整行,复制到自己 Pack 的同类型、同版本表。把Key改为新技能 Key;Unique ID是另一列数字编号,要为副本生成新的唯一数字,不能填作者前缀字符串,也不能把原技能的数字编号原样留给新技能。

天火闪原版运行规则

图中①Active Time = 31,②Recharge Time = 90、Num Uses = 1,③Effect Range = 35。这些值分别用于技能持续时间、冷却秒数、使用次数和影响范围,不是四种“持续时间”。右侧还能看到Affect Self未勾选、友军数量为 0、敌军数量为 -1;负数是模板的特殊取值,不是让负一个单位受到效果。

先保留完整模板,确认新技能能够工作,再改一个明确目标。比如只想调低冷却,就改自己的Recharge Time,不要同时改目标、范围和阶段,免得无法判断是哪一项导致异常。Num Uses = 1的技能即使冷却结束,也不代表能绕过次数限制再次施放。

再连接自己的阶段

在游戏文件中打开special_ability_to_special_ability_phase_junctions_tables,筛选原技能 Key:

天火闪只有一条敌方阶段连接

图中①Special Ability是技能 Key,②只有Target Enemies勾选,③Phase是阶段 Key,左侧Order = 1。本例的技能与阶段刚好同名,但它们属于不同表,不会因为名称一样就自动建立连接。

复制这条完整连接到自己的表后,填写:

字段 自制副本填写值
Special Ability twcn_tutorial_unit_abilities_stun_bomb
Phase twcn_tutorial_phase_stun_bomb
Order 保留1
Target Self、Target Friends 保持未勾选
Target Enemies 保持勾选

这里的Order是阶段顺序,不是需要全表随机生成的唯一 ID。其他技能可能有多个阶段或不同敌我分支,要保留其实际结构,不能只复制第一条。

复制阶段,再改阶段内的数值

沿原版Phase跳转到special_ability_phases_tables,检查并清除不相干的旧筛选,再筛选天火闪的阶段 Key:

天火闪阶段的持续时间与效果类型

图中①是阶段ID,②Duration = 31,③Effect Type = negative。Cant Move未勾选,不能因为英文 Key 包含stun就断言它会把目标定在原地。复制这条完整记录到自己的表,把ID改为twcn_tutorial_phase_stun_bomb,与上一张连接表的Phase一致。

若修改阶段持续时间,还要核对运行规则里的Active Time及其他阶段。二者虽然在本例中都是 31,也不是所有技能都必须填写相同数字,不能只改一处就假定整个技能生命周期都变了。

然后在special_ability_phase_stat_effects_tables按原阶段 Key 筛选:

天火闪阶段的近战攻防减益

图中①的两条Phase相同,②的Stat分别是stat_melee_attack和stat_melee_defence,③均为Value = -24、How = add,即分别减少 24 点近战攻击和近战防御,不是减少 24%。复制两条完整记录到自己的表,把两处Phase都改为twcn_tutorial_phase_stun_bomb。例如只想让防御下降得轻一些,就改自己副本中stat_melee_defence那条数值;不要顺带改原版记录或另一个统计项。

How在原版这张表中使用add和mult:add按所选数值项相加,mult按倍率修改;例如add +10是增加 10 点,mult 1.1是乘以 1.1,mult 0.9是乘以 0.9。填写时只把数字写进value,不要把add或百分号拼进数值。阶段effect_type有positive、negative、neutral三项,分别用于正面、负面、中性显示分类;本例保留negative,实际减益仍由value = -24及对应统计项决定。

到这里,新单位连接新技能,新技能连接新阶段,两条数值效果也引用新阶段。任何一处仍指向原版阶段,都可能出现“改了副本却没有变化”,或迫使你误改共享原版数据。只复用原版效果而不调整某个阶段时,可以保留对它的引用,不要求把所有共享资源都复制一份。

unit_special_abilities_tables还保存使用次数、冷却、初始冷却、主动/被动、作用范围、目标类型、AI 用法,以及投射物、轰炸、漩涡或召唤等载荷引用。模板没有使用的分支不要为了“完整”而新建。

技能可能还有以下可选数据:

  • special_ability_phase_attribute_effects_tables:阶段内添加或移除属性;
  • special_ability_phase_displays_tables:阶段特效显示;
  • 额外 UI 效果、无效目标、自动停用、切换组、音频或行为连接;
  • Effect 与 Bonus Value:由科技、人物技能或其他战役效果改变部队技能。

这些都应以所选原版模板的全局搜索结果为准。若模板没有某张表的记录,新技能通常也不需要复制那张表。

给独立技能添加文字

复制unit_abilities_tables后,新 Key 不会自动得到原版中文名称和说明。在 Loc 文件中添加:

Key Text示例
unit_abilities_onscreen_name_twcn_tutorial_unit_abilities_stun_bomb 精锐震爆弹
unit_abilities_tooltip_text_twcn_tutorial_unit_abilities_stun_bomb 向指定区域投放震爆弹,短时间削弱敌军的近战作战能力。

如果阶段本身还使用本地化名称,也要查看模板的special_ability_phases_tables及对应 Loc,而不是假设只需要上面两行。

添加多个技能

同一兵种可以在连接表中拥有多行,每行连接一个不同的Ability。但数量越多并不代表越完整:

  • 同类被动可能互相覆盖或重复计算;
  • 主动技能可能共用冷却、切换组或资源;
  • 模板技能可能只适用于人物、特定阵型或特定动画;
  • 过多图标会挤压界面,也会明显改变单位强度。

每添加一项技能就单独测试一次,确认没有问题后再添加下一项。删除技能时只删除新兵种对应的连接行,不要删除原版技能定义。

诊断和游戏测试

  1. 在 RPFM 中确认每个Land Unit和Ability引用都能找到定义。
  2. 若制作独立技能,继续确认新Ability、unit_special_abilities、阶段和阶段效果全部指向自己的 Key。
  3. 运行诊断,处理与新记录有关的 Error。
  4. 只启用测试 Mod,进入自定义战斗查看技能图标、名称和说明。
  5. 对主动技能测试可选目标、范围、使用次数、冷却和持续时间;对被动技能测试触发条件和退出条件。
  6. 使用可控敌我单位对比数值变化,确认效果作用于正确目标。
  7. 若复制了独立技能,同时测试原版拥有者,确认原版技能没有被一起修改。

诊断通过只能证明部分结构和引用成立。技能能显示图标,也不等于目标筛选、AI 使用、动画、特效、音频和战斗数值都正确;最终结果必须在游戏中验证。

图片查看
100%

滚轮或按钮缩放 · 拖动或滑动查看 · Esc 关闭