guild_member_withdraw 公会成员提款追踪表
基于 AzerothCore 官方数据库 · Characters 库 · 追踪成员每日银行取款限额使用情况
表概述
guild_member_withdraw 表追踪每个公会成员每日在各标签页的取款数量和金币取款总额。用于强制执行每日限额。
核心概念:当成员从公会银行取款时,此表的计数器递增。达到 guild_rank.BankMoneyPerDay 和 guild_bank_right.SlotPerDay 设置的上限后禁止继续取款。
表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| guid | INT UNSIGNED | NOT NULL | 角色GUID(主键)→ characters.guid |
| tab0 | INT UNSIGNED | 0 | 标签页0今日取款金额(铜币) |
| tab1 | INT UNSIGNED | 0 | 标签页1今日取款金额(铜币) |
| tab2 | INT UNSIGNED | 0 | 标签页2今日取款金额(铜币) |
| tab3 | INT UNSIGNED | 0 | 标签页3今日取款金额(铜币) |
| tab4 | INT UNSIGNED | 0 | 标签页4今日取款金额(铜币) |
| tab5 | INT UNSIGNED | 0 | 标签页5今日取款金额(铜币) |
| money | INT UNSIGNED | 0 | 今日金币取款总额(铜币) |
重要字段详解
tab0~tab5 - 各标签页取款额
详细说明:每个标签页独立追踪取款金额,对应6个可能的银行标签页。
- 铜币单位:与物品买卖不同,这是金币取款追踪
- 每日重置:在服务器凌晨重置时清零
- 限额检查:tabX + 新取款额 ≤ 对应的限额
money - 总取款额
详细说明:该成员今日从公会银行取出的总金币数(所有标签页合计)。
- 对应 guild_rank 表中的 BankMoneyPerDay 限额
- 与 tab0~tab5 独立追踪,但逻辑上 money = tab0+...+tab5
SQL示例:查看成员今日取款 →
SELECT * FROM guild_member_withdraw WHERE guid=角色GUID;SQL查询示例
-- 查看某公会所有成员今日取款总额
SELECT gmw.guid, c.name, gmw.money / 10000 AS gold_taken
FROM guild_member_withdraw gmw
JOIN guild_member gm ON gmw.guid = gm.guid AND gm.guildid = 1
JOIN characters c ON gmw.guid = c.guid
ORDER BY gmw.money DESC;-- 重置某成员的每日取款限额(允许再取)
UPDATE guild_member_withdraw
SET tab0 = 0, tab1 = 0, tab2 = 0, tab3 = 0, tab4 = 0, tab5 = 0, money = 0
WHERE guid = 角色GUID;常见问题
Q: 取款限额什么时候重置?
通常在每日凌晨3:00(服务器时间)自动清零。如果成员从没取过款,此表可能没有对应记录。
Q: 如何设置成员的每日金币取款限额?
修改 guild_rank 表的 BankMoneyPerDay 字段(铜币单位)。物品取款次数限制在 guild_bank_right.SlotPerDay 中设置。