文件概述

SkillLineAbility.dbc 是专业技能系统的核心关联表,它连接了 SkillLine.dbc(技能线定义)和 Spell.dbc(法术定义)。CHM 详解将其描述为"技能面板上的技能熟练度和技能存放在哪个位置"。每一行指定了某个技能线在达到指定等级时可以学习的法术配方,以及该法术/配方在何种技能等级范围内提供经验值(黄/绿/灰机制)。CHM 特别说明了 法术取代(取代这个技能的法术)和 自动学习类型(1=学习本专业时学到技能)。

数据库对应表:world.skilllineability_dbc

列结构

序号字段名类型说明
1IDint编号(CHM:编号)。唯一标识 (主键)
2SkillLineint技能编号(CHM:技能编号)。技能线ID,关联 SkillLine.dbc
3Spellint法术编号(CHM:法术编号)。关联 Spell.dbc,该技能线上可学习的法术/配方
4RaceMaskint种族掩码(CHM:种族掩码)。种族限制。0=无限制,否则按位组合的种族限制
5ClassMaskint职业掩码(CHM:职业掩码)。职业限制。0=无限制,否则按位组合的职业限制
6ExcludeRaceint排除种族(CHM:排除种族)。排除的种族掩码(反向限制)。0=不排除
7ExcludeClassint排除职业(CHM:排除职业)。排除的职业掩码(反向限制)。0=不排除
8MinSkillLineRankint最小技能等级(CHM:最小技能等级)。学习该法术所需的最低技能等级
9SupercededBySpellint法术取代(CHM:法术取代,取代这个技能的法术)。当学习更高等级法术时,此法术将被替换
10AcquireMethodint自动学习类型(CHM:自动学习类型,1=学习本专业时学到技能)。获取方式:0=可训练 1=配方学习 2=任务/其他
11TrivialSkillLineRankHighint最高技能等级(CHM:最高技能等级,技能变成灰色(绿色=(灰色+黄色)/2))。技能经验升变上限
12TrivialSkillLineRankLowint最低技能等级(CHM:最低技能等级,技能变成黄色(下面是橙色))。技能经验升变下限
13-14CharacterPoints_1,2int角色点数(CHM:角色点数)。角色点数消耗(如学习配方的训练点等)

重要字段详解

技能等级升变系统(黄/绿/灰)- CHM详解
CHM 详细说明了技能颜色的变化机制:
技能等级配方颜色升级几率判断条件
技能 < TrivialSkillLineRankLow橙色(下面是橙色)100%必定升级
TrivialSkillLineRankLow ≤ 技能 < 中间值黄色(最低技能等级使技能变黄)~75%高几率升级
中间值(绿色≈(灰色+黄色)/2)绿色~25%低几率升级
技能 ≥ TrivialSkillLineRankHigh灰色(最高技能等级使技能变灰)0%不再升级
CHM 给出公式:绿色 = (灰色 + 黄色)/ 2,即中间值由高低两端的平均值决定。
AcquireMethod / 自动学习类型
CHM 特别说明1=学习本专业时学到技能
  • 0 可训练:可从技能训练师处学习(最常用)
  • 1 配方学习/自动学习:学习本专业时自动学到技能(CHM详解)
  • 2 任务/其他:通过完成任务或其他方式获得
RaceMask/ClassMask 限制
  • RaceMask = 0, ClassMask = 0:所有种族和职业都可以学习
  • ExcludeRace 和 ExcludeClass:反向排除特定种族/职业
  • 位掩码计算同 ChrRaces.dbc/ChrClasses.dbc 中的规则

使用技巧

查询锻造技能在300级时可学的所有配方:
SELECT sla.Spell, s.SpellName_Lang_zhCN AS 配方名,
       sla.MinSkillLineRank, sla.TrivialSkillLineRankHigh,
       sla.TrivialSkillLineRankLow
FROM skilllineability_dbc sla
JOIN spell_dbc s ON sla.Spell = s.ID
WHERE sla.SkillLine = 164  -- 锻造
  AND sla.MinSkillLineRank = 300
ORDER BY sla.TrivialSkillLineRankHigh;