コード例 #1
0
        public static void ReadPeriodicAuraLogEffectData(Packet packet, params object[] idx)
        {
            packet.ReadInt32("Effect", idx);
            packet.ReadInt32("Amount", idx);
            packet.ReadInt32("OriginalDamage", idx);
            packet.ReadInt32("OverHealOrKill", idx);
            packet.ReadInt32("SchoolMaskOrPower", idx);
            packet.ReadInt32("AbsorbedOrAmplitude", idx);
            packet.ReadInt32("Resisted", idx);

            packet.ResetBitReader();

            packet.ReadBit("Crit", idx);
            var hasDebugData     = packet.ReadBit("HasPeriodicAuraLogEffectDebugInfo", idx);
            var hasContentTuning = packet.ReadBit("HasContentTuning", idx);

            if (hasContentTuning)
            {
                SpellHandler.ReadContentTuningParams(packet, idx, "ContentTuning");
            }

            if (hasDebugData)
            {
                packet.ReadSingle("CritRollMade", idx);
                packet.ReadSingle("CritRollNeeded", idx);
            }
        }
コード例 #2
0
        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");
            }
        }
コード例 #3
0
        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");
            }
        }