表概述

guild_member_withdraw 表追踪每个公会成员每日在各标签页的取款数量和金币取款总额。用于强制执行每日限额。

核心概念:当成员从公会银行取款时,此表的计数器递增。达到 guild_rank.BankMoneyPerDay 和 guild_bank_right.SlotPerDay 设置的上限后禁止继续取款。

表结构

字段名数据类型默认值说明
guidINT UNSIGNEDNOT NULL角色GUID(主键)→ characters.guid
tab0INT UNSIGNED0标签页0今日取款金额(铜币)
tab1INT UNSIGNED0标签页1今日取款金额(铜币)
tab2INT UNSIGNED0标签页2今日取款金额(铜币)
tab3INT UNSIGNED0标签页3今日取款金额(铜币)
tab4INT UNSIGNED0标签页4今日取款金额(铜币)
tab5INT UNSIGNED0标签页5今日取款金额(铜币)
moneyINT UNSIGNED0今日金币取款总额(铜币)

重要字段详解

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 中设置。