recovery_item 物品恢复表
基于 AzerothCore 官方数据库 · Characters 库 · 存储已删除物品的恢复数据
表概述
recovery_item 表记录被玩家删除/出售/分解的物品信息,用于GM恢复或玩家自助物品恢复功能。
核心概念:当玩家删除或出售重要物品时,物品信息会暂存于此表,GM可以通过此表查询并恢复。类似于官方的"物品恢复"自助服务。
表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| Id | INT UNSIGNED | AUTO_INCREMENT | 自增主键 |
| Guid | INT UNSIGNED | 0 | 角色GUID,关联 → characters.guid |
| ItemEntry | INT UNSIGNED | NULL | 物品模板ID → item_template.entry |
| Count | INT UNSIGNED | 0 | 物品数量 |
| DeleteDate | INT UNSIGNED | NULL | 删除时间(Unix时间戳) |
重要字段详解
ItemEntry - 物品ID
详细说明:对应 world 库 item_template 表中的物品模板ID。
- 可以通过此ID查询物品名称、品质等信息
- 恢复时使用此ID创建新物品实例
SQL示例:查询删除物品名称 →
SELECT ri.*, it.name FROM recovery_item ri LEFT JOIN world.item_template it ON ri.ItemEntry=it.entry WHERE ri.Guid=1;DeleteDate - 删除时间
详细说明:Unix时间戳,记录物品被删除的时间。
- 用于判断是否可以恢复(通常有时间限制)
- 可用于定期清理过期的恢复记录
Count - 数量
详细说明:记录被删除的物品堆叠数量。
- 对于可堆叠物品,此字段记录实际删除的数量
- 恢复时会生成对应数量的新物品
SQL查询示例
-- 查看角色的所有可恢复物品
SELECT Id, ItemEntry, Count, FROM_UNIXTIME(DeleteDate) AS delete_time
FROM recovery_item
WHERE Guid = 1
ORDER BY DeleteDate DESC;-- 清理30天前的恢复记录
DELETE FROM recovery_item
WHERE DeleteDate < UNIX_TIMESTAMP() - 2592000;常见问题
Q: 如何通过此表恢复物品给玩家?
GM查到记录后,使用 .additem ItemEntry Count 命令将物品添加到玩家背包,然后删除 recovery_item 中的对应记录。
Q: 恢复的物品会有原来的附魔/宝石吗?
恢复的物品是全新的基础物品,不会保留原来的附魔、宝石镶嵌或属性随机值。此表只存储物品模板ID和数量。