表概述

item_loot_storage 表存储可拾取容器(尸体、宝箱等)内的物品数据,包括随机属性、拾取规则等信息。

核心概念:当怪物死亡或宝箱被生成时,掉落物品的信息存储在此表中。包含随机附魔、拾取权限、任务物品标记等详细数据。

表结构

字段名数据类型默认值说明
containerGUIDINT UNSIGNEDNOT NULL容器GUID(尸体/宝箱/怪物)
itemidINT UNSIGNEDNOT NULL物品模板ID → item_template.entry
countINT UNSIGNEDNOT NULL物品数量
item_indexINT UNSIGNED0物品在掉落列表中的索引位置
randomPropertyIdINTNOT NULL随机属性ID(对应 ItemRandomProperties.dbc)
randomSuffixINT UNSIGNEDNOT NULL随机后缀ID(对应 ItemRandomSuffix.dbc)
follow_loot_rulesTINYINT UNSIGNEDNOT NULL是否遵循拾取规则
freeforallTINYINT UNSIGNEDNOT NULL自由拾取标记
is_blockedTINYINT UNSIGNEDNOT NULL是否被阻止拾取
is_countedTINYINT UNSIGNEDNOT NULL是否计入掉落统计
is_underthresholdTINYINT UNSIGNEDNOT NULL是否低于拾取阈值
needs_questTINYINT UNSIGNEDNOT NULL是否需要任务才能拾取
conditionLootIdINT0条件掉落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 获取具体的属性加成数值。