From 9eab6d373dcefa22ea260f9f000603e118931bea Mon Sep 17 00:00:00 2001 From: Kitzunu <24550914+Kitzunu@users.noreply.github.com> Date: Fri, 17 Dec 2021 18:06:32 +0100 Subject: [PATCH] fix(Core/Guilds): Implement guild bank gold limit matching client (#9666) Co-authored-by: Shauren --- src/server/game/Guilds/Guild.cpp | 6 ++++++ src/server/game/Guilds/Guild.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index 04eeb784e..9a6eb7ab0 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -1628,6 +1628,12 @@ void Guild::HandleMemberDepositMoney(WorldSession* session, uint32 amount) // Call script after validation and before money transfer. sScriptMgr->OnGuildMemberDepositMoney(this, player, amount); + if (m_bankMoney > GUILD_BANK_MONEY_LIMIT - amount) + { + SendCommandResult(session, GUILD_COMMAND_MOVE_ITEM, ERR_GUILD_BANK_FULL); + return; + } + CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction(); _ModifyBankMoney(trans, amount, true); diff --git a/src/server/game/Guilds/Guild.h b/src/server/game/Guilds/Guild.h index 988c9f477..44337611b 100644 --- a/src/server/game/Guilds/Guild.h +++ b/src/server/game/Guilds/Guild.h @@ -54,6 +54,8 @@ enum GuildMisc TAB_UNDEFINED = 0xFF, }; +constexpr uint64 GUILD_BANK_MONEY_LIMIT = UI64LIT(0x7FFFFFFFFFFFF); + enum GuildMemberData { GUILD_MEMBER_DATA_ZONEID,