文件概述

Talent.dbc 是天赋系统的核心文件。每个职业有3个天赋页(由 TalentTab.dbc 定义),每个天赋页是一个网格。Talent.dbc 中的每一行定义网格中的一个天赋点,包含该天赋的各个等级法术(最多5级,CHM 指出第5-9列),以及解锁该天赋所需的前置天赋(取决于,CHM 指出第14列)和前置等级(取决于等级,CHM 指出第17列)。CHM 特别说明了第20列为"需要添加技能书"(重置天赋树时需要禁用最高天赋等级),第22列为"宠物可用"(宠物使用的64位掩码)

数据库对应表:world.talent_dbc

天赋页布局:天赋树是一个垂直布局,由行(TierID)和列(ColumnIndex)控制位置。

列结构

序号字段名类型说明
1IDint天赋编号(CHM:天赋编号)。天赋唯一ID (主键)
2TabIDint天赋选项卡(CHM:天赋选项卡,参考 TalentTab.dbc 中的索引)。决定该天赋属于哪个职业的哪个天赋树
3TierIDint(CHM:行)。天赋层级(行号)。0=第一行 4=第五行
4ColumnIndexint(CHM:列)。列索引。0=左侧 1=中间 2=右侧
5-9SpellRank_1 ~ SpellRank_5int等级编号(CHM:等级编号,共5个等级)。天赋法术各等级的 Spell.dbc ID
10-13Unused_Block1int未使用(CHM:未使用,总为0,共4列)。预留字段
14PrereqTalent_1int取决于(CHM:取决于,Talent.dbc 的索引)。前置天赋ID
15-16Unused_Block2int未使用(CHM:未使用,共2列)
17PrereqRank_1int取决于等级(CHM:取决于等级)。前置天赋需要的点数等级
18-19Unused_Block3int未使用(CHM:未使用,共2列)
20Flagsint需要添加技能书(CHM:需要添加技能书,重置天赋树时需要禁用最高天赋等级)。天赋标志位
21RequiredSpellIDint未知(CHM:未知,总为0)。通常为0
22PetTalentMaskint宠物可用(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个等级的天赋:
  • 1/1 天赋:只使用 SpellRank_1
  • 3/3 天赋:使用 SpellRank_1~3
  • 5/5 天赋:使用 SpellRank_1~5,全部5个等级通用
  • 每个 SpellRank 对应 Spell.dbc 中一个独立的法术条目
前置天赋依赖 - CHM "取决于"系统
CHM 将前置天赋描述为"取决于"(Talent.dbc 的索引):
  • 取决于(第14列):前置天赋ID(Talent.dbc 的索引号)
  • 取决于等级(第17列):前置天赋需要投入的最小点数
  • 连线箭头:前置天赋 → 当前天赋
需要添加技能书(第20列)
CHM 特别说明该列作用:"重置天赋树时需要禁用最高天赋等级"。当玩家重置天赋时,此标志控制最高等级天赋的行为。
宠物可用(第22列)
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;