diff options
| author | Shauren <shauren.trinity@gmail.com> | 2021-04-18 00:12:46 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-04-18 00:12:46 +0200 |
| commit | 854a55daabf5dc264a961ec86ca0cd8ee39140c5 (patch) | |
| tree | 4a826c2faed036623e144a4811d69cfa342bd66f /src/server/game/Server | |
| parent | 530631e0a73c0bcd540f063cef975ecd827307b2 (diff) | |
Core/PacketIO: Implemented SMSG_SPELL_ABSORB_LOG
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Packets/CombatLogPackets.cpp | 17 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/CombatLogPackets.h | 17 | ||||
| -rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 2 |
3 files changed, 35 insertions, 1 deletions
diff --git a/src/server/game/Server/Packets/CombatLogPackets.cpp b/src/server/game/Server/Packets/CombatLogPackets.cpp index 390fb70170e..e6a81be2bc1 100644 --- a/src/server/game/Server/Packets/CombatLogPackets.cpp +++ b/src/server/game/Server/Packets/CombatLogPackets.cpp @@ -395,3 +395,20 @@ WorldPacket const* WorldPackets::CombatLog::SpellDispellLog::Write() return &_worldPacket; } + +WorldPacket const* WorldPackets::CombatLog::SpellAbsorbLog::Write() +{ + *this << Attacker; + *this << Victim; + *this << int32(AbsorbedSpellID); + *this << int32(AbsorbSpellID); + *this << Caster; + *this << int32(Absorbed); + *this << int32(OriginalDamage); + WriteBit(Unk); + WriteLogDataBit(); + FlushBits(); + WriteLogData(); + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/CombatLogPackets.h b/src/server/game/Server/Packets/CombatLogPackets.h index 0d06623746f..bef250fa4d0 100644 --- a/src/server/game/Server/Packets/CombatLogPackets.h +++ b/src/server/game/Server/Packets/CombatLogPackets.h @@ -324,6 +324,23 @@ namespace WorldPackets float Unk = 0.0f; Spells::ContentTuningParams ContentTuning; }; + + class SpellAbsorbLog final : public CombatLogServerPacket + { + public: + SpellAbsorbLog() : CombatLogServerPacket(SMSG_SPELL_ABSORB_LOG, 100) { } + + WorldPacket const* Write() override; + + ObjectGuid Attacker; + ObjectGuid Victim; + ObjectGuid Caster; + int32 AbsorbedSpellID = 0; + int32 AbsorbSpellID = 0; + int32 Absorbed = 0; + int32 OriginalDamage = 0; + bool Unk = false; + }; } } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 0c1e39bb487..ddbabb4822a 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -1900,7 +1900,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_SOCKET_GEMS_SUCCESS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPECIAL_MOUNT_ANIM, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPEC_INVOLUNTARILY_CHANGED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_ABSORB_LOG, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_ABSORB_LOG, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_CATEGORY_COOLDOWN, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_CHANNEL_START, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_SPELL_CHANNEL_UPDATE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); |
