item_instance表

表格概述

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 物品文本内容,如书籍内容、信件内容、签名等

🔑 guid - 物品实例标识符

中文意思:物品实例全局唯一标识符

作用:每个物品实例的唯一标识,用于在整个数据库系统中引用特定的物品实例

常见值:1, 2, 3, 4, 5... (自动递增)

示例应用:在character_inventory表中通过item字段引用此guid,在邮件系统中标识附件物品

📦 itemEntry - 物品模板ID

中文意思:物品模板条目ID

作用:关联到world.item_template表,定义物品的基础属性和行为

常见值:25, 2589, 16542, 19019 (对应不同的物品模板)

示例应用:通过此ID可以查询物品的名称、品质、类型、属性等基础信息

👤 owner_guid - 拥有者GUID

中文意思:物品拥有者角色标识符

作用:标识当前拥有此物品实例的角色

常见值:1, 2, 3... (对应characters表中的guid)

示例应用:查询指定角色拥有的所有物品,物品转移时更新此字段

🔨 creatorGuid - 制造者GUID

中文意思:物品制造者角色标识符

作用:记录制造此物品的角色,用于显示制造者信息

常见值:0 (系统生成), 123 (玩家制造)

示例应用:在物品tooltip中显示"由XXX制造",追踪物品来源

🎁 giftCreatorGuid - 礼品制造者GUID

中文意思:礼品包装制造者标识符

作用:记录将物品包装成礼品的角色

常见值:0 (非礼品), 456 (礼品包装者)

示例应用:礼品系统中显示"来自XXX的礼物"

🔢 count - 物品数量

中文意思:物品堆叠数量

作用:记录此物品实例包含的物品数量

常见值:1 (单个物品), 20 (一组箭矢), 200 (一组子弹)

示例应用:背包中显示物品数量,消耗物品时减少此值

⏰ duration - 持续时间

中文意思:物品剩余持续时间

作用:控制临时物品的存在时间

常见值:0 (永久), 3600 (1小时), -1 (已过期)

示例应用:任务物品的时效性,临时buff物品的持续时间

⚡ charges - 充能次数

中文意思:物品充能使用次数

作用:记录物品各个法术效果的剩余使用次数

常见值:"0 0 0 0 0" (无充能), "5 0 0 0 0" (第一个效果5次)

示例应用:法杖的法术充能、药水的使用次数、工具的耐用次数

🏷️ flags - 物品标志

中文意思:物品状态标志位

作用:控制物品的绑定状态、交易限制等属性

常见值:

示例应用:控制物品是否可以交易、邮寄、拍卖

✨ enchantments - 附魔信息

中文意思:物品附魔数据

作用:存储物品上的所有附魔、宝石镶嵌等信息

格式:36个数字,每3个为一组,共12组附魔槽位

示例应用:武器附魔、护甲附魔、宝石镶嵌、临时附魔

🎲 randomPropertyId - 随机属性ID

中文意思:随机属性标识符

作用:定义物品的随机属性或后缀

常见值:0 (无随机属性), 正数 (随机属性), 负数 (随机后缀)

示例应用:绿色装备的"of the Eagle"、"of Stamina"等随机属性

🔄 randomPropertyType - 随机属性类型

中文意思:随机属性类型标识

作用:区分随机属性的类型

常见值:0 (无), 1 (随机属性), 2 (随机后缀)

示例应用:确定如何解析randomPropertyId字段

🛡️ durability - 耐久度

中文意思:当前耐久度值

作用:记录装备的当前耐久度状态

常见值:0-65535 (根据装备类型而定)

示例应用:装备损坏提醒、修理费用计算、装备失效判断

⏱️ playedTime - 使用时间

中文意思:物品使用总时间

作用:统计物品被装备或使用的时间

常见值:0-4294967295 (秒数)

示例应用:装备使用统计、物品价值评估

📝 text - 文本内容

中文意思:物品文本内容

作用:存储物品的自定义文本信息

常见值:书籍内容、信件内容、签名文字

示例应用:可写书籍的内容、玩家签名、任务信件

附魔系统详解

✨ 附魔槽位类型

随机属性系统

🎲 随机属性说明

使用注意事项

⚠️ 重要提醒

常用查询示例

💡 SQL查询示例

-- 查询指定角色的所有物品实例
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;
                

相关表格