aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Guilds/Guild.cpp17
-rw-r--r--src/server/game/Spells/Spell.cpp1
2 files changed, 12 insertions, 6 deletions
diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp
index db524cb8804..a7caf654449 100644
--- a/src/server/game/Guilds/Guild.cpp
+++ b/src/server/game/Guilds/Guild.cpp
@@ -1717,14 +1717,19 @@ void Guild::HandleBuyBankTab(WorldSession* session, uint8 tabId)
if (tabId != _GetPurchasedTabsSize())
return;
- uint32 tabCost = _GetGuildBankTabPrice(tabId) * GOLD;
- if (!tabCost)
- return;
+ // Do not get money for bank tabs that the GM bought, we had to buy them already.
+ // This is just a speedup check, GetGuildBankTabPrice will return 0.
+ if (tabId < GUILD_BANK_MAX_TABS - 2) // 7th tab is actually the 6th
+ {
+ uint32 tabCost = _GetGuildBankTabPrice(tabId) * GOLD;
+ if (!tabCost)
+ return;
- if (!player->HasEnoughMoney(uint64(tabCost))) // Should not happen, this is checked by client
- return;
+ if (!player->HasEnoughMoney(uint64(tabCost))) // Should not happen, this is checked by client
+ return;
- player->ModifyMoney(-int64(tabCost));
+ player->ModifyMoney(-int64(tabCost));
+ }
_CreateNewBankTab();
_BroadcastEvent(GE_BANK_TAB_PURCHASED, 0);
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 9a433f057e8..e74b74ffdd0 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -34,6 +34,7 @@
#include "Totem.h"
#include "Spell.h"
#include "DynamicObject.h"
+#include "Guild.h"
#include "Group.h"
#include "UpdateData.h"
#include "MapManager.h"