Beispiel #1
0
        public void SendCastEffect(Unit Target, ushort AbilityEntry, GameData.CombatEvent Event, uint Count)
        {
            if (IsPlayer())
            {
                PacketOut Out = new PacketOut((byte)Opcodes.F_CAST_PLAYER_EFFECT);
                Out.WriteUInt16(Oid);
                Out.WriteUInt16(Target.Oid);
                Out.WriteUInt16(AbilityEntry);
                Out.WriteByte(0);
                Out.WriteByte((byte)Event);
                Out.WriteByte(0x13);
                Out.WriteByte((byte)((128 + (Count % 64) * 2) + 1));
                Out.WriteByte((byte)(Count / 64));
                Out.WriteByte(0);
                DispatchGroup(Out);
            }

            if (Target != this && Target.IsPlayer())
            {
                PacketOut Out = new PacketOut((byte)Opcodes.F_CAST_PLAYER_EFFECT);
                Out.WriteUInt16(Oid);
                Out.WriteUInt16(Target.Oid);
                Out.WriteUInt16(AbilityEntry);
                Out.WriteByte(0);
                Out.WriteByte((byte)Event);
                Out.WriteByte(0x13);
                Out.WriteByte((byte)((128 + (Count % 64) * 2) + 1));
                Out.WriteByte((byte)(Count / 64));
                Out.WriteByte(0);
                Target.DispatchGroup(Out);
            }
        }
Beispiel #2
0
        // Draw Damages Text
        public void SendSpellDamage(Unit Target, uint Damage, bool Heal)
        {
            if (Caster.IsPlayer())
            {
                PacketOut Out = new PacketOut((byte)Opcodes.F_CAST_PLAYER_EFFECT);
                Out.WriteUInt16(Caster.Oid);
                Out.WriteUInt16(Target.Oid);
                Out.WriteUInt16(Info.Entry); // 00 00 07 D D
                Out.WriteByte(0);
                Out.WriteByte(0);
                Out.WriteByte(7);
                Out.WriteByte((byte)((128 + (Damage % 64) * 2) + (Heal ? 0 : 1)));
                Out.WriteByte((byte)(Damage / 64));
                Out.WriteByte(0xCE);
                Out.WriteByte(0x07);
                Caster.DispatchGroup(Out);
            }

            if (Caster != Target && Target.IsPlayer())
            {
                PacketOut Out = new PacketOut((byte)Opcodes.F_CAST_PLAYER_EFFECT);
                Out.WriteUInt16(Caster.Oid);
                Out.WriteUInt16(Target.Oid);
                Out.WriteUInt16(Info.Entry); // 00 00 07 D D
                Out.WriteByte(0);
                Out.WriteByte(0);
                Out.WriteByte(7);
                Out.WriteByte((byte)((128 + (Damage % 64) * 2) + (Heal ? 0 : 1)));
                Out.WriteByte((byte)(Damage / 64));
                Out.WriteByte(0xCE);
                Out.WriteByte(0x07);
                Target.DispatchGroup(Out);
            }
        }
Beispiel #3
0
        public void SendCastEffect(Unit Target, ushort AbilityEntry, GameData.CombatEvent Event, uint Count)
        {
            if (IsPlayer())
            {
                PacketOut Out = new PacketOut((byte)Opcodes.F_CAST_PLAYER_EFFECT);
                Out.WriteUInt16(Oid);
                Out.WriteUInt16(Target.Oid);
                Out.WriteUInt16(AbilityEntry);
                Out.WriteByte(0);
                Out.WriteByte((byte)Event);
                Out.WriteByte(0x13);
                Out.WriteByte((byte)((128 + (Count % 64) * 2) + 1));
                Out.WriteByte((byte)(Count / 64));
                Out.WriteByte(0);
                DispatchGroup(Out);
            }

            if (Target != this && Target.IsPlayer())
            {
                PacketOut Out = new PacketOut((byte)Opcodes.F_CAST_PLAYER_EFFECT);
                Out.WriteUInt16(Oid);
                Out.WriteUInt16(Target.Oid);
                Out.WriteUInt16(AbilityEntry);
                Out.WriteByte(0);
                Out.WriteByte((byte)Event);
                Out.WriteByte(0x13);
                Out.WriteByte((byte)((128 + (Count % 64) * 2) + 1));
                Out.WriteByte((byte)(Count / 64));
                Out.WriteByte(0);
                Target.DispatchGroup(Out);
            }
        }
Beispiel #4
0
        // Draw Damages Text
        public void SendSpellDamage(Unit Target, uint Damage, bool Heal)
        {
            if (Caster.IsPlayer())
            {
                PacketOut Out = new PacketOut((byte)Opcodes.F_CAST_PLAYER_EFFECT);
                Out.WriteUInt16(Caster.Oid);
                Out.WriteUInt16(Target.Oid);
                Out.WriteUInt16(Info.Entry); // 00 00 07 D D
                Out.WriteByte(0);
                Out.WriteByte(0);
                Out.WriteByte(7);
                Out.WriteByte((byte)((128 + (Damage % 64) * 2) + (Heal ? 0 : 1)));
                Out.WriteByte((byte)(Damage / 64));
                Out.WriteByte(0xCE);
                Out.WriteByte(0x07);
                Caster.DispatchGroup(Out);
            }

            if (Caster != Target && Target.IsPlayer())
            {
                PacketOut Out = new PacketOut((byte)Opcodes.F_CAST_PLAYER_EFFECT);
                Out.WriteUInt16(Caster.Oid);
                Out.WriteUInt16(Target.Oid);
                Out.WriteUInt16(Info.Entry); // 00 00 07 D D
                Out.WriteByte(0);
                Out.WriteByte(0);
                Out.WriteByte(7);
                Out.WriteByte((byte)((128 + (Damage % 64) * 2) + (Heal ? 0 : 1)));
                Out.WriteByte((byte)(Damage / 64));
                Out.WriteByte(0xCE);
                Out.WriteByte(0x07);
                Target.DispatchGroup(Out);
            }
        }