diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 9778bd902a6..1bd0cddb208 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -7149,15 +7149,15 @@ void Player::SendCurrencies() const void Player::SendPvpRewards() const { - WorldPacket packet(SMSG_REQUEST_PVP_REWARDS_RESPONSE, 24); - packet << GetCurrencyWeekCap(CURRENCY_TYPE_CONQUEST_POINTS, true); - packet << GetCurrencyOnWeek(CURRENCY_TYPE_CONQUEST_POINTS, true); - packet << GetCurrencyWeekCap(CURRENCY_TYPE_CONQUEST_META_ARENA, true); - packet << GetCurrencyOnWeek(CURRENCY_TYPE_CONQUEST_META_RBG, true); - packet << GetCurrencyOnWeek(CURRENCY_TYPE_CONQUEST_META_ARENA, true); - packet << GetCurrencyWeekCap(CURRENCY_TYPE_CONQUEST_POINTS, true); + WorldPackets::Misc::RequestPVPRewardsResponse packet; + packet.ArenaMaxRewardPointsThisWeek = GetCurrencyWeekCap(CURRENCY_TYPE_CONQUEST_META_ARENA, true); + packet.ArenaRewardPointsThisWeek = GetCurrencyOnWeek(CURRENCY_TYPE_CONQUEST_META_ARENA, true); + packet.MaxRewardPointsThisWeek = GetCurrencyWeekCap(CURRENCY_TYPE_CONQUEST_POINTS, true); + packet.RewardPointsThisWeek = GetCurrencyOnWeek(CURRENCY_TYPE_CONQUEST_POINTS, true); + packet.RatedMaxRewardPointsThisWeek = GetCurrencyWeekCap(CURRENCY_TYPE_CONQUEST_POINTS, true); + packet.RatedRewardPointsThisWeek = GetCurrencyOnWeek(CURRENCY_TYPE_CONQUEST_META_RBG, true); - SendDirectMessage(&packet); + SendDirectMessage(packet.Write()); } uint32 Player::GetCurrency(uint32 id, bool usePrecision) const diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp index 37853f77341..b1ed62d4735 100644 --- a/src/server/game/Server/Packets/MiscPackets.cpp +++ b/src/server/game/Server/Packets/MiscPackets.cpp @@ -47,6 +47,17 @@ WorldPacket const* WorldPackets::Misc::SetupCurrency::Write() _worldPacket << uint32(*data.WeeklyQuantity); } + return &_worldPacket; +} + +WorldPacket const* WorldPackets::Misc::RequestPVPRewardsResponse::Write() +{ + _worldPacket << uint32(MaxRewardPointsThisWeek); + _worldPacket << uint32(RewardPointsThisWeek); + _worldPacket << uint32(ArenaMaxRewardPointsThisWeek); + _worldPacket << uint32(RatedRewardPointsThisWeek); + _worldPacket << uint32(ArenaRewardPointsThisWeek); + _worldPacket << uint32(RatedMaxRewardPointsThisWeek); return &_worldPacket; } diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h index 51f99cbebdb..c908fafb3a1 100644 --- a/src/server/game/Server/Packets/MiscPackets.h +++ b/src/server/game/Server/Packets/MiscPackets.h @@ -46,6 +46,21 @@ namespace WorldPackets std::vector Data; }; + + class RequestPVPRewardsResponse final : public ServerPacket + { + public: + RequestPVPRewardsResponse() : ServerPacket(SMSG_REQUEST_PVP_REWARDS_RESPONSE, 24) { } + + WorldPacket const* Write() override; + + int32 RatedRewardPointsThisWeek = 0; + int32 ArenaRewardPointsThisWeek = 0; + int32 RewardPointsThisWeek = 0; + int32 RatedMaxRewardPointsThisWeek = 0; + int32 ArenaMaxRewardPointsThisWeek = 0; + int32 MaxRewardPointsThisWeek = 0; + }; } }