文件概述

ItemSet.dbc 是装备套装系统的核心文件。根据 CHM 中文详解,每个套装由编号、多语言名称(第2-17列)、物品编号(第19-28列,最多10件,参考 item_template 表的 entry 字段)、技能编号(第36-43列,最多8个)、触发技能(第44-51列,最多8个)组成。套装需要特定件数才能触发特效(SetSpell),特效法术和触发阈值是该文件的核心数据。CHM 还特别指出第29-35列为未知(都为0),第18列为标识(未使用),第52列为需要专业,第53列为需要专业等级。

数据库对应表:world.itemset_dbc。物品通过 item_template.itemset 字段关联到套装。

列结构

序号字段名类型说明
1IDint编号(CHM:编号)。套装唯一ID (主键)
2-17Name_Lang_*varchar(100)名称(CHM:各国语言名称)。套装名称多语言文本(16种语言)
18Name_Lang_Maskint标识(CHM:标识,未使用)。固定值标记
19-28ItemID_1 ~ ItemID_10int物品编号(CHM:物品编号,最多10件,参考 item_template 表的 entry 字段)。套装成员物品ID
29-35Unknown_Blockint未知(CHM:未知,都为0)。7个字段的预留块,值全部为0
36-43SetSpellID_1 ~ SetSpellID_8int技能编号(CHM:技能编号)。套装特效法术ID(最多8种),关联 Spell.dbc
44-51SetThreshold_1 ~ SetThreshold_8int触发技能(CHM:触发技能)。触发对应特效需要的装备件数阈值
52RequiredSkillint需要专业(CHM:需要专业)。所需技能ID
53RequiredSkillRankint需要专业等级(CHM:需要专业等级)。所需技能等级

重要字段详解

套装特效触发机制
CHM 详解指出每个特效分为"技能编号"(SetSpellID)和"触发技能"(SetThreshold)两部分:
  • 技能编号(第36-43列):套装触发的具体法术ID,关联 Spell.dbc
  • 触发技能(第44-51列):触发对应技能需要的装备件数阈值
  • 例如:T10法师套装的4件套效果:SetThreshold = 4,装备4件时触发
  • 典型的套装阈值:2件、4件、6件、8件(取决于套装大小)
  • 最多可定义 8 组技能-阈值配对
SetThreshold 举例
以 T10 死亡骑士套装为例:
特效SetSpellIDSetThreshold说明
2件套706552提高湮没和天灾打击的伤害
4件套706564提高血魄打击和心脏打击的爆击几率
ItemID 关联体系
  • ItemSet.dbc.ItemID_* → item_template.entry(物品本身的entry,CHM 确认)
  • item_template.itemset → ItemSet.dbc.ID(反向关联)
  • 套装名称使用多语言字段(Name_Lang_zhCN 等)
  • item_set_names 表提供集内每个物品的特定名称
未知字段块(第29-35列)
CHM 详解特别指出第29-35列为"未知,都为0"。这7个连续的0值字段可能为未来扩展预留或已弃用的字段位置。

使用技巧

查询某套装的所有成员物品和特效:
SELECT s.Name_Lang_zhCN AS 套装名,
       s.SetSpellID_1, s.SetThreshold_1,
       s.SetSpellID_2, s.SetThreshold_2,
       it.entry, it.name
FROM itemset_dbc s
JOIN item_template it ON it.itemset = s.ID
WHERE s.ID = 891;  -- T10死亡骑士套装
创建自定义套装:
-- 1. 在 itemset_dbc 创建套装定义
INSERT INTO itemset_dbc (ID, Name_Lang_zhCN, ItemID_1, ItemID_2,
    SetSpellID_1, SetThreshold_1)
VALUES (9999, '测试套装', 12345, 12346, 99999, 2);
-- 2. 更新物品关联到套装
UPDATE item_template SET itemset = 9999 WHERE entry IN (12345, 12346);