SkillRaceClassInfo.dbc
种族/职业技能限制文件,控制每个种族和职业可以学习的技能及上限
文件概述
SkillRaceClassInfo.dbc 定义了哪些种族和职业可以学习哪些技能,以及技能的最高等级上限。每个技能可以为不同的种族/职业组合设置不同的最高技能等级。这是控制游戏中技能可用性的核心文件。
列结构
| 列号 | 字段名 | 类型 | 描述 |
|---|---|---|---|
| 1 | ID | 整数 | 唯一标识符 |
| 2 | SkillID | 整数 | 技能ID(对应SkillLine.dbc) |
| 3 | RaceMask | 位掩码 | 可用种族掩码 |
| 4 | ClassMask | 位掩码 | 可用职业掩码 |
| 5 | Flags | 整数 | 标志位 |
| 6 | MinLevel | 整数 | 学习该技能所需的最低等级 |
| 7 | SkillTierID | 整数 | 技能等级组ID(对应SkillTiers.dbc) |
| 8 | SkillCostID | 整数 | 学习费用ID(对应SkillCostsData.dbc,0=无费用) |
重要字段详解
RaceMask(种族掩码)与 ClassMask(职业掩码)
使用位掩码来允许多个种族/职业使用同一技能。掩码值:
| 位 | 种族掩码值 | 种族 | 职业掩码值 | 职业 |
|---|---|---|---|---|
| 0 | 1 | 人类 | 1 | 战士 |
| 1 | 2 | 兽人 | 2 | 圣骑士 |
| 2 | 4 | 矮人 | 4 | 猎人 |
| 3 | 8 | 暗夜精灵 | 8 | 盗贼 |
| 4 | 16 | 亡灵 | 16 | 牧师 |
| 5 | 32 | 牛头人 | 32 | 死亡骑士 |
| 6 | 64 | 侏儒 | 64 | 萨满 |
| 7 | 128 | 巨魔 | 128 | 法师 |
| 8 | 256 | 地精 | 256 | 术士 |
| 9 | 512 | 血精灵 | 1024 | 德鲁伊 |
| 10 | 1024 | 德莱尼 | - | - |
所有种族可用 = 0xFFFFFFFF (-1),所有职业可用 = 0xFFFFFFFF (-1)。
Flags(标志位)
| 标志 | 值 | 说明 |
|---|---|---|
| SKILL_FLAG_ABANDON | 0x1 | 可以遗忘此技能 |
| SKILL_FLAG_ALWAYS_MAX | 0x2 | 始终显示最大等级 |
| SKILL_FLAG_IS_SPECIALIZATION | 0x4 | 是专精技能 |
| SKILL_FLAG_UNARMED | 0x8 | 无武器技能 |
| SKILL_FLAG_MONO_GAIN | 0x10 | 单一来源获取经验 |
SkillTierID(技能等级层次)
指向 SkillTiers.dbc,定义了技能在不同等级段的最大值。例如武器技能:
- 1-300:经典旧世上限
- 1-375:燃烧的远征上限
- 1-450:巫妖王之怒上限
使用技巧
- 允许某个种族/职业使用新技能时,设置合适的 RaceMask 和 ClassMask
- 使用位掩码 OR 运算组合多个种族/职业(如人类+矮人 = 1 | 4 = 5)
- -1 (0xFFFFFFFF) 表示所有种族或所有职业都可以使用
- SkillCostID 为0时技能免费学习,否则引用 SkillCostsData.dbc 的费用