Core/PacketIO: Update and enabled SMSG_PARTY_KILL_LOG opcode
This commit is contained in:
@@ -67,6 +67,8 @@
|
||||
#include "CombatPackets.h"
|
||||
#include "CombatLogPackets.h"
|
||||
#include "VehiclePackets.h"
|
||||
#include "LootPackets.h"
|
||||
#include "PartyPackets.h"
|
||||
|
||||
#include <cmath>
|
||||
|
||||
@@ -13453,9 +13455,9 @@ void Unit::Kill(Unit* victim, bool durabilityLoss)
|
||||
// call kill spell proc event (before real die and combat stop to triggering auras removed at death/combat stop)
|
||||
if (isRewardAllowed && player && player != victim)
|
||||
{
|
||||
WorldPacket data(SMSG_PARTY_KILL_LOG, (8+8)); // send event PARTY_KILL
|
||||
data << player->GetGUID(); // player with killing blow
|
||||
data << victim->GetGUID(); // victim
|
||||
WorldPackets::Party::PartyKillLog partyKillLog;
|
||||
partyKillLog.Player = player->GetGUID();
|
||||
partyKillLog.Victim = victim->GetGUID();
|
||||
|
||||
Player* looter = player;
|
||||
Group* group = player->GetGroup();
|
||||
@@ -13463,7 +13465,7 @@ void Unit::Kill(Unit* victim, bool durabilityLoss)
|
||||
|
||||
if (group)
|
||||
{
|
||||
group->BroadcastPacket(&data, group->GetMemberGroup(player->GetGUID()) != 0);
|
||||
group->BroadcastPacket(partyKillLog.Write(), group->GetMemberGroup(player->GetGUID()) != 0);
|
||||
|
||||
if (creature)
|
||||
{
|
||||
@@ -13481,15 +13483,14 @@ void Unit::Kill(Unit* victim, bool durabilityLoss)
|
||||
}
|
||||
else
|
||||
{
|
||||
player->SendDirectMessage(&data);
|
||||
player->SendDirectMessage(partyKillLog.Write());
|
||||
|
||||
if (creature)
|
||||
{
|
||||
WorldPacket data2(SMSG_LOOT_LIST, 8 + 1 + 1);
|
||||
data2 << creature->GetGUID();
|
||||
data2 << uint8(0); // unk1
|
||||
data2 << uint8(0); // no group looter
|
||||
player->SendMessageToSet(&data2, true);
|
||||
WorldPackets::Loot::LootList lootList;
|
||||
lootList.Owner = creature->GetGUID();
|
||||
|
||||
player->SendMessageToSet(lootList.Write(), true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -541,6 +541,14 @@ void WorldPackets::Party::PartyMemberStats::Initialize(Player const* player)
|
||||
}
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::Party::PartyKillLog::Write()
|
||||
{
|
||||
_worldPacket << Player;
|
||||
_worldPacket << Victim;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::Party::GroupPhase const& phase)
|
||||
{
|
||||
data << phase.Flags;
|
||||
|
||||
@@ -594,6 +594,17 @@ namespace WorldPackets
|
||||
|
||||
std::vector<RaidMarker*> RaidMarkers;
|
||||
};
|
||||
|
||||
class PartyKillLog final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
PartyKillLog() : ServerPacket(SMSG_PARTY_KILL_LOG, 2 * 16) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
ObjectGuid Player;
|
||||
ObjectGuid Victim;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1430,7 +1430,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PAGE_TEXT, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_COMMAND_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_INVITE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_KILL_LOG, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_KILL_LOG, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_MEMBER_STATE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PARTY_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_PAUSE_MIRROR_TIMER, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
|
||||
Reference in New Issue
Block a user