aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2020-03-18 00:02:21 +0100
committerShauren <shauren.trinity@gmail.com>2021-12-23 23:10:01 +0100
commitdef97385ccb3e81ae8e5661479118d12cf0372de (patch)
treedc36f74eee248a0c2e1c2e94e72c2ea2cc3b5f45
parent6c2408494f4151e8ec1c1248163890422cdc4fc0 (diff)
Core/Guilds: Implement guild bank gold limit matching client
(cherry picked from commit 967f21a4b40d23d6501006e4fb7bc0608a1d86d1)
-rw-r--r--src/server/game/Guilds/Guild.cpp7
-rw-r--r--src/server/game/Guilds/Guild.h2
2 files changed, 9 insertions, 0 deletions
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,