item_loot_storage 物品拾取存储表
基于 AzerothCore 官方数据库 · Characters 库 · 存储容器/尸体的拾取物品
表概述
item_loot_storage 表存储可拾取容器(尸体、宝箱等)内的物品数据,包括随机属性、拾取规则等信息。
核心概念:当怪物死亡或宝箱被生成时,掉落物品的信息存储在此表中。包含随机附魔、拾取权限、任务物品标记等详细数据。
表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| containerGUID | INT UNSIGNED | NOT NULL | 容器GUID(尸体/宝箱/怪物) |
| itemid | INT UNSIGNED | NOT NULL | 物品模板ID → item_template.entry |
| count | INT UNSIGNED | NOT NULL | 物品数量 |
| item_index | INT UNSIGNED | 0 | 物品在掉落列表中的索引位置 |
| randomPropertyId | INT | NOT NULL | 随机属性ID(对应 ItemRandomProperties.dbc) |
| randomSuffix | INT UNSIGNED | NOT NULL | 随机后缀ID(对应 ItemRandomSuffix.dbc) |
| follow_loot_rules | TINYINT UNSIGNED | NOT NULL | 是否遵循拾取规则 |
| freeforall | TINYINT UNSIGNED | NOT NULL | 自由拾取标记 |
| is_blocked | TINYINT UNSIGNED | NOT NULL | 是否被阻止拾取 |
| is_counted | TINYINT UNSIGNED | NOT NULL | 是否计入掉落统计 |
| is_underthreshold | TINYINT UNSIGNED | NOT NULL | 是否低于拾取阈值 |
| needs_quest | TINYINT UNSIGNED | NOT NULL | 是否需要任务才能拾取 |
| conditionLootId | INT | 0 | 条件掉落ID |
重要字段详解
randomPropertyId / randomSuffix - 随机属性
详细说明:控制装备的随机附魔属性,对应DBC文件中的定义。
- randomPropertyId:对应 ItemRandomProperties.dbc,如"雄鹰之""灵猴之"等前缀
- randomSuffix:对应 ItemRandomSuffix.dbc,如"…之力量""…之智力"等后缀
- 两者可共存,产生组合效果
拾取权限标记
详细说明:多个布尔字段控制拾取行为。拾取规则标记
- follow_loot_rules:遵循团队拾取规则(需求/贪婪)
- freeforall:自由拾取,任何人可拿
- is_blocked:暂时阻止拾取(如战利品Roll点中)
- needs_quest:只有有相关任务才能看到/拾取
SQL示例:查看尸体上的所有掉落 →
SELECT * FROM item_loot_storage WHERE containerGUID=99999;SQL查询示例
-- 查询容器中所有可自由拾取的物品
SELECT ils.itemid, ils.count, ils.randomPropertyId
FROM item_loot_storage ils
WHERE ils.containerGUID = 99999
AND ils.freeforall = 1
AND ils.is_blocked = 0;-- 统计某容器掉落的总物品数量
SELECT COUNT(*) AS item_types, SUM(count) AS total_count
FROM item_loot_storage
WHERE containerGUID = 99999;常见问题
Q: 掉落物品什么时候从表中清除?
当所有物品被拾取完毕,或容器(尸体/宝箱)被服务器清理时,对应的 item_loot_storage 记录会被删除。
Q: 如何查看物品的随机附魔效果?
通过 randomPropertyId 查询 ItemRandomProperties.dbc,或 randomSuffix 查询 ItemRandomSuffix.dbc 获取具体的属性加成数值。