Item.dbc - 物品数据库

Item.dbc存储了游戏中所有物品的基本信息。这个文件定义了物品的名称、描述、图标、模型等基本属性。需要注意的是,Item.dbc只包含物品的基本信息,而更详细的物品属性(如属性加成、装备效果等)则存储在ItemSparse.dbc和world.item_template表中。

注意: 在AzerothCore中,通常不需要直接修改Item.dbc,而是通过修改world.item_template表来自定义物品属性。

主要字段说明

以下是Item.dbc中的主要字段:

基本信息字段

字段名 类型 描述
ID 整数 物品唯一标识符
Class 整数 物品类别
SubClass 整数 物品子类别
SoundOverrideSubclass 整数 声音覆盖子类别
Material 整数 材质
DisplayID 整数 显示ID,对应ItemDisplayInfo.dbc
InventoryType 整数 物品栏位类型
Sheath 整数 武器收起方式

物品类别(Class)

物品类别字段定义了物品的主要类型:

名称 描述
0 ITEM_CLASS_CONSUMABLE 消耗品
1 ITEM_CLASS_CONTAINER 容器
2 ITEM_CLASS_WEAPON 武器
3 ITEM_CLASS_GEM 宝石
4 ITEM_CLASS_ARMOR 护甲
5 ITEM_CLASS_REAGENT 试剂
6 ITEM_CLASS_PROJECTILE 弹药
7 ITEM_CLASS_TRADE_GOODS 商品
8 ITEM_CLASS_GENERIC 通用物品
9 ITEM_CLASS_RECIPE 配方
10 ITEM_CLASS_MONEY 货币
11 ITEM_CLASS_QUIVER 箭袋
12 ITEM_CLASS_QUEST 任务物品
13 ITEM_CLASS_KEY 钥匙
14 ITEM_CLASS_PERMANENT 永久物品
15 ITEM_CLASS_MISC 杂项
16 ITEM_CLASS_GLYPH 雕文

物品栏位类型(InventoryType)

物品栏位类型字段定义了物品可以装备的位置:

名称 描述
0 INVTYPE_NON_EQUIP 不可装备
1 INVTYPE_HEAD 头部
2 INVTYPE_NECK 颈部
3 INVTYPE_SHOULDERS 肩部
4 INVTYPE_BODY 衬衣
5 INVTYPE_CHEST 胸部
6 INVTYPE_WAIST 腰部
7 INVTYPE_LEGS 腿部
8 INVTYPE_FEET 脚部
9 INVTYPE_WRISTS 手腕
10 INVTYPE_HANDS 手部
11 INVTYPE_FINGER 戒指
12 INVTYPE_TRINKET 饰品
13 INVTYPE_WEAPON 单手武器
14 INVTYPE_SHIELD 盾牌
15 INVTYPE_RANGED 远程武器
16 INVTYPE_CLOAK 披风
17 INVTYPE_2HWEAPON 双手武器
18 INVTYPE_BAG 背包
19 INVTYPE_TABARD 战袍
20 INVTYPE_ROBE 长袍
21 INVTYPE_WEAPONMAINHAND 主手武器
22 INVTYPE_WEAPONOFFHAND 副手武器
23 INVTYPE_HOLDABLE 副手物品
24 INVTYPE_AMMO 弹药
25 INVTYPE_THROWN 投掷武器
26 INVTYPE_RANGEDRIGHT 远程武器(右手)
27 INVTYPE_QUIVER 箭袋
28 INVTYPE_RELIC 圣物

武器收起方式(Sheath)

武器收起方式字段定义了武器在不使用时的收起位置:

名称 描述
0 SHEATHETYPE_NONE 不收起
1 SHEATHETYPE_MAINHAND 主手收起(腰间)
2 SHEATHETYPE_OFFHAND 副手收起(腰间)
3 SHEATHETYPE_LARGEWEAPONLEFT 大型武器收起(背部左侧)
4 SHEATHETYPE_LARGEWEAPONRIGHT 大型武器收起(背部右侧)
5 SHEATHETYPE_HIPWEAPONLEFT 腰间武器收起(左侧)
6 SHEATHETYPE_HIPWEAPONRIGHT 腰间武器收起(右侧)
7 SHEATHETYPE_SHIELD 盾牌收起(背部)

物品与数据库的关系

在AzerothCore中,物品数据分布在多个地方:

  1. Item.dbc:包含物品的基本信息,如类别、子类别、栏位类型等
  2. ItemSparse.dbc:包含物品的详细信息,如名称、描述、品质、价格等
  3. ItemDisplayInfo.dbc:包含物品的显示信息,如模型、图标等
  4. world.item_template:包含物品的游戏属性,如属性加成、装备效果等
  5. characters.item_instance:包含游戏中实际存在的物品实例数据

提示: 在大多数情况下,只需要修改world.item_template表就可以自定义物品属性,无需直接修改DBC文件。

使用示例

查询物品信息

以下SQL语句将查询物品"炉石"的基本信息:

SELECT * FROM item_template WHERE entry = 6948;

创建自定义物品

以下SQL语句将创建一个新的物品"超级治疗药水":

INSERT INTO item_template (entry, class, subclass, SoundOverrideSubclass, name, displayid, Quality, Flags, FlagsExtra, BuyCount, BuyPrice, SellPrice, InventoryType, AllowableClass, AllowableRace, ItemLevel, RequiredLevel, RequiredSkill, RequiredSkillRank, requiredspell, requiredhonorrank, RequiredCityRank, RequiredReputationFaction, RequiredReputationRank, maxcount, stackable, ContainerSlots, StatsCount, stat_type1, stat_value1, stat_type2, stat_value2, stat_type3, stat_value3, stat_type4, stat_value4, stat_type5, stat_value5, stat_type6, stat_value6, stat_type7, stat_value7, stat_type8, stat_value8, stat_type9, stat_value9, stat_type10, stat_value10, ScalingStatDistribution, ScalingStatValue, dmg_min1, dmg_max1, dmg_type1, dmg_min2, dmg_max2, dmg_type2, armor, holy_res, fire_res, nature_res, frost_res, shadow_res, arcane_res, delay, ammo_type, RangedModRange, spellid_1, spelltrigger_1, spellcharges_1, spellppmRate_1, spellcooldown_1, spellcategory_1, spellcategorycooldown_1, spellid_2, spelltrigger_2, spellcharges_2, spellppmRate_2, spellcooldown_2, spellcategory_2, spellcategorycooldown_2, spellid_3, spelltrigger_3, spellcharges_3, spellppmRate_3, spellcooldown_3, spellcategory_3, spellcategorycooldown_3, spellid_4, spelltrigger_4, spellcharges_4, spellppmRate_4, spellcooldown_4, spellcategory_4, spellcategorycooldown_4, spellid_5, spelltrigger_5, spellcharges_5, spellppmRate_5, spellcooldown_5, spellcategory_5, spellcategorycooldown_5, bonding, description, PageText, LanguageID, PageMaterial, startquest, lockid, Material, sheath, RandomProperty, RandomSuffix, block, itemset, MaxDurability, area, Map, BagFamily, TotemCategory, socketColor_1, socketContent_1, socketColor_2, socketContent_2, socketColor_3, socketContent_3, socketBonus, GemProperties, RequiredDisenchantSkill, ArmorDamageModifier, duration, ItemLimitCategory, HolidayId, ScriptName, DisenchantID, FoodType, minMoneyLoot, maxMoneyLoot, flagsCustom, VerifiedBuild)
VALUES (
    100001, -- 自定义物品ID,避免与官方物品冲突
    0, 1, -1, '超级治疗药水', 8949, 3, 0, 0, 1, 10000, 2500, 0, -1, -1, 60, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17029, 0, -1, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 0, '使用:恢复10000点生命值。', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, '', 0, 0, 0, 0, 0, 12340
);