表概述

item_refund_instance 表记录玩家从商人处购买物品的退还信息。购买后2小时内可全额退款,此表存储退款所需的数据。

核心概念:记录玩家购买物品时支付的金币和额外货币(ExtendedCost),用于计算退款金额。购买的物品离线也会保留退款资格。

表结构

字段名数据类型默认值说明
item_guidINT UNSIGNEDNOT NULL物品GUID,关联 → item_instance.guid
player_guidINT UNSIGNEDNOT NULL购买玩家GUID,关联 → characters.guid
paidMoneyINT UNSIGNED0购买时支付的金币(铜币单位)
paidExtendedCostSMALLINT UNSIGNED0购买时支付的额外货币类型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小时(游戏内时间),由服务器配置控制。已装备、附魔、镶嵌宝石或已使用的物品无法退款。