public static void HandleAttackerStateUpdate(Packet packet) { var hasLogData = packet.ReadBit("HasLogData"); if (hasLogData) { SpellHandler.ReadSpellCastLogData(packet); } packet.ReadInt32("Size"); ReadAttackRoundInfo(packet, "AttackRoundInfo"); }
public static void HandleSpellNonMeleeDmgLog(Packet packet) { packet.ReadPackedGuid128("Me"); packet.ReadPackedGuid128("CasterGUID"); packet.ReadPackedGuid128("CastID"); packet.ReadInt32 <SpellId>("SpellID"); packet.ReadInt32("SpellXSpellVisualID"); packet.ReadInt32("Damage"); packet.ReadInt32("OriginalDamage"); packet.ReadInt32("OverKill"); packet.ReadByte("SchoolMask"); packet.ReadInt32("Absorbed"); packet.ReadInt32("Resisted"); packet.ReadInt32("ShieldBlock"); packet.ResetBitReader(); packet.ReadBit("Periodic"); packet.ReadBitsE <AttackerStateFlags>("Flags", 7); var hasDebugData = packet.ReadBit("HasDebugData"); var hasLogData = packet.ReadBit("HasLogData"); var hasContentTuning = packet.ReadBit("HasContentTuning"); if (hasLogData) { SpellHandler.ReadSpellCastLogData(packet, "SpellCastLogData"); } if (hasDebugData) { ReadSpellNonMeleeDebugData(packet, "DebugData"); } if (hasContentTuning) { SpellHandler.ReadContentTuningParams(packet, "ContentTuning"); } }
public static void ReadSpellDamageShield(Packet packet) { packet.ReadPackedGuid128("Attacker"); packet.ReadPackedGuid128("Defender"); packet.ReadInt32 <SpellId>("SpellID"); packet.ReadInt32("TotalDamage"); packet.ReadInt32("OriginalDamage"); packet.ReadInt32("OverKill"); packet.ReadInt32("SchoolMask"); packet.ReadInt32("LogAbsorbed"); packet.ResetBitReader(); var bit76 = packet.ReadBit("HasLogData"); if (bit76) { SpellHandler.ReadSpellCastLogData(packet); } }
public static void HandleSpellAbsorbLog(Packet packet) { packet.ReadPackedGuid128("Victim"); packet.ReadPackedGuid128("Caster"); packet.ReadInt32("InterruptedSpellID"); packet.ReadInt32 <SpellId>("SpellID"); packet.ReadPackedGuid128("ShieldTargetGUID?"); packet.ReadInt32("Absorbed"); packet.ReadInt32("OriginalDamage"); // OriginalDamage (before HitResult -> BeforeCrit and Armor etc) packet.ResetBitReader(); var bit100 = packet.ReadBit("HasLogData"); if (bit100) { SpellHandler.ReadSpellCastLogData(packet); } }
public static void HandleSpellHealLog(Packet packet) { packet.ReadPackedGuid128("TargetGUID"); packet.ReadPackedGuid128("CasterGUID"); packet.ReadInt32 <SpellId>("SpellID"); packet.ReadInt32("Health"); packet.ReadInt32("OriginalHeal"); packet.ReadInt32("OverHeal"); packet.ReadInt32("Absorbed"); packet.ResetBitReader(); packet.ReadBit("Crit"); var hasCritRollMade = packet.ReadBit("HasCritRollMade"); var hasCritRollNeeded = packet.ReadBit("HasCritRollNeeded"); var hasLogData = packet.ReadBit("HasLogData"); var hasContentTuning = packet.ReadBit("HasContentTuning"); if (hasLogData) { SpellHandler.ReadSpellCastLogData(packet); } if (hasCritRollMade) { packet.ReadSingle("CritRollMade"); } if (hasCritRollNeeded) { packet.ReadSingle("CritRollNeeded"); } if (hasContentTuning) { SpellHandler.ReadContentTuningParams(packet, "ContentTuning"); } }
public static void HandleSpellPeriodicAuraLog720(Packet packet) { packet.ReadPackedGuid128("TargetGUID"); packet.ReadPackedGuid128("CasterGUID"); packet.ReadInt32 <SpellId>("SpellID"); var periodicAuraLogEffectCount = packet.ReadUInt32("PeriodicAuraLogEffectCount"); packet.ResetBitReader(); var hasLogData = packet.ReadBit("HasLogData"); for (var i = 0; i < periodicAuraLogEffectCount; i++) { ReadPeriodicAuraLogEffectData(packet, "PeriodicAuraLogEffectData"); } if (hasLogData) { SpellHandler.ReadSpellCastLogData(packet, "SpellCastLogData"); } }