/// <summary>
 /// Correct 3.0.9
 /// </summary>
 public static void SendSpellMiss(SpellCast cast, bool display, ICollection <MissedTarget> missedTargets)
 {
     using (var packet = new RealmPacketOut(RealmServerOpCode.SMSG_SPELLLOGMISS, 34))
     {
         packet.Write(cast.Spell.Id);
         packet.Write(cast.CasterReference.EntityId);
         packet.Write(display);                // TODO: test this value. Its a bool that seems to determine whether to display this packet in the combat log
         packet.Write(missedTargets.Count);
         foreach (var miss in missedTargets)
         {
             packet.Write(miss.Target.EntityId);
             packet.Write((byte)miss.Reason);
         }
         cast.SendPacketToArea(packet);
     }
 }
        /// <summary>Correct 3.0.9</summary>
        public static void SendSpellMiss(SpellCast cast, bool display, ICollection <MissedTarget> missedTargets)
        {
            using (RealmPacketOut packet = new RealmPacketOut((PacketId)RealmServerOpCode.SMSG_SPELLLOGMISS, 34))
            {
                packet.Write(cast.Spell.Id);
                packet.Write((ulong)cast.CasterReference.EntityId);
                packet.Write(display);
                packet.Write(missedTargets.Count);
                foreach (MissedTarget missedTarget in (IEnumerable <MissedTarget>)missedTargets)
                {
                    packet.Write((ulong)missedTarget.Target.EntityId);
                    packet.Write((byte)missedTarget.Reason);
                }

                cast.SendPacketToArea(packet);
            }
        }