表概述

guild_bank_item 表存储公会银行各标签页各格位存放的物品。关联到 item_instance 表中的具体物品实例。

核心概念:通过 guildid + TabId + SlotId 唯一确定一个物品存放位置。item_guid 指向 item_instance 表中的物品数据。

表结构

字段名数据类型默认值说明
guildidINT UNSIGNED0公会ID → guild.guildid
TabIdTINYINT UNSIGNED0标签页ID → guild_bank_tab.TabId
SlotIdTINYINT UNSIGNED0格子位置(0-97)
item_guidINT UNSIGNED0物品GUID → item_instance.guid

重要字段详解

SlotId - 格子位置

详细说明:每个标签页有98个格子(0-97)。
  • 物品会按顺序或指定位置存放
  • 取出物品后对应记录被删除
  • 联合主键确保同一标签页同一位置不能放多个物品

item_guid - 物品实例

详细说明:指向 item_instance 表中的具体物品。
  • 物品所有者(owner_guid)在银行时为公会GUID
  • 支持堆叠物品(堆叠数据在 item_instance 中)
  • 取款时自动更新 item_instance 的 owner_guid
SQL示例:查看公会银行物品 → SELECT gbi.*, ii.itemEntry FROM guild_bank_item gbi JOIN item_instance ii ON gbi.item_guid=ii.guid WHERE gbi.guildid=1;

SQL查询示例

-- 统计某公会银行各标签页的物品数量 SELECT TabId, COUNT(*) AS item_count FROM guild_bank_item WHERE guildid = 1 GROUP BY TabId;
-- 查看某标签页中特定物品的堆叠总数 SELECT ii.itemEntry, COUNT(*) AS slot_count FROM guild_bank_item gbi JOIN item_instance ii ON gbi.item_guid = ii.guid WHERE gbi.guildid = 1 AND gbi.TabId = 0 GROUP BY ii.itemEntry;

常见问题

Q: 公会银行物品的归属权是什么?

物品存在公会银行时,item_instance 的 owner_guid 指向公会(而非个人角色)。被成员取出时,所有者变为该角色。

Q: 如何查看某个物品在公会银行的库存?

SELECT gbi.TabId, gbi.SlotId, ii.count FROM guild_bank_item gbi JOIN item_instance ii ON gbi.item_guid=ii.guid WHERE gbi.guildid=1 AND ii.itemEntry=物品ID;