diff --git a/src/game/world_packets.cpp b/src/game/world_packets.cpp index 07e75ddf..93a3356a 100644 --- a/src/game/world_packets.cpp +++ b/src/game/world_packets.cpp @@ -2079,11 +2079,13 @@ bool AuraUpdateParser::parse(network::Packet& packet, AuraUpdateData& data, bool aura.durationMs = static_cast(packet.readUInt32()); } - if (aura.flags & 0x40) { // EFFECT_AMOUNTS - skip - // 3 effect amounts + if (aura.flags & 0x40) { // EFFECT_AMOUNTS + // Only read amounts for active effect indices (flags 0x01, 0x02, 0x04) for (int i = 0; i < 3; ++i) { - if (packet.getReadPos() < packet.getSize()) { - packet.readUInt32(); + if (aura.flags & (1 << i)) { + if (packet.getReadPos() < packet.getSize()) { + packet.readUInt32(); + } } } }