Core/PacketIO: Updated and enabled CMSG_SPIRIT_HEALER_ACTIVATE / SMSG_SPIRIT_HEALER_CONFIRM for WoD
This commit is contained in:
@@ -347,17 +347,14 @@ void WorldSession::HandleGossipHelloOpcode(WorldPackets::NPC::Hello& packet)
|
||||
}
|
||||
}*/
|
||||
|
||||
void WorldSession::HandleSpiritHealerActivateOpcode(WorldPacket& recvData)
|
||||
void WorldSession::HandleSpiritHealerActivate(WorldPackets::NPC::SpiritHealerActivate& packet)
|
||||
{
|
||||
TC_LOG_DEBUG("network", "WORLD: CMSG_SPIRIT_HEALER_ACTIVATE");
|
||||
|
||||
ObjectGuid guid;
|
||||
recvData >> guid;
|
||||
|
||||
Creature* unit = GetPlayer()->GetNPCIfCanInteractWith(guid, UNIT_NPC_FLAG_SPIRITHEALER);
|
||||
Creature* unit = GetPlayer()->GetNPCIfCanInteractWith(packet.Healer, UNIT_NPC_FLAG_SPIRITHEALER);
|
||||
if (!unit)
|
||||
{
|
||||
TC_LOG_DEBUG("network", "WORLD: HandleSpiritHealerActivateOpcode - %s not found or you can not interact with him.", guid.ToString().c_str());
|
||||
TC_LOG_DEBUG("network", "WORLD: HandleSpiritHealerActivateOpcode - %s not found or you can not interact with him.", packet.Healer.ToString().c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -163,3 +163,15 @@ WorldPacket const* WorldPackets::NPC::GossipPOI::Write()
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
void WorldPackets::NPC::SpiritHealerActivate::Read()
|
||||
{
|
||||
_worldPacket >> Healer;
|
||||
}
|
||||
|
||||
WorldPacket const* WorldPackets::NPC::SpiritHealerConfirm::Write()
|
||||
{
|
||||
_worldPacket << Unit;
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
@@ -196,6 +196,26 @@ namespace WorldPackets
|
||||
int32 Importance = 0;
|
||||
std::string Name;
|
||||
};
|
||||
|
||||
class SpiritHealerActivate final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
SpiritHealerActivate(WorldPacket&& packet) : ClientPacket(CMSG_SPIRIT_HEALER_ACTIVATE, std::move(packet)) { }
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid Healer;
|
||||
};
|
||||
|
||||
class SpiritHealerConfirm final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
SpiritHealerConfirm() : ServerPacket(SMSG_SPIRIT_HEALER_CONFIRM, 16) { }
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
ObjectGuid Unit;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -760,7 +760,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_HANDLER(CMSG_SORT_BANK_BAGS, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_SORT_REAGENT_BANK_BAGS, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SPELL_CLICK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSpellClick );
|
||||
DEFINE_OPCODE_HANDLER_OLD(CMSG_SPIRIT_HEALER_ACTIVATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::HandleSpiritHealerActivateOpcode);
|
||||
DEFINE_HANDLER(CMSG_SPIRIT_HEALER_ACTIVATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::NPC::SpiritHealerActivate, &WorldSession::HandleSpiritHealerActivate);
|
||||
DEFINE_HANDLER(CMSG_SPLIT_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Item::SplitItem, &WorldSession::HandleSplitItemOpcode);
|
||||
DEFINE_HANDLER(CMSG_STAND_STATE_CHANGE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, WorldPackets::Misc::StandStateChange, &WorldSession::HandleStandStateChangeOpcode);
|
||||
DEFINE_HANDLER(CMSG_START_SPECTATOR_WAR_GAME, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
|
||||
@@ -1657,7 +1657,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_PERIODIC_AURA_LOG, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_START, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_UPDATE_CHAIN_TARGETS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPIRIT_HEALER_CONFIRM, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPIRIT_HEALER_CONFIRM, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_STAND_STATE_UPDATE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_START_ELAPSED_TIMER, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_START_ELAPSED_TIMERS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
|
||||
@@ -338,6 +338,7 @@ namespace WorldPackets
|
||||
{
|
||||
class Hello;
|
||||
class GossipSelectOption;
|
||||
class SpiritHealerActivate;
|
||||
}
|
||||
|
||||
namespace Petition
|
||||
@@ -1111,7 +1112,7 @@ class WorldSession
|
||||
void HandlePetitionShowList(WorldPackets::Petition::PetitionShowList& packet);
|
||||
void HandleGossipHelloOpcode(WorldPackets::NPC::Hello& packet);
|
||||
void HandleGossipSelectOptionOpcode(WorldPackets::NPC::GossipSelectOption& packet);
|
||||
void HandleSpiritHealerActivateOpcode(WorldPacket& recvPacket);
|
||||
void HandleSpiritHealerActivate(WorldPackets::NPC::SpiritHealerActivate& packet);
|
||||
void HandleNpcTextQueryOpcode(WorldPackets::Query::QueryNPCText& packet);
|
||||
void HandleBinderActivateOpcode(WorldPackets::NPC::Hello& packet);
|
||||
void HandleListStabledPetsOpcode(WorldPacket& recvPacket);
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
#include "SpellAuraEffects.h"
|
||||
#include "SpellHistory.h"
|
||||
#include "Vehicle.h"
|
||||
#include "NPCPackets.h"
|
||||
|
||||
class spell_gen_absorb0_hitlimit1 : public SpellScriptLoader
|
||||
{
|
||||
@@ -3052,9 +3053,9 @@ class spell_gen_spirit_healer_res : public SpellScriptLoader
|
||||
Player* originalCaster = GetOriginalCaster()->ToPlayer();
|
||||
if (Unit* target = GetHitUnit())
|
||||
{
|
||||
WorldPacket data(SMSG_SPIRIT_HEALER_CONFIRM, 8);
|
||||
data << target->GetGUID();
|
||||
originalCaster->GetSession()->SendPacket(&data);
|
||||
WorldPackets::NPC::SpiritHealerConfirm spiritHealerConfirm;
|
||||
spiritHealerConfirm.Unit = target->GetGUID();
|
||||
originalCaster->GetSession()->SendPacket(spiritHealerConfirm.Write());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user