aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-03-19 00:03:38 +0100
committerOvahlord <dreadkiller@gmx.de>2025-04-06 19:29:25 +0200
commitcc8eafbfd0df39dc7efeab246e07b94a6cfe2544 (patch)
tree3fb1ae7b62a19feb15bd239003e4c07551757146 /src/server/game/Server
parent2881dcaa8d0d42ee578ec0e887611837202c752a (diff)
Core/Auras: Implemented SPELL_AURA_MOD_CHARGE_RECOVERY_RATE, SPELL_AURA_MOD_CHARGE_RECOVERY_RATE_BY_TYPE_MASK and SPELL_AURA_MOD_CHARGE_RECOVERY_BY_TYPE_MASK
(cherry picked from commit fa75f635669df6f0aab4abef074f9e8da4b5bf06)
Diffstat (limited to 'src/server/game/Server')
-rw-r--r--src/server/game/Server/Packets/SpellPackets.cpp11
-rw-r--r--src/server/game/Server/Packets/SpellPackets.h13
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp2
3 files changed, 25 insertions, 1 deletions
diff --git a/src/server/game/Server/Packets/SpellPackets.cpp b/src/server/game/Server/Packets/SpellPackets.cpp
index 13e1cd23f0f..e7d27bde9f3 100644
--- a/src/server/game/Server/Packets/SpellPackets.cpp
+++ b/src/server/game/Server/Packets/SpellPackets.cpp
@@ -696,6 +696,17 @@ WorldPacket const* SetSpellCharges::Write()
return &_worldPacket;
}
+WorldPacket const* UpdateChargeCategoryCooldown::Write()
+{
+ _worldPacket << int32(Category);
+ _worldPacket << float(ModChange);
+ _worldPacket << float(ModRate);
+ _worldPacket << Bits<1>(Snapshot);
+ _worldPacket.FlushBits();
+
+ return &_worldPacket;
+}
+
ByteBuffer& operator<<(ByteBuffer& data, SpellChargeEntry const& chargeEntry)
{
data << uint32(chargeEntry.Category);
diff --git a/src/server/game/Server/Packets/SpellPackets.h b/src/server/game/Server/Packets/SpellPackets.h
index b1d6defe629..76f4d7a1835 100644
--- a/src/server/game/Server/Packets/SpellPackets.h
+++ b/src/server/game/Server/Packets/SpellPackets.h
@@ -639,6 +639,19 @@ namespace WorldPackets
float ChargeModRate = 1.0f;
};
+ class UpdateChargeCategoryCooldown final : public ServerPacket
+ {
+ public:
+ UpdateChargeCategoryCooldown() : ServerPacket(SMSG_UPDATE_CHARGE_CATEGORY_COOLDOWN, 4 + 4 + 4 + 1) { }
+
+ WorldPacket const* Write() override;
+
+ int32 Category = 0;
+ float ModChange = 1.0f;
+ float ModRate = 1.0f;
+ bool Snapshot = false;
+ };
+
struct SpellChargeEntry
{
uint32 Category = 0;
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 6aa6da2dcf3..7828e297085 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -1895,7 +1895,7 @@ void OpcodeTable::InitializeServerOpcodes()
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_CAPTURE_POINT, STATUS_NEVER, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_CELESTIAL_BODY, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_CHARACTER_FLAGS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
- DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_CHARGE_CATEGORY_COOLDOWN, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
+ DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_CHARGE_CATEGORY_COOLDOWN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_COOLDOWN, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_CRAFTING_NPC_RECIPES, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
DEFINE_SERVER_OPCODE_HANDLER(SMSG_UPDATE_DAILY_MISSION_COUNTER, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);