mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-19 17:05:44 +01:00
Core/Packets: enabled and added packet class for SMSG_REQUEST_PVP_REWARDS_RESPONSE
This commit is contained in:
@@ -6696,8 +6696,8 @@ void Player::SendCurrencies() const
|
||||
|
||||
void Player::SendPvpRewards() const
|
||||
{
|
||||
//WorldPacket packet(SMSG_REQUEST_PVP_REWARDS_RESPONSE, 24);
|
||||
//GetSession()->SendPacket(&packet);
|
||||
WorldPackets::Battleground::RequestPvPRewardsResponse pvpRewardsResponse;
|
||||
SendDirectMessage(pvpRewardsResponse.Write());
|
||||
}
|
||||
|
||||
void Player::SetCreateCurrency(uint32 id, uint32 amount)
|
||||
|
||||
@@ -430,3 +430,17 @@ WorldPacket const* WorldPackets::Battleground::CapturePointRemoved::Write()
|
||||
_worldPacket << CapturePointGUID;
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Battleground::RequestPvPRewardsResponse::Write()
|
||||
{
|
||||
_worldPacket << FirstRandomBGWinReward;
|
||||
_worldPacket << FirstRandomBGLossReward;
|
||||
_worldPacket << NthRandomBGWinReward;
|
||||
_worldPacket << NthRandomBGLossReward;
|
||||
_worldPacket << RatedBGRewards;
|
||||
_worldPacket << Arena2v2Rewards;
|
||||
_worldPacket << Arena3v3Rewards;
|
||||
_worldPacket << Arena5v5Rewards;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
@@ -566,6 +566,23 @@ namespace WorldPackets
|
||||
|
||||
ObjectGuid CapturePointGUID;
|
||||
};
|
||||
|
||||
class RequestPvPRewardsResponse final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
RequestPvPRewardsResponse() : ServerPacket(SMSG_REQUEST_PVP_REWARDS_RESPONSE) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
WorldPackets::LFG::LfgPlayerQuestReward FirstRandomBGWinReward;
|
||||
WorldPackets::LFG::LfgPlayerQuestReward FirstRandomBGLossReward;
|
||||
WorldPackets::LFG::LfgPlayerQuestReward NthRandomBGWinReward;
|
||||
WorldPackets::LFG::LfgPlayerQuestReward NthRandomBGLossReward;
|
||||
WorldPackets::LFG::LfgPlayerQuestReward RatedBGRewards;
|
||||
WorldPackets::LFG::LfgPlayerQuestReward Arena2v2Rewards;
|
||||
WorldPackets::LFG::LfgPlayerQuestReward Arena3v3Rewards;
|
||||
WorldPackets::LFG::LfgPlayerQuestReward Arena5v5Rewards;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -92,61 +92,6 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LFGBlackList const&
|
||||
return data;
|
||||
}
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgPlayerQuestRewardItem const& playerQuestRewardItem)
|
||||
{
|
||||
data << int32(playerQuestRewardItem.ItemID);
|
||||
data << int32(playerQuestRewardItem.Quantity);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgPlayerQuestRewardCurrency const& playerQuestRewardCurrency)
|
||||
{
|
||||
data << int32(playerQuestRewardCurrency.CurrencyID);
|
||||
data << int32(playerQuestRewardCurrency.Quantity);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgPlayerQuestReward const& playerQuestReward)
|
||||
{
|
||||
data << uint8(playerQuestReward.Mask);
|
||||
data << int32(playerQuestReward.RewardMoney);
|
||||
data << int32(playerQuestReward.RewardXP);
|
||||
data << uint32(playerQuestReward.Item.size());
|
||||
data << uint32(playerQuestReward.Currency.size());
|
||||
data << uint32(playerQuestReward.BonusCurrency.size());
|
||||
|
||||
for (WorldPackets::LFG::LfgPlayerQuestRewardItem const& item : playerQuestReward.Item)
|
||||
data << item;
|
||||
|
||||
for (WorldPackets::LFG::LfgPlayerQuestRewardCurrency const& currency : playerQuestReward.Currency)
|
||||
data << currency;
|
||||
|
||||
for (WorldPackets::LFG::LfgPlayerQuestRewardCurrency const& bonusCurrency : playerQuestReward.BonusCurrency)
|
||||
data << bonusCurrency;
|
||||
|
||||
data.WriteBit(playerQuestReward.RewardSpellID.has_value());
|
||||
data.WriteBit(playerQuestReward.Unused1.has_value());
|
||||
data.WriteBit(playerQuestReward.Unused2.has_value());
|
||||
data.WriteBit(playerQuestReward.Honor.has_value());
|
||||
data.FlushBits();
|
||||
|
||||
if (playerQuestReward.RewardSpellID)
|
||||
data << int32(*playerQuestReward.RewardSpellID);
|
||||
|
||||
if (playerQuestReward.Unused1)
|
||||
data << int32(*playerQuestReward.Unused1);
|
||||
|
||||
if (playerQuestReward.Unused2)
|
||||
data << uint64(*playerQuestReward.Unused2);
|
||||
|
||||
if (playerQuestReward.Honor)
|
||||
data << int32(*playerQuestReward.Honor);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgPlayerDungeonInfo const& playerDungeonInfo)
|
||||
{
|
||||
data << uint32(playerDungeonInfo.Slot);
|
||||
|
||||
@@ -155,38 +155,6 @@ namespace WorldPackets
|
||||
std::vector<LFGBlackListSlot> Slot;
|
||||
};
|
||||
|
||||
struct LfgPlayerQuestRewardItem
|
||||
{
|
||||
LfgPlayerQuestRewardItem() = default;
|
||||
LfgPlayerQuestRewardItem(int32 itemId, int32 quantity) : ItemID(itemId), Quantity(quantity) { }
|
||||
|
||||
int32 ItemID = 0;
|
||||
int32 Quantity = 0;
|
||||
};
|
||||
|
||||
struct LfgPlayerQuestRewardCurrency
|
||||
{
|
||||
LfgPlayerQuestRewardCurrency() = default;
|
||||
LfgPlayerQuestRewardCurrency(int32 currencyID, int32 quantity) : CurrencyID(currencyID), Quantity(quantity) { }
|
||||
|
||||
int32 CurrencyID = 0;
|
||||
int32 Quantity = 0;
|
||||
};
|
||||
|
||||
struct LfgPlayerQuestReward
|
||||
{
|
||||
uint8 Mask = 0; // Roles required for this reward, only used by ShortageReward in SMSG_LFG_PLAYER_INFO
|
||||
int32 RewardMoney = 0; // Only used by SMSG_LFG_PLAYER_INFO
|
||||
int32 RewardXP = 0;
|
||||
std::vector<LfgPlayerQuestRewardItem> Item;
|
||||
std::vector<LfgPlayerQuestRewardCurrency> Currency; // Only used by SMSG_LFG_PLAYER_INFO
|
||||
std::vector<LfgPlayerQuestRewardCurrency> BonusCurrency; // Only used by SMSG_LFG_PLAYER_INFO
|
||||
Optional<int32> RewardSpellID; // Only used by SMSG_LFG_PLAYER_INFO
|
||||
Optional<int32> Unused1;
|
||||
Optional<uint64> Unused2;
|
||||
Optional<int32> Honor; // Only used by SMSG_REQUEST_PVP_REWARDS_RESPONSE
|
||||
};
|
||||
|
||||
struct LfgPlayerDungeonInfo
|
||||
{
|
||||
uint32 Slot = 0;
|
||||
|
||||
@@ -40,3 +40,58 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::RideTicket const& ti
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgPlayerQuestRewardItem const& playerQuestRewardItem)
|
||||
{
|
||||
data << int32(playerQuestRewardItem.ItemID);
|
||||
data << int32(playerQuestRewardItem.Quantity);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgPlayerQuestRewardCurrency const& playerQuestRewardCurrency)
|
||||
{
|
||||
data << int32(playerQuestRewardCurrency.CurrencyID);
|
||||
data << int32(playerQuestRewardCurrency.Quantity);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgPlayerQuestReward const& playerQuestReward)
|
||||
{
|
||||
data << uint8(playerQuestReward.Mask);
|
||||
data << int32(playerQuestReward.RewardMoney);
|
||||
data << int32(playerQuestReward.RewardXP);
|
||||
data << uint32(playerQuestReward.Item.size());
|
||||
data << uint32(playerQuestReward.Currency.size());
|
||||
data << uint32(playerQuestReward.BonusCurrency.size());
|
||||
|
||||
for (WorldPackets::LFG::LfgPlayerQuestRewardItem const& item : playerQuestReward.Item)
|
||||
data << item;
|
||||
|
||||
for (WorldPackets::LFG::LfgPlayerQuestRewardCurrency const& currency : playerQuestReward.Currency)
|
||||
data << currency;
|
||||
|
||||
for (WorldPackets::LFG::LfgPlayerQuestRewardCurrency const& bonusCurrency : playerQuestReward.BonusCurrency)
|
||||
data << bonusCurrency;
|
||||
|
||||
data.WriteBit(playerQuestReward.RewardSpellID.has_value());
|
||||
data.WriteBit(playerQuestReward.Unused1.has_value());
|
||||
data.WriteBit(playerQuestReward.Unused2.has_value());
|
||||
data.WriteBit(playerQuestReward.Honor.has_value());
|
||||
data.FlushBits();
|
||||
|
||||
if (playerQuestReward.RewardSpellID)
|
||||
data << int32(*playerQuestReward.RewardSpellID);
|
||||
|
||||
if (playerQuestReward.Unused1)
|
||||
data << int32(*playerQuestReward.Unused1);
|
||||
|
||||
if (playerQuestReward.Unused2)
|
||||
data << uint64(*playerQuestReward.Unused2);
|
||||
|
||||
if (playerQuestReward.Honor)
|
||||
data << int32(*playerQuestReward.Honor);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
@@ -40,10 +40,45 @@ namespace WorldPackets
|
||||
Timestamp<> Time;
|
||||
bool Unknown925 = false;
|
||||
};
|
||||
|
||||
struct LfgPlayerQuestRewardItem
|
||||
{
|
||||
LfgPlayerQuestRewardItem() = default;
|
||||
LfgPlayerQuestRewardItem(int32 itemId, int32 quantity) : ItemID(itemId), Quantity(quantity) { }
|
||||
|
||||
int32 ItemID = 0;
|
||||
int32 Quantity = 0;
|
||||
};
|
||||
|
||||
struct LfgPlayerQuestRewardCurrency
|
||||
{
|
||||
LfgPlayerQuestRewardCurrency() = default;
|
||||
LfgPlayerQuestRewardCurrency(int32 currencyID, int32 quantity) : CurrencyID(currencyID), Quantity(quantity) { }
|
||||
|
||||
int32 CurrencyID = 0;
|
||||
int32 Quantity = 0;
|
||||
};
|
||||
|
||||
struct LfgPlayerQuestReward
|
||||
{
|
||||
uint8 Mask = 0; // Roles required for this reward, only used by ShortageReward in SMSG_LFG_PLAYER_INFO
|
||||
int32 RewardMoney = 0; // Only used by SMSG_LFG_PLAYER_INFO
|
||||
int32 RewardXP = 0;
|
||||
std::vector<LfgPlayerQuestRewardItem> Item;
|
||||
std::vector<LfgPlayerQuestRewardCurrency> Currency; // Only used by SMSG_LFG_PLAYER_INFO
|
||||
std::vector<LfgPlayerQuestRewardCurrency> BonusCurrency; // Only used by SMSG_LFG_PLAYER_INFO
|
||||
Optional<int32> RewardSpellID; // Only used by SMSG_LFG_PLAYER_INFO
|
||||
Optional<int32> Unused1;
|
||||
Optional<uint64> Unused2;
|
||||
Optional<int32> Honor; // Only used by SMSG_REQUEST_PVP_REWARDS_RESPONSE
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::LFG::RideTicket& ticket);
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::RideTicket const& ticket);
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgPlayerQuestRewardItem const& playerQuestRewardItem);
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgPlayerQuestRewardCurrency const& playerQuestRewardCurrency);
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::LFG::LfgPlayerQuestReward const& playerQuestReward);
|
||||
|
||||
#endif // LFGPacketsCommon_h__
|
||||
|
||||
@@ -1865,7 +1865,7 @@ void OpcodeTable::InitializeServerOpcodes()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_REPLACE_TROPHY_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_REPORT_PVP_PLAYER_AFK_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_REQUEST_CEMETERY_LIST_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_REQUEST_PVP_REWARDS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_REQUEST_PVP_REWARDS_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_REQUEST_SCHEDULED_PVP_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESET_COMPRESSION_CONTEXT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_RESET_FAILED_NOTIFY, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
|
||||
Reference in New Issue
Block a user