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

搜索教程

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

输入教程标题开始搜索。

教程目录

招募详解

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

招募并不等于“把兵种填进兵营”。建筑招募只是最常见的入口;全局招募、特殊招募、盟友招募、佣兵池和脚本授予都有各自的数据链。先确定玩家要从哪个界面、以什么条件获得部队,再选择对应表单。

本文讲解普通部队招募的数据结构和检查方法,不把建筑招募链套用于领主。《战锤 III》新建领主的招募池与解锁需要 Lua 控制,见《创建领主单位》和《创建传奇领主单位》。某个建筑、派系或兵种只用于说明查找思路,不代表唯一做法。

先分清五种招募路径

玩家看到的结果 常见数据入口 适用情况
建造建筑后出现部队 building_units_allowed_tables 普通城镇建筑、地标、游牧建筑等提供招募
通过某种特殊来源招募 recruitment_sources_tables及相关连接表 需要独立来源分类、Effect 加成或特殊面板
从盟友处借用部队 allied_recruitment_*系列表 盟友招募权限和核心兵种
从有数量上限的池中招募 mercenary_*系列表 雇佣兵、招募池、定期补充的特殊部队
事件、任务或脚本直接生成 脚本、任务和事件数据 不经过常规招募列表,或需要复杂运行时条件

同一个兵种可以同时出现在多条路径中。例如,它既能由建筑常规招募,也能进入特殊招募池。反过来,只制作了main_units_tables和land_units_tables并不会让新兵种自动出现在任何招募界面。

建筑招募的数据链

最常用的数据链如下:

建筑等级 building_levels
    ↓ building
建筑可招募部队 building_units_allowed
    ↓ unit
主单位 main_units
    ↓ 该单位在目标军队分组中是否有许可
units_to_groupings_military_permissions
    ↓ military_group
groupings_military

建筑招募连接表

编号①~④依次说明连接记录 ID、建筑等级、主单位和附加字段。当前原版表中,玉勇wh3_main_cth_inf_jade_warriors_0对应 14 条连接,既有不同等级,也有不同机制使用的建筑。选择模板时应继续反查建筑的所属派系和实际用途,不是把命中的行全部复制给新兵种。

building_units_allowed_tables

这张表负责把某个建筑等级与某个main_units记录连接起来。它不是完整的派系许可:还要按目标派系实际使用的military_group,检查units_to_groupings_military_permissions_tables。不要把自定义战斗许可当成战役招募许可,也不要为了省事把所有军队分组都加上。

字段 作用 检查重点
key 当前连接记录的唯一整数 ID 类型是I32,不能填写带字母的作者前缀。使用不重复的整数,并检查原版及兼容 Mod 是否已占用;不要照抄模板 ID。
building 提供招募的建筑等级 填building_levels_tables中的 Key,不是建筑链 Key
unit 被招募的主单位 填main_units_tables中的 Key,不是land_units Key
XP 招募时附带的经验等级 与其他经验加成叠加时需要进游戏确认
conditions 额外条件引用 只有确实需要模板中的条件时才复制
faction 可选的派系限制 空值通常表示不再用此字段额外限定;实际范围仍受建筑可用性影响
enabled 原版连接保留的布尔字段 当前 Schema 没有解释其运行条件,默认值为false,原版可招募记录也有不勾选的情况。沿用同类模板,不能解释成“没勾选就一定不能招募”。

这里的building必须指向一个具体建筑等级。建筑链、建筑等级和文化变体不是同一个概念:

  • building_chains_tables定义整条建筑链。
  • building_levels_tables定义链中的某一级建筑。
  • building_culture_variants_tables决定不同文化、亚文化或派系看到的名称和图标。
  • building_chain_availabilities_tables和槽位相关表决定哪些派系、地区或战役能够建造该建筑链。

因此,“连接表已经填好但游戏里招募不到”的原因,可能不是招募连接本身,而是目标派系根本无法建造对应建筑。

选择哪个建筑

不要只搜索名称里带“兵营”的建筑。应先在原版数据中找到一个与目标条件接近的部队,再从它反查building_units_allowed_tables:

  1. 在依赖项中打开main_units_tables,找到目标模板兵种的 Key。
  2. 使用全局搜索或列筛选,在building_units_allowed_tables中搜索该 Key。
  3. 读取命中的building,跳转到building_levels_tables。
  4. 继续查看建筑链、文化变体和可用性,确认哪些派系、聚居地和建筑等级实际能用。
  5. 将模板的适用条件与自己的设计逐项比较,而不是整行照抄。

可供选择的建筑不限于常规兵营,还可能是地标、资源建筑、港口、主城建筑、游牧建筑或派系专属建筑。选择标准是玩家应在什么条件下解锁该兵种,而不是建筑在数据库中的英文名称像不像“兵营”。

招募来源

recruitment_sources_tables定义招募来源的身份,相关连接表再决定来源如何分类、如何被 Effect 影响,以及个别部队是否覆盖默认来源。

recruitment_sources_tables

字段 作用
key 招募来源 Key
max_per_army 每支军队在该来源下允许的数量限制;具体是否显示及如何叠加需参照模板实测
audio_recruit_vo 从此来源成功招募时播放的动态语音事件标识;空值也可能是原版设置,不是必须填写的普通兵种名称

招募来源的Key、军队数量限制和招募语音

图中编号①是招募来源 Key,②是max_per_army,③是audio_recruit_vo。这张表只定义来源身份;是否真的能招募仍取决于后续连接和实际入口。

不要因为这张表很短就认为创建一行会自动生成招募入口。它只是来源定义,还需要现有系统、连接表、Effect 或脚本实际使用这个 Key。

全部招募来源与原版数量值

当前recruitment_sources_tables共 24 项,下表完整列出。它是来源定义全集,不是“新建一行即可启用”的功能清单;原版的20是该来源的设置,也不能据此推断战斗中所有军队都被本表统一限制为二十队。

来源 Key max_per_army
allied_recruitment 4
amethyst_units 5
blessed_spawning 20
daemonic_summoning 6
daemonic_summoning_belakor 20
dlc27_monstrous_arcanum 20
faction_recruitment 20
flesh_lab 20
grudge_settler 3
horde_recruitment 20
hostile_foreign_slot_recruitment 20
imperial_supply 20
mercenary_recruitment 20
monster_pen 20
nurgle_buildings 20
ogre_mercenaries 3
province_recruitment 20
raise_dead 20
renown 20
sea_region_recruitment 20
setrapy 20
tamurkhan_chieftains 8
wh3_dlc27_nor_treacheries 20
wh3_dlc27_sla_daemonic_attraction 20

普通建筑招募先研究province_recruitment;全局来源看faction_recruitment;盟友看allied_recruitment;游牧上下文看horde_recruitment。其他特殊来源保留原 Key,必须连同目标机制的初始化、单位池和权限一起使用。

招募类型与来源

表单 作用
unit_recruitment_types_tables 定义招募类型 Key
unit_recruitment_type_recruitment_sources_tables 将招募类型与招募来源连接
unit_recruitment_source_overrides_tables 为指定部队覆盖来源或来源成本

如果只是让一个普通新兵种从现有建筑出现,通常不需要新建招募来源。只有设计确实需要一个独立来源,或者原版同类机制通过这些表实现时,才沿用相同的数据链。

当前实际使用的类型映射

unit_recruitment_type_recruitment_sources_tables当前只有以下七条连接。左列全部大写;它与右列的来源 Key 不是同一字段。

unit_recruitment_type recruitment_source
ALLIED allied_recruitment
FACTION faction_recruitment
HORDE horde_recruitment
HORDE_PROVIDER horde_recruitment
HOSTILE_FOREIGN_SLOT hostile_foreign_slot_recruitment
PROVINCE province_recruitment
SEA_REGION sea_region_recruitment

本次在运行时原版 DB 中没有找到unit_recruitment_types_tables的独立数据文件,因此这七项是实际连接中使用的值,不冒充引擎允许值的完整枚举。普通新兵种加入现有建筑时,复用现有类型和来源关系,不需要为了表名完整创建一张空的类型表。

招募来源的 Effect

招募容量、招募等级、成本或补员一类效果,常通过 Effect 的 Bonus Value 指向某个招募来源:

Effect
  ↓ bonus value
effect_bonus_value_recruitment_source_junctions
  ↓ recruitment_source
recruitment_sources

相关表包括:

  • campaign_bonus_value_ids_recruitment_sources_tables:登记可用于招募来源的 Bonus Value。
  • effect_bonus_value_recruitment_source_junctions_tables:把 Effect、Bonus Value 和招募来源连接起来。
  • effect_bonus_value_basic_junction_tables:说明 Effect 支持哪些基础数值类别。

不要只看 Effect 的中文说明猜作用。先从已知有效的原版 Effect 反查 Bonus Value 和招募来源,再比较 Scope、正负号和实际授予入口。

来源容量的直接例子

在effect_bonus_value_recruitment_source_junctions_tables.effect筛选wh3_main_effect_recruitment_cap_allied_units,应得到bonus_value=unit_max_mod、recruitment_source=allied_recruitment。这与来源定义中的基础max_per_army=4分属基础值和效果修正两层。

当前这张连接表的五条原版记录全部使用unit_max_mod;本次没有从该表核实成本或招募经验的其他 Bonus Value。想改成本、经验或回合时,应反查对应效果实际使用的表,不能在这里自造cost或xp。

全局招募与特殊招募

游戏中显示为全局招募、特殊招募或派系机制招募的功能,不一定由同一组表实现。常见组成包括:

  • 建筑解锁某个主单位。
  • 招募来源决定部队出现在哪种来源中。
  • Effect 修改来源容量、招募等级、回合数或成本。
  • 派系、亚文化或兵种集合限定适用对象。
  • 脚本或机制系统把部队加入可用池。

判断路径时,先找一个在游戏里表现相同的原版部队,而不是找一个名称相似的表。全局搜索该部队的main_units Key,观察它在哪些表和脚本中出现;没有命中的路径不要自行脑补。

盟友招募

盟友招募使用独立的权限数据。常见表包括:

表单 作用
allied_recruitment_core_units_tables 原版核心部队资料;RPFM 将其列为Banned table,只读查看,不导入、不新建到普通 Mod。
allied_recruitment_unit_permissions_tables 控制哪些部队具备盟友招募权限
factionwide_recruitment_unit_exclusions_sets_tables 定义派系范围的招募排除集合
factionwide_recruitment_unit_exclusions_units_sets_junctions_tables 把兵种加入排除集合
faction_factionwide_recruitment_unit_exclusions_set_junctions_tables 将排除集合应用到派系

把部队加入普通建筑招募不代表它会自动进入盟友招募。反过来,盟友招募权限也不会替代该部队在原属派系中的常规招募入口。

制作时应选择一个与新兵种身份相同的原版模板:普通核心兵种、机制兵种、领主专属兵种或明确禁止盟友招募的兵种,其权限可能完全不同。

佣兵与招募池

需要“池中当前有几队、每回合是否补充、最多储存多少”的设计时,通常应查看mercenary_*系列表,而不是仅用建筑招募。

数据链

mercenary_unit_groups
    ↓ group
mercenary_pool_to_groups_junctions
    ↓ pool
mercenary_pools
    ↓ 由派系、机制或脚本接入

mercenary_unit_groups_tables

字段 作用
key 佣兵单位组 Key
unit_record 组内使用的main_units记录
max_count 该组允许储存的最大数量
max_replenish_per_turn 单回合最多补充数量
chance_to_replenish 触发补充的概率
use_partial_replenishment 是否使用分数式补充

mercenary_pools_tables

字段 作用
key 招募池 Key
recruitment_source 此池使用的招募来源
ui_recruitment_info 招募界面信息引用

mercenary_pool_to_groups_junctions_tables

这张表把单位组放进招募池,并可附加派系、亚文化和科技条件。当前原版结构没有game_expansion_key列,内容包许可须从其他实际引用另查。

字段 作用
key 连接记录 Key
pool 目标招募池
group 目标佣兵单位组
initial_unit_count 战役开始或池初始化时的数量
faction_requirement 可选派系条件
subculture_requirement 可选亚文化条件
tech_requirement 可选科技条件

faction_to_mercenary_set_junctions_tables等表还会决定派系使用哪套佣兵数据。仅建池和单位组,不接入派系或脚本,游戏里仍可能没有入口。

一个有分数补充的原版池例子

巍京义枪骑(巨龙马骑兵)的 Key 为wh3_twa07_cth_cav_jade_longma_riders_ror_0,名称已对照官方三种 Loc。它在mercenary_unit_groups_tables中使用同名组:max_count=1、chance_to_replenish=100、use_partial_replenishment=true、max_replenish_per_turn=0.1。

这里100是概率值的原版写法,不填1或0.01;0.1是启用分数补充后的量,不是 10%的触发概率。仅按这个量计算,累积一份需要十次完整增量,但实际何时开始计数、招募后冷却及脚本修正仍由对应系统决定,不能只据此承诺十回合一定能再次招募。

池连接的pool=wh3_main_cth_units_of_renown_pool、group=上述组 Key、initial_unit_count=1、subculture_requirement=wh3_main_sc_cth_cathay;faction_requirement与tech_requirement为空。池定义recruitment_source为空、ui_recruitment_info=renown。这说明不能看到空来源便强行填renown,也不能把初始库存1当成军队现存数量上限。

新连接的key是整数 ID,应检查未占用后使用自己的值;复制普通 Mod 中的池行前还要确认目标派系已经接入该池,不能把特殊兵种仅换一个 Key 当成普通建筑招募。

招募成本、招募回合与经验

这些数值不全在同一张表:

  • main_units_tables保存部队的基础招募成本、维持费、招募回合等主单位数据。
  • building_units_allowed_tables.XP可给建筑招募提供初始经验。
  • Effect 可以按派系、军队、人物、地区、兵种集合或招募来源修改成本、经验、容量和回合数。
  • 难度、人物技能、科技、建筑、物品和机制还可能在运行时继续叠加。

因此,界面最终数值不等于某一列的原始值。排查时应记录基础值,再逐层检查当前人物、军队、地区和派系获得的 Effect。

为新兵种接入建筑招募

下面只演示最常见路径。若目标是特殊招募、佣兵池或脚本授予,应改用对应章节的数据链。

  1. 确认新兵种的main_units Key 已完成且唯一。
  2. 在原版数据中找一个招募条件接近的模板兵种。
  3. 全局搜索模板 Key,定位其building_units_allowed_tables记录。
  4. 跳转到模板的building_levels_tables,确认建筑等级、所属建筑链和实际可用派系。
  5. 把所需连接记录复制或导入自己的 Pack。
  6. 将key改为不重复的整数 ID,不要填兵种 Key 或带字母的作者前缀。
  7. 将unit改为新兵种的main_units Key。
  8. 保留或更换building,以符合设计中的解锁条件。
  9. 逐项判断XP、conditions、faction和enabled,不要无条件照抄。
  10. 检查新兵种是否还需要盟友权限、特殊来源或派系排除规则。
  11. 运行 RPFM 诊断并保存为 Mod Pack。
  12. 进入正确派系和正确建筑等级的战役测试。

普通建筑招募可以直接填写什么

以新主单位yourmod_jade_unit加入玉勇原有建筑为例,需要三条连接,building分别填wh3_main_cth_jade_barracks_1、wh3_main_cth_jade_barracks_2、wh3_main_cth_jade_barracks_3;三行unit均填新主单位 Key。每行使用不同的唯一整数key,XP=0、conditions=0、faction为空、enabled=false,这是对应玉勇原版三行的附加配置。

这些建筑的官方简中名称依次为练兵营、宿兵寮、玉勇营。只在第三级解锁时只添加_3那一行;不要期待同一建筑链自动让后续等级继承未配置的招募。

另在units_to_groupings_military_permissions_tables为yourmod_jade_unit增加military_group=wh3_main_cth的许可。该分组与自定义战斗派系wh3_main_cth_cathay_mp不同;前者供战役军队许可,后者用于另一张自定义战斗连接表。

如何自行查找数据

从兵种反查

已知原版兵种时,搜索它的main_units Key。重点查看:

  • building_units_allowed_tables:哪些建筑提供招募。
  • mercenary_unit_groups_tables:是否属于招募池。
  • allied_recruitment_*:是否参与盟友招募。
  • unit_recruitment_source_overrides_tables:是否覆盖招募来源。
  • Effect、脚本和机制数据:是否由运行时系统解锁。

从建筑反查

已知建筑时,先在building_levels_tables确定具体等级 Key,再在building_units_allowed_tables筛选building列。这样可以看到该等级提供的完整部队列表。

从招募界面反查

如果只知道游戏里的功能名称:

  1. 在本地化文本中查找界面名称,获得可能的 Key。
  2. 在 RPFM 全局搜索该 Key 和对应兵种 Key。
  3. 比较多个命中表之间的引用方向。
  4. 检查相关脚本是否负责初始化招募池或授予来源。
  5. 用一个已知有效的原版记录验证推断,再修改自己的记录。

常见错误

  • 新兵种完整但无法招募:没有任何招募入口,或连接中的unit误填成land_units Key。
  • 建筑建成仍不显示:检查是否连接到实际建筑等级、建筑与军队分组许可、派系及附加条件;不要仅凭enabled未勾选就判定原因。
  • 所有派系都能招募:复制时丢失派系、亚文化、建筑可用性或机制限制。
  • 只有本地招募,没有预期的特殊入口:普通建筑连接不会自动创建特殊招募来源。
  • 招募池永不补充:只定义了池,没有正确连接单位组、补充参数或派系接入。
  • 数量与设置不一致:招募池、兵种上限和每军队限制是不同系统,可能同时生效。
  • 招募成本异常:基础成本之外还有 Effect、难度和来源覆盖。
  • 盟友无法招募:普通招募可用不代表盟友权限自动成立。

游戏内验收

  • 目标派系能在预定入口看到新兵种,其他派系不会误获。
  • 建筑等级、科技、派系和亚文化条件在正确时机生效。
  • 本地、全局、特殊、盟友或佣兵入口与设计一致。
  • 招募成本、招募回合、经验和容量在无加成与有加成状态下都合理。
  • 招募池的初始数量、上限和每回合补充符合设置。
  • 保存并读取战役后,招募入口和池数量保持正常。

RPFM 诊断只能检查部分引用和数据格式,不能证明战役脚本、招募界面和 Effect 叠加结果。最终必须在游戏中分别测试解锁前、解锁后和读取存档三个状态。

图片查看
100%

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