item_instance表存储了游戏中每个物品实例的具体信息。与world库中的item_template表不同,这个表记录的是玩家实际拥有的物品实例,包括物品的耐久度、附魔、宝石镶嵌、随机属性等个性化数据。
序号 | 字段名 | 数据类型 | 默认值 | 是否为空 | 键类型 | 说明 |
---|---|---|---|---|---|---|
1 | guid | int(10) unsigned | 0 | NOT NULL | PRIMARY KEY | 物品实例唯一标识符,主键,自动递增 |
2 | itemEntry | mediumint(8) unsigned | 0 | NOT NULL | INDEX | 物品模板ID,关联world.item_template表的entry字段 |
3 | owner_guid | int(10) unsigned | 0 | NOT NULL | INDEX | 物品拥有者的角色GUID,关联characters表 |
4 | creatorGuid | int(10) unsigned | 0 | NOT NULL | 物品制造者的角色GUID,0表示非玩家制造 | |
5 | giftCreatorGuid | int(10) unsigned | 0 | NOT NULL | 礼品制造者的角色GUID,用于礼品包装物品 | |
6 | count | int(10) unsigned | 1 | NOT NULL | 物品数量(堆叠数量),最大值受item_template.stackable限制 | |
7 | duration | int(10) | 0 | NOT NULL | 物品剩余持续时间(秒),0表示永久,负数表示已过期 | |
8 | charges | tinytext | NULL | YES | 物品充能次数,格式:"charge1 charge2 charge3 charge4 charge5" | |
9 | flags | mediumint(8) unsigned | 0 | NOT NULL | 物品标志位,控制绑定状态、交易限制等 | |
10 | enchantments | text | NULL | YES | 附魔信息,存储所有附魔数据的序列化字符串 | |
11 | randomPropertyId | smallint(5) | 0 | NOT NULL | 随机属性ID,正数对应ItemRandomProperties.dbc,负数对应ItemRandomSuffix.dbc | |
12 | randomPropertyType | tinyint(3) unsigned | 0 | NOT NULL | 随机属性类型:0=无随机属性,1=随机属性,2=随机后缀 | |
13 | durability | smallint(5) unsigned | 0 | NOT NULL | 当前耐久度,不能超过item_template.MaxDurability | |
14 | playedTime | int(10) unsigned | 0 | NOT NULL | 物品被装备或使用的总时间(秒) | |
15 | text | text | NULL | YES | 物品文本内容,如书籍内容、信件内容、签名等 |
中文意思:物品实例全局唯一标识符
作用:每个物品实例的唯一标识,用于在整个数据库系统中引用特定的物品实例
常见值:1, 2, 3, 4, 5... (自动递增)
示例应用:在character_inventory表中通过item字段引用此guid,在邮件系统中标识附件物品
中文意思:物品模板条目ID
作用:关联到world.item_template表,定义物品的基础属性和行为
常见值:25, 2589, 16542, 19019 (对应不同的物品模板)
示例应用:通过此ID可以查询物品的名称、品质、类型、属性等基础信息
中文意思:物品拥有者角色标识符
作用:标识当前拥有此物品实例的角色
常见值:1, 2, 3... (对应characters表中的guid)
示例应用:查询指定角色拥有的所有物品,物品转移时更新此字段
中文意思:物品制造者角色标识符
作用:记录制造此物品的角色,用于显示制造者信息
常见值:0 (系统生成), 123 (玩家制造)
示例应用:在物品tooltip中显示"由XXX制造",追踪物品来源
中文意思:礼品包装制造者标识符
作用:记录将物品包装成礼品的角色
常见值:0 (非礼品), 456 (礼品包装者)
示例应用:礼品系统中显示"来自XXX的礼物"
中文意思:物品堆叠数量
作用:记录此物品实例包含的物品数量
常见值:1 (单个物品), 20 (一组箭矢), 200 (一组子弹)
示例应用:背包中显示物品数量,消耗物品时减少此值
中文意思:物品剩余持续时间
作用:控制临时物品的存在时间
常见值:0 (永久), 3600 (1小时), -1 (已过期)
示例应用:任务物品的时效性,临时buff物品的持续时间
中文意思:物品充能使用次数
作用:记录物品各个法术效果的剩余使用次数
常见值:"0 0 0 0 0" (无充能), "5 0 0 0 0" (第一个效果5次)
示例应用:法杖的法术充能、药水的使用次数、工具的耐用次数
中文意思:物品状态标志位
作用:控制物品的绑定状态、交易限制等属性
常见值:
示例应用:控制物品是否可以交易、邮寄、拍卖
中文意思:物品附魔数据
作用:存储物品上的所有附魔、宝石镶嵌等信息
格式:36个数字,每3个为一组,共12组附魔槽位
示例应用:武器附魔、护甲附魔、宝石镶嵌、临时附魔
中文意思:随机属性标识符
作用:定义物品的随机属性或后缀
常见值:0 (无随机属性), 正数 (随机属性), 负数 (随机后缀)
示例应用:绿色装备的"of the Eagle"、"of Stamina"等随机属性
中文意思:随机属性类型标识
作用:区分随机属性的类型
常见值:0 (无), 1 (随机属性), 2 (随机后缀)
示例应用:确定如何解析randomPropertyId字段
中文意思:当前耐久度值
作用:记录装备的当前耐久度状态
常见值:0-65535 (根据装备类型而定)
示例应用:装备损坏提醒、修理费用计算、装备失效判断
中文意思:物品使用总时间
作用:统计物品被装备或使用的时间
常见值:0-4294967295 (秒数)
示例应用:装备使用统计、物品价值评估
中文意思:物品文本内容
作用:存储物品的自定义文本信息
常见值:书籍内容、信件内容、签名文字
示例应用:可写书籍的内容、玩家签名、任务信件
-- 查询指定角色的所有物品实例 SELECT ii.guid, ii.itemEntry, it.name, ii.count, ii.durability FROM item_instance ii JOIN world.item_template it ON ii.itemEntry = it.entry WHERE ii.owner_guid = 1; -- 查询所有附魔物品 SELECT guid, itemEntry, enchantments FROM item_instance WHERE enchantments IS NOT NULL AND enchantments != ''; -- 查询耐久度低于50%的装备 SELECT ii.guid, ii.itemEntry, ii.durability, it.MaxDurability FROM item_instance ii JOIN world.item_template it ON ii.itemEntry = it.entry WHERE ii.durability < (it.MaxDurability * 0.5) AND it.MaxDurability > 0; -- 统计各类物品数量 SELECT it.class, it.subclass, COUNT(*) as count FROM item_instance ii JOIN world.item_template it ON ii.itemEntry = it.entry GROUP BY it.class, it.subclass;