From def97385ccb3e81ae8e5661479118d12cf0372de Mon Sep 17 00:00:00 2001 From: Shauren Date: Wed, 18 Mar 2020 00:02:21 +0100 Subject: [PATCH] Core/Guilds: Implement guild bank gold limit matching client (cherry picked from commit 967f21a4b40d23d6501006e4fb7bc0608a1d86d1) --- src/server/game/Guilds/Guild.cpp | 7 +++++++ src/server/game/Guilds/Guild.h | 2 ++ 2 files changed, 9 insertions(+) diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index b4d83f433f0..196d9612281 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -1968,6 +1968,13 @@ void Guild::HandleMemberDepositMoney(WorldSession* session, uint64 amount, bool // Call script after validation and before money transfer. sScriptMgr->OnGuildMemberDepositMoney(this, player, amount); + if (m_bankMoney > GUILD_BANK_MONEY_LIMIT - amount) + { + if (!cashFlow) + SendCommandResult(session, GUILD_COMMAND_MOVE_ITEM, ERR_GUILD_TOO_MUCH_MONEY); + return; + } + CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction(); _ModifyBankMoney(trans, amount, true); if (!cashFlow) diff --git a/src/server/game/Guilds/Guild.h b/src/server/game/Guilds/Guild.h index 62bd1c67828..2f25b5613d3 100644 --- a/src/server/game/Guilds/Guild.h +++ b/src/server/game/Guilds/Guild.h @@ -59,6 +59,8 @@ enum GuildMisc GUILD_OLD_MAX_LEVEL = 25 }; +constexpr uint64 GUILD_BANK_MONEY_LIMIT = UI64LIT(100000000000); + enum GuildMemberData { GUILD_MEMBER_DATA_ZONEID,