Talent.dbc
天赋定义表(天赋),定义了游戏中所有职业的天赋技能。CHM 详解涵盖了:天赋编号、天赋选项卡(参考 TalentTab.dbc 索引)、行列位置、等级编号(5级天赋)、取决于(Talent.dbc 索引)、取决于等级、需要添加技能书(重置天赋树时需要禁用最高天赋等级)、宠物可用(宠物使用的64位掩码,参考 CreatureFamily.dbc)等字段。
文件概述
Talent.dbc 是天赋系统的核心文件。每个职业有3个天赋页(由 TalentTab.dbc 定义),每个天赋页是一个网格。Talent.dbc 中的每一行定义网格中的一个天赋点,包含该天赋的各个等级法术(最多5级,CHM 指出第5-9列),以及解锁该天赋所需的前置天赋(取决于,CHM 指出第14列)和前置等级(取决于等级,CHM 指出第17列)。CHM 特别说明了第20列为"需要添加技能书"(重置天赋树时需要禁用最高天赋等级),第22列为"宠物可用"(宠物使用的64位掩码)。
数据库对应表:world.talent_dbc。
天赋页布局:天赋树是一个垂直布局,由行(TierID)和列(ColumnIndex)控制位置。
列结构
| 序号 | 字段名 | 类型 | 说明 |
|---|---|---|---|
| 1 | ID | int | 天赋编号(CHM:天赋编号)。天赋唯一ID (主键) |
| 2 | TabID | int | 天赋选项卡(CHM:天赋选项卡,参考 TalentTab.dbc 中的索引)。决定该天赋属于哪个职业的哪个天赋树 |
| 3 | TierID | int | 行(CHM:行)。天赋层级(行号)。0=第一行 4=第五行 |
| 4 | ColumnIndex | int | 列(CHM:列)。列索引。0=左侧 1=中间 2=右侧 |
| 5-9 | SpellRank_1 ~ SpellRank_5 | int | 等级编号(CHM:等级编号,共5个等级)。天赋法术各等级的 Spell.dbc ID |
| 10-13 | Unused_Block1 | int | 未使用(CHM:未使用,总为0,共4列)。预留字段 |
| 14 | PrereqTalent_1 | int | 取决于(CHM:取决于,Talent.dbc 的索引)。前置天赋ID |
| 15-16 | Unused_Block2 | int | 未使用(CHM:未使用,共2列) |
| 17 | PrereqRank_1 | int | 取决于等级(CHM:取决于等级)。前置天赋需要的点数等级 |
| 18-19 | Unused_Block3 | int | 未使用(CHM:未使用,共2列) |
| 20 | Flags | int | 需要添加技能书(CHM:需要添加技能书,重置天赋树时需要禁用最高天赋等级)。天赋标志位 |
| 21 | RequiredSpellID | int | 未知(CHM:未知,总为0)。通常为0 |
| 22 | PetTalentMask | int | 宠物可用(CHM:宠物可用,宠物使用的64位掩码,参考 CreatureFamily.dbc)。控制哪些宠物家族可使用此天赋 |
重要字段详解
天赋网格布局
每个天赋页是一个由行和列组成的网格:
每个天赋页是一个由行和列组成的网格:
| TierID(行) | 行名 | 需要的上层点数 | 说明 |
|---|---|---|---|
| 0 | 第1行 | 0 | 初始可用 |
| 1 | 第2行 | 5 | 需要上层投入5点 |
| 2 | 第3行 | 10 | 需要上层投入10点 |
| 3 | 第4行 | 15 | 需要上层投入15点 |
| 4 | 第5行 | 20 | 需要上层投入20点 |
| 5 | 第6行 | 25 | 需要上层投入25点 |
| 6 | 第7行 | 30 | 终极天赋行 |
天赋等级设计(SpellRank)- CHM详解
CHM 指出第5-9列为"等级编号",即最多5个等级的天赋:
CHM 指出第5-9列为"等级编号",即最多5个等级的天赋:
- 1/1 天赋:只使用 SpellRank_1
- 3/3 天赋:使用 SpellRank_1~3
- 5/5 天赋:使用 SpellRank_1~5,全部5个等级通用
- 每个 SpellRank 对应 Spell.dbc 中一个独立的法术条目
前置天赋依赖 - CHM "取决于"系统
CHM 将前置天赋描述为"取决于"(Talent.dbc 的索引):
CHM 将前置天赋描述为"取决于"(Talent.dbc 的索引):
- 取决于(第14列):前置天赋ID(Talent.dbc 的索引号)
- 取决于等级(第17列):前置天赋需要投入的最小点数
- 连线箭头:前置天赋 → 当前天赋
需要添加技能书(第20列)
CHM 特别说明该列作用:"重置天赋树时需要禁用最高天赋等级"。当玩家重置天赋时,此标志控制最高等级天赋的行为。
CHM 特别说明该列作用:"重置天赋树时需要禁用最高天赋等级"。当玩家重置天赋时,此标志控制最高等级天赋的行为。
宠物可用(第22列)
CHM 说明该列为"宠物使用的64位掩码,参考 CreatureFamily.dbc"。用于控制哪些宠物家族可以使用此天赋(主要用于猎人宠物天赋系统)。
CHM 说明该列为"宠物使用的64位掩码,参考 CreatureFamily.dbc"。用于控制哪些宠物家族可以使用此天赋(主要用于猎人宠物天赋系统)。
使用技巧
查询战士武器天赋树的所有天赋:
SELECT t.ID, t.TierID, t.ColumnIndex,
s1.SpellName_Lang_zhCN AS 天赋名,
t.PrereqTalent_1, t.PrereqRank_1
FROM talent_dbc t
JOIN spell_dbc s1 ON t.SpellRank_1 = s1.ID
WHERE t.TabID = 161 -- 战士→武器天赋TabID
ORDER BY t.TierID, t.ColumnIndex;
- 自定义天赋:先在 Spell.dbc 创建各等级法术,再在 Talent.dbc 添加新行
- 修改天赋布局:修改 TierID(行)和 ColumnIndex(列)可改变天赋位置
- 设置依赖关系:使用"取决于"(第14列)创建天赋之间的箭头连线
- 宠物天赋:通过宠物可用(第22列)的64位掩码定义宠物家族关联