文件概述

CharStartOutfit.dbc 是角色创建的基石之一。每一行定义一个特定的"种族-职业-性别"组合的初始装备套装。它指定了新角色出生时背包中的物品ID(最多24件)、这些物品的显示模型ID(服务端不需要),以及它们对应的装备库存类型(服务端不需要)。根据 CHM 中文详解,第5列为"未使用"第30-53列为"物品模型编号,服务端不需要"第54-77列为"物品库存,服务端不需要"

数据库对应表:world.charstartoutfit_dbc

列组说明:ItemID_1~24 (实际物品ID,参考item_template表的entry字段), DisplayItemID_1~24 (物品模型编号,服务端不需要), InventoryType_1~24 (物品库存信息,服务端不需要)。

列结构

序号字段名类型说明
1IDint套装编号(主键)。每条记录的编号
2RaceIDtinyint种族(CHM:种族,参考ChrRaces.dbc)。关联 ChrRaces.dbc 的编号
3ClassIDtinyint职业(CHM:职业,参考ChrClasses.dbc)。关联 ChrClasses.dbc 的编号
4SexIDtinyint性别(CHM:性别,0=男,1=女
5OutfitIDtinyint套装外观ID(CHM:未使用)。控制外观变体,部分实现可能为空
6-29ItemID_1 ~ ItemID_24int物品编号(CHM:物品编号,参考item_template表的entry字段)。初始物品ID(最多24个槽位),关联 item_template.entry
30-53DisplayItemID_1~24int物品模型编号(CHM:物品模型编号,服务端不需要)。对应物品的显示模型ID,关联 ItemDisplayInfo.dbc
54-77InventoryType_1~24int物品库存(CHM:物品库存,服务端不需要)。对应物品的装备栏位/库存类型信息 (1=头部 3=肩部 5=胸部 13=单手武器 17=双手武器 21=主手 等)

重要字段详解

初始装备示例(人类战士,男性)
一个典型的人类战士初始装备:
槽位ItemID物品名称InventoryType
ItemID_138新兵衬衣4 (衬衣)
ItemID_239新兵短裤7 (腿部)
ItemID_340新兵的靴子8 (脚部)
ItemID_425短剑21 (主手)
ItemID_52362木盾14 (副手/盾牌)
种族-职业-性别组合
并非所有种族和职业都有全套男女组合:
  • 部分种族/职业只对特定性别定义了单独的行
  • SexID=0 (男性) 和 SexID=1 (女性) 可能使用不同的 OutfitID
  • 同一套装可能有不同的外观变体(OutfitID)用于区分男女模型
  • 一行覆盖所有性别的情况通常 SexID 设为特定值
三组24栏位数据的区别
CHM 详解指出了三组24栏位数据的不同性质:
  • 第6-29列(物品编号):实际初始物品ID,引用 item_template.entry,服务端和客户端都使用
  • 第30-53列(物品模型编号):物品的显示模型ID,仅客户端使用,服务端不需要
  • 第54-77列(物品库存):物品在背包/装备栏中的位置信息,仅客户端使用,服务端不需要
InventoryType 装备栏位对照
栏位栏位
1头部8脚部
3肩部13单手武器
5胸部15副手/盾牌
7腿部17双手武器
10手指21主手武器

使用技巧

查询人类战士男性初始装备:
SELECT ItemID_1, ItemID_2, ItemID_3, ItemID_4, ItemID_5
FROM charstartoutfit_dbc
WHERE RaceID = 1 AND ClassID = 1 AND SexID = 0;
配合 item_template 查询物品详情:
SELECT cso.RaceID, cso.ClassID, cso.SexID, 
       it.entry, it.name, it.Quality
FROM charstartoutfit_dbc cso
JOIN item_template it ON it.entry IN (
    cso.ItemID_1, cso.ItemID_2, cso.ItemID_3,
    cso.ItemID_4, cso.ItemID_5, cso.ItemID_6,
    cso.ItemID_7, cso.ItemID_8, cso.ItemID_9,
    cso.ItemID_10
)
WHERE cso.RaceID = 1 AND cso.ClassID = 1;