diff options
Diffstat (limited to 'src/server/game/Handlers/LootHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/LootHandler.cpp | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/src/server/game/Handlers/LootHandler.cpp b/src/server/game/Handlers/LootHandler.cpp index 35096da66b1..61e63311910 100644 --- a/src/server/game/Handlers/LootHandler.cpp +++ b/src/server/game/Handlers/LootHandler.cpp @@ -103,7 +103,7 @@ void WorldSession::HandleAutostoreLootItemOpcode(WorldPackets::Loot::AutoStoreLo } } -void WorldSession::HandleLootMoneyOpcode(WorldPacket& /*recvData*/) +void WorldSession::HandleLootMoneyOpcode(WorldPackets::Loot::LootMoney& /*packet*/) { TC_LOG_DEBUG("network", "WORLD: CMSG_LOOT_MONEY"); @@ -196,10 +196,10 @@ void WorldSession::HandleLootMoneyOpcode(WorldPacket& /*recvData*/) if (uint32 guildGold = CalculatePct(goldPerPlayer, (*i)->GetTotalAuraModifier(SPELL_AURA_DEPOSIT_BONUS_MONEY_IN_GUILD_BANK_ON_LOOT))) guild->HandleMemberDepositMoney(this, guildGold, true); - WorldPacket data(SMSG_LOOT_MONEY_NOTIFY, 4 + 1); - data << uint32(goldPerPlayer); - data << uint8(playersNear.size() <= 1); // Controls the text displayed in chat. 0 is "Your share is..." and 1 is "You loot..." - (*i)->GetSession()->SendPacket(&data); + WorldPackets::Loot::LootMoneyNotify packet; + packet.Money = goldPerPlayer; + packet.SoleLooter = playersNear.size() <= 1 ? true : false; + (*i)->SendDirectMessage(packet.Write()); } } else @@ -211,10 +211,10 @@ void WorldSession::HandleLootMoneyOpcode(WorldPacket& /*recvData*/) if (uint32 guildGold = CalculatePct(loot->gold, player->GetTotalAuraModifier(SPELL_AURA_DEPOSIT_BONUS_MONEY_IN_GUILD_BANK_ON_LOOT))) guild->HandleMemberDepositMoney(this, guildGold, true); - WorldPacket data(SMSG_LOOT_MONEY_NOTIFY, 4 + 1); - data << uint32(loot->gold); - data << uint8(1); // "You loot..." - SendPacket(&data); + WorldPackets::Loot::LootMoneyNotify packet; + packet.Money = loot->gold; + packet.SoleLooter = true; // "You loot..." + SendPacket(packet.Write()); } loot->gold = 0; @@ -244,18 +244,15 @@ void WorldSession::HandleLootOpcode(WorldPackets::Loot::LootUnit& packet) GetPlayer()->InterruptNonMeleeSpells(false); } -void WorldSession::HandleLootReleaseOpcode(WorldPacket& recvData) +void WorldSession::HandleLootReleaseOpcode(WorldPackets::Loot::LootRelease& packet) { TC_LOG_DEBUG("network", "WORLD: CMSG_LOOT_RELEASE"); // cheaters can modify lguid to prevent correct apply loot release code and re-loot // use internal stored guid - ObjectGuid guid; - recvData >> guid; - ObjectGuid lguid = GetPlayer()->GetLootGUID(); if (!lguid.IsEmpty()) - if (lguid == guid) + if (lguid == packet.Unit) DoLootRelease(lguid); } |