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 | 整数 | 武器收起方式 |
物品类别字段定义了物品的主要类型:
值 | 名称 | 描述 |
---|---|---|
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 | 雕文 |
物品栏位类型字段定义了物品可以装备的位置:
值 | 名称 | 描述 |
---|---|---|
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 | 圣物 |
武器收起方式字段定义了武器在不使用时的收起位置:
值 | 名称 | 描述 |
---|---|---|
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中,物品数据分布在多个地方:
提示: 在大多数情况下,只需要修改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
);