文件概述

CreatureFamily.dbc 是猎人宠物系统的核心文件之一。每个猎人可以驯服多种类型的宠物,每种宠物属于一个家族(如狼、猫、蜘蛛、熊等)。宠物家族决定了该类型宠物的基础属性范围(含最小/最大尺寸及对应等级)、可学习的技能(通过技能线关联)、喜欢的食物(宠物食物分类)以及天赋类型。根据 CHM 中文详解,第2-5列为尺寸范围控制,第6-7列为技能线,第8列为宠物食物分类,第9列为宠物天赋类型,第28列为图标文件。

数据库对应表:world.creaturefamily_dbc。宠物家族 ID 在 creature_template 的 family 字段中被引用。

列结构

序号字段名类型说明
1IDint宠物家族编号(主键)。1=狼 2=猫 3=蜘蛛 4=熊 5=野猪 6=鳄鱼 7=风蛇 等
2MinScalefloat最小尺寸(CHM:最小尺寸)。宠物最小缩放比例
3MinScaleLevelint最小尺寸等级(CHM:最小尺寸等级)。最小缩放的等级阈值
4MaxScalefloat最大尺寸(CHM:最大尺寸)。宠物最大缩放比例
5MaxScaleLevelint最大尺寸等级(CHM:最大尺寸等级)。宠物从 MinScale 增长到 MaxScale
6-7SkillLine_1, SkillLine_2int技能线(CHM:技能线,共2列)。关联 SkillLine.dbc,定义该家族宠物可自动学习的技能
8PetFoodMaskint宠物食物分类(CHM:宠物食物分类)。位标志定义宠物可以吃什么类型的食物
9PetTalentTypeint宠物天赋类型(CHM:宠物天赋类型)。0=狡诈 1=狂野 2=坚韧
10CategoryEnumIDint分类枚举(CHM:分类枚举)。用于宠物手册中的分类
11-26Name_Lang_*varchar(100)家族名称(CHM:各国语言版本名称)。多语言文本(16种语言)
27Name_Lang_Maskint标识(CHM:标识)。固定值标记
28IconFilevarchar(100)图标文件(CHM:图标文件,客户端mpq文件中Interface\Icons\Ability_打头的文件)。如 "Ability_Hunter_Pet_Wolf"

重要字段详解

宠物尺寸控制系统(MinScale/MaxScale)
CHM 详解明确指出第2-5列为尺寸范围控制:
  • 最小尺寸(MinScale,第2列):宠物在最小尺寸等级时的缩放比例
  • 最小尺寸等级(MinScaleLevel,第3列):达到最小尺寸所需的宠物等级
  • 最大尺寸(MaxScale,第4列):宠物在最大尺寸等级时的缩放比例
  • 最大尺寸等级(MaxScaleLevel,第5列):达到最大尺寸所需的宠物等级
宠物在驯服后根据等级在 MinScale 和 MaxScale 之间进行体型缩放。
宠物天赋类型 (PetTalentType)
CHM 明确标识第9列为"宠物天赋类型"。每个宠物家族属于三种天赋类型之一:
类型特点代表家族
狡诈 (Cunning)0高伤害输出,控制技能多蜘蛛、蝙蝠、风蛇
狂野 (Ferocity)1最高DPS,适合副本输出狼、猫、迅猛龙
坚韧 (Tenacity)2高生命和护甲,适合坦克熊、乌龟、鳄鱼
常见宠物家族ID对照
ID名称天赋类型常见食物
1狼 (Wolf)狂野肉类
2猫 (Cat)狂野肉类/鱼
3蜘蛛 (Spider)狡诈肉类
4熊 (Bear)坚韧肉类/鱼/水果/面包/蘑菇
5野猪 (Boar)坚韧肉类/鱼/面包/蘑菇
6鳄鱼 (Crocolisk)坚韧肉类/鱼
7风蛇 (Wind Serpent)狡诈肉类/鱼/面包
11乌龟 (Turtle)坚韧肉类/鱼/水果/面包/蘑菇
20猩猩 (Gorilla)坚韧肉类/鱼/水果/面包/蘑菇
21迅猛龙 (Raptor)狂野肉类
IconFile(图标文件)
CHM 详解说明图标文件位于"客户端mpq文件中Interface\Icons\Ability_打头的文件"。例如狼的图标为 "Ability_Hunter_Pet_Wolf",猫为 "Ability_Hunter_Pet_Cat"。

使用技巧

查询所有宠物家族的中文名称和天赋类型:
SELECT ID, Name_Lang_zhCN AS 家族名称, 
       CASE PetTalentType WHEN 0 THEN '狡诈' WHEN 1 THEN '狂野' WHEN 2 THEN '坚韧' END AS 天赋类型,
       IconFile
FROM creaturefamily_dbc
ORDER BY ID;
查找可驯服某家族宠物的生物:
SELECT ct.entry, ct.name, cf.Name_Lang_zhCN AS 宠物家族
FROM creature_template ct
JOIN creaturefamily_dbc cf ON ct.family = cf.ID
WHERE ct.type = 1;  -- 1=野兽