diff options
author | Subv <s.v.h21@hotmail.com> | 2012-09-10 18:43:06 -0500 |
---|---|---|
committer | Subv <s.v.h21@hotmail.com> | 2012-09-10 18:43:06 -0500 |
commit | dd9d7e6870f32a76da99f00d9c16812332a9e2f8 (patch) | |
tree | 9a5f5c05da3c20735bf4d7617e223dc0f13340a4 /src/server/game/Handlers/LootHandler.cpp | |
parent | 7bfd36ae80369b897c7159024c468074e407178d (diff) |
Core/Spells: Fixed SPELL_AURA_DEPOSIT_BONUS_MONEY_IN_GUILD_BANK_ON_LOOT
Diffstat (limited to 'src/server/game/Handlers/LootHandler.cpp')
-rwxr-xr-x | src/server/game/Handlers/LootHandler.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/server/game/Handlers/LootHandler.cpp b/src/server/game/Handlers/LootHandler.cpp index aa4b7b85023..897f03d0850 100755 --- a/src/server/game/Handlers/LootHandler.cpp +++ b/src/server/game/Handlers/LootHandler.cpp @@ -181,9 +181,19 @@ void WorldSession::HandleLootMoneyOpcode(WorldPacket& /*recvData*/) (*i)->ModifyMoney(goldPerPlayer); (*i)->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_LOOT_MONEY, goldPerPlayer); + uint32 guildGold = 0; + + if (Guild* guild = sGuildMgr->GetGuildById((*i)->GetGuildId())) + { + guildGold = CalculatePctN(goldPerPlayer, (*i)->GetTotalAuraModifier(SPELL_AURA_DEPOSIT_BONUS_MONEY_IN_GUILD_BANK_ON_LOOT)); + if (guildGold) + guild->HandleMemberDepositMoney(this, guildGold, true); + } + WorldPacket data(SMSG_LOOT_MONEY_NOTIFY, 4 + 1); data << uint32(goldPerPlayer); data << uint8(playersNear.size() > 1 ? 0 : 1); // Controls the text displayed in chat. 0 is "Your share is..." and 1 is "You loot..." + data << uint32(guildGold); (*i)->GetSession()->SendPacket(&data); } } @@ -192,9 +202,19 @@ void WorldSession::HandleLootMoneyOpcode(WorldPacket& /*recvData*/) player->ModifyMoney(loot->gold); player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_LOOT_MONEY, loot->gold); + uint32 guildGold = 0; + + if (Guild* guild = sGuildMgr->GetGuildById(player->GetGuildId())) + { + guildGold = CalculatePctN(loot->gold, player->GetTotalAuraModifier(SPELL_AURA_DEPOSIT_BONUS_MONEY_IN_GUILD_BANK_ON_LOOT)); + if (guildGold) + guild->HandleMemberDepositMoney(this, guildGold, true); + } + WorldPacket data(SMSG_LOOT_MONEY_NOTIFY, 4 + 1); data << uint32(loot->gold); data << uint8(1); // "You loot..." + data << uint32(guildGold); SendPacket(&data); } |