item_refund_instance 物品退还表
基于 AzerothCore 官方数据库 · Characters 库 · 存储物品购买退还信息
表概述
item_refund_instance 表记录玩家从商人处购买物品的退还信息。购买后2小时内可全额退款,此表存储退款所需的数据。
核心概念:记录玩家购买物品时支付的金币和额外货币(ExtendedCost),用于计算退款金额。购买的物品离线也会保留退款资格。
表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| item_guid | INT UNSIGNED | NOT NULL | 物品GUID,关联 → item_instance.guid |
| player_guid | INT UNSIGNED | NOT NULL | 购买玩家GUID,关联 → characters.guid |
| paidMoney | INT UNSIGNED | 0 | 购买时支付的金币(铜币单位) |
| paidExtendedCost | SMALLINT UNSIGNED | 0 | 购买时支付的额外货币类型ID |
重要字段详解
paidMoney - 购买花费
详细说明:记录购买时支付的金币金额(铜币单位),用于计算退款金额。
- 退款时全额返还,不会扣除任何手续费
- 铜币单位:10000铜 = 1金
- 只在2小时内有效,超时后记录自动清除
paidExtendedCost - 额外货币
详细说明:购买时使用的额外货币类型(荣誉点数、竞技场点数、牌子等)。
- 0 = 未使用额外货币
- 非0值对应 ItemExtendedCost.dbc 中的ID
- 退款时会将对应货币也返还给玩家
item_guid - 物品唯一标识
详细说明:关联到 item_instance 表中的具体物品实例。
- 每个可退款的物品在 item_instance 中有对应的记录
- 物品被消耗/装备/交易后,退款记录会被清除
SQL示例:查看某物品的退款信息 →
SELECT * FROM item_refund_instance WHERE item_guid=12345;SQL查询示例
-- 查看玩家的所有可退款物品
SELECT iri.item_guid, iri.paidMoney, iri.paidExtendedCost,
ii.itemEntry
FROM item_refund_instance iri
JOIN item_instance ii ON iri.item_guid = ii.guid
WHERE iri.player_guid = 1;-- 统计玩家可退款总金额(金)
SELECT SUM(paidMoney) / 10000 AS total_gold
FROM item_refund_instance
WHERE player_guid = 1;常见问题
Q: 为什么有些物品购买后不能退款?
只有从商人处用金币或荣誉等货币购买的物品才支持退款。任务奖励、副本掉落、玩家交易等途径获得的物品不在此表中记录。
Q: 退款时间限制可以修改吗?
默认退款时间为购买后2小时(游戏内时间),由服务器配置控制。已装备、附魔、镶嵌宝石或已使用的物品无法退款。