aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2021-04-18 00:12:46 +0200
committerShauren <shauren.trinity@gmail.com>2021-04-18 00:12:46 +0200
commit854a55daabf5dc264a961ec86ca0cd8ee39140c5 (patch)
tree4a826c2faed036623e144a4811d69cfa342bd66f /src/server/game/Server
parent530631e0a73c0bcd540f063cef975ecd827307b2 (diff)
Core/PacketIO: Implemented SMSG_SPELL_ABSORB_LOG
Diffstat (limited to 'src/server/game/Server')
-rw-r--r--src/server/game/Server/Packets/CombatLogPackets.cpp17
-rw-r--r--src/server/game/Server/Packets/CombatLogPackets.h17
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
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);