public static void NextTargetNonFriend()
        {
            var mobiles = World.MobilesInRange()
                          .Where(x => (x.Notoriety == (int)TargetType.Attackable ||
                                       x.Notoriety == (int)TargetType.Criminal ||
                                       x.Notoriety == (int)TargetType.Enemy ||
                                       x.Notoriety == (int)TargetType.Murderer) &&
                                 !IsNextPrevFriend(x) && !x.Blessed && !x.IsGhost && x.Serial != World.Player.Serial &&
                                 !TargetFilterManager.IsFilteredTarget(x.Serial)
                                 ).ToList();

            NextPrevTarget(mobiles, true, false, false, true);
        }
Example #2
0
        public static void ClosestMonsterTarget(params int[] noto)
        {
            List <Mobile> list = new List <Mobile>();

            foreach (Mobile m in World.MobilesInRange(12))
            {
                if (!m.IsMonster)
                {
                    continue;
                }

                if (((noto.Length > 0 && noto[0] == 0)) &&
                    !m.Blessed && !m.IsGhost && m.Serial != World.Player.Serial &&
                    Utility.InRange(World.Player.Position, m.Position, Config.GetInt("LTRange")))
                {
                    for (int i = 0; i < noto.Length; i++)
                    {
                        if (noto[i] == m.Notoriety)
                        {
                            list.Add(m);
                            break;
                        }
                    }

                    if (noto.Length == 0)
                    {
                        list.Add(m);
                    }
                }
            }

            Mobile closest     = null;
            double closestDist = double.MaxValue;

            foreach (Mobile m in list)
            {
                double dist = Utility.DistanceSqrt(m.Position, World.Player.Position);

                if (dist < closestDist || closest == null)
                {
                    closestDist = dist;
                    closest     = m;
                }
            }

            if (closest != null)
            {
                SetLastTargetTo(closest);
            }
        }
Example #3
0
        private static void ClosestTarget(params int[] noto)
        {
            var list = new List <Mobile>();

            foreach (var m in World.MobilesInRange(12))
            {
                if ((!FriendsManager.IsFriend(m.Serial) || noto.Length > 0 && noto[0] == 0) &&
                    !m.Blessed && !m.IsGhost && m.Serial != World.Player.Serial &&
                    !TargetFilterManager.IsFilteredTarget(m.Serial) &&
                    Utility.InRange(World.Player.Position, m.Position, Config.GetInt("LTRange")))
                {
                    for (var i = 0; i < noto.Length; i++)
                    {
                        if (noto[i] == m.Notoriety)
                        {
                            list.Add(m);
                            break;
                        }
                    }

                    if (noto.Length == 0)
                    {
                        list.Add(m);
                    }
                }
            }

            Mobile closest     = null;
            var    closestDist = double.MaxValue;

            foreach (var m in list)
            {
                var dist = Utility.DistanceSqrt(m.Position, World.Player.Position);

                if (dist < closestDist || closest == null)
                {
                    closestDist = dist;
                    closest     = m;
                }
            }

            if (closest != null)
            {
                SetLastTargetTo(closest);
            }
            else
            {
                World.Player.SendMessage(MsgLevel.Warning, LocString.TargNoOne);
            }
        }
Example #4
0
        public static void RandomMonsterTarget(params int[] noto)
        {
            if (!Client.Instance.AllowBit(FeatureBit.RandomTargets))
            {
                return;
            }

            var list = new List <Mobile>();

            foreach (var m in World.MobilesInRange(12))
            {
                if (!m.IsMonster)
                {
                    continue;
                }

                if ((!FriendsManager.IsFriend(m.Serial) || noto.Length > 0 && noto[0] == 0) &&
                    !m.Blessed && !m.IsGhost && m.Serial != World.Player.Serial &&
                    !TargetFilterManager.IsFilteredTarget(m.Serial) &&
                    Utility.InRange(World.Player.Position, m.Position, Config.GetInt("LTRange")))
                {
                    for (var i = 0; i < noto.Length; i++)
                    {
                        if (noto[i] == m.Notoriety)
                        {
                            list.Add(m);
                            break;
                        }
                    }

                    if (noto.Length == 0)
                    {
                        list.Add(m);
                    }
                }
            }

            if (list.Count > 0)
            {
                SetLastTargetTo(list[Utility.Random(list.Count)]);
                ScriptManager.TargetFound = true;
            }
            else
            {
                World.Player.SendMessage(MsgLevel.Warning, LocString.TargNoOne);
            }
        }
Example #5
0
        public static void RandomHumanoidTarget(params int[] noto)
        {
            if (!ClientCommunication.AllowBit(FeatureBit.RandomTargets))
            {
                return;
            }

            ArrayList list = new ArrayList();

            foreach (Mobile m in World.MobilesInRange(12))
            {
                if (m.Body != 0x0190 && m.Body != 0x0191 && m.Body != 0x025D && m.Body != 0x025E)
                {
                    continue;
                }

                if ((!FriendsAgent.IsFriend(m) || (noto.Length > 0 && noto[0] == 0)) &&
                    !m.Blessed && !m.IsGhost && m.Serial != World.Player.Serial &&
                    Utility.InRange(World.Player.Position, m.Position, Config.GetInt("LTRange")))
                {
                    for (int i = 0; i < noto.Length; i++)
                    {
                        if (noto[i] == m.Notoriety)
                        {
                            list.Add(m);
                            break;
                        }
                    }

                    if (noto.Length == 0)
                    {
                        list.Add(m);
                    }
                }
            }

            if (list.Count > 0)
            {
                SetLastTargetTo((Mobile)list[Utility.Random(list.Count)]);
            }
            else
            {
                World.Player.SendMessage(MsgLevel.Warning, LocString.TargNoOne);
            }
        }
Example #6
0
        public static void ClosestFriendTarget()
        {
            if (!Client.Instance.AllowBit(FeatureBit.ClosestTargets))
            {
                return;
            }

            var list = new List <Mobile>();

            foreach (var m in World.MobilesInRange(12))
            {
                if (FriendsManager.IsFriend(m.Serial) && !m.Blessed && !m.IsGhost && m.Serial != World.Player.Serial &&
                    !TargetFilterManager.IsFilteredTarget(m.Serial) &&
                    Utility.InRange(World.Player.Position, m.Position, Config.GetInt("LTRange")))
                {
                    list.Add(m);
                }
            }

            Mobile closest     = null;
            var    closestDist = double.MaxValue;

            foreach (var m in list)
            {
                var dist = Utility.DistanceSqrt(m.Position, World.Player.Position);

                if (dist < closestDist || closest == null)
                {
                    closestDist = dist;
                    closest     = m;
                }
            }

            if (closest != null)
            {
                SetLastTargetTo(closest);
                ScriptManager.TargetFound = true;
            }
            else
            {
                World.Player.SendMessage(MsgLevel.Warning, LocString.TargNoOne);
            }
        }
Example #7
0
        public static void RandomMonsterTarget(params int[] noto)
        {
            List <Mobile> list = new List <Mobile>();

            foreach (Mobile m in World.MobilesInRange(12))
            {
                if (!m.IsMonster)
                {
                    continue;
                }

                if ((noto.Length > 0 && noto[0] == 0) &&
                    !m.Blessed && !m.IsGhost && m.Serial != World.Player.Serial &&
                    Utility.InRange(World.Player.Position, m.Position, Config.GetInt("LTRange")))
                {
                    for (int i = 0; i < noto.Length; i++)
                    {
                        if (noto[i] == m.Notoriety)
                        {
                            list.Add(m);
                            break;
                        }
                    }

                    if (noto.Length == 0)
                    {
                        list.Add(m);
                    }
                }
            }

            if (list.Count > 0)
            {
                SetLastTargetTo(list[Utility.Random(list.Count)]);
            }
        }
Example #8
0
        private static void PrevTarget()
        {
            var mobiles = World.MobilesInRange();

            NextPrevTarget(mobiles, false);
        }
Example #9
0
        private static void NextTarget()
        {
            var mobiles = World.MobilesInRange();

            NextPrevTarget(mobiles, true);
        }
Example #10
0
        public static void NextTargetHumanoid()
        {
            ArrayList mobiles = World.MobilesInRange(12);
            ArrayList list    = new ArrayList();

            foreach (Mobile mob in mobiles)
            {
                if (mob.Body == 0x0190 || mob.Body == 0x0191 || mob.Body == 0x025D || mob.Body == 0x025E)
                {
                    list.Add(mob);
                }
            }

            if (list.Count <= 0)
            {
                World.Player.SendMessage(MsgLevel.Warning, LocString.TargNoOne);
                return;
            }

            TargetInfo targ = new TargetInfo();
            Mobile     m = null, old = World.FindMobile(m_LastTarget == null ? Serial.Zero : m_LastTarget.Serial);

            for (int i = 0; i < 3; i++)
            {
                m_NextTargHumanoidIdx++;

                if (m_NextTargHumanoidIdx >= list.Count)
                {
                    m_NextTargHumanoidIdx = 0;
                }

                m = (Mobile)list[m_NextTargHumanoidIdx];

                if (m != null && m != World.Player && m != old)
                {
                    break;
                }
                else
                {
                    m = null;
                }
            }

            if (m == null)
            {
                m = old;
            }

            if (m == null)
            {
                World.Player.SendMessage(MsgLevel.Warning, LocString.TargNoOne);
                return;
            }

            m_LastGroundTarg = m_LastTarget = targ;

            m_LastHarmTarg = m_LastBeneTarg = targ;

            if (m_HasTarget)
            {
                targ.Flags = m_CurFlags;
            }
            else
            {
                targ.Type = 0;
            }

            targ.Gfx    = m.Body;
            targ.Serial = m.Serial;
            targ.X      = m.Position.X;
            targ.Y      = m.Position.Y;
            targ.Z      = m.Position.Z;

            ClientCommunication.SendToClient(new ChangeCombatant(m));
            m_LastCombatant = m.Serial;
            World.Player.SendMessage(MsgLevel.Force, LocString.NewTargSet);

            /*if ( m_HasTarget )
             * {
             *      DoLastTarget();
             *      ClearQueue();
             * }*/
        }
Example #11
0
        public static void PrevTargetEnemyHumanoid()
        {
            List <Mobile> mobiles = World.MobilesInRange(12);
            List <Mobile> list    = new List <Mobile>();

            foreach (Mobile mob in mobiles)
            {
                if (mob.Body == 0x0190 || mob.Body == 0x0191 || mob.Body == 0x025D || mob.Body == 0x025E)
                {
                    if (mob.Notoriety == 5) // Check if they are red
                    {
                        list.Add(mob);
                    }
                }
            }

            if (list.Count <= 0)
            {
                return;
            }

            TargetInfo targ = new TargetInfo();
            Mobile     m = null, old = World.FindMobile(m_LastTarget == null ? Serial.Zero : m_LastTarget.Serial);

            for (int i = 0; i < 3; i++)
            {
                m_NextPrevTargEnemyHumanoidIdx--;

                if (m_NextPrevTargEnemyHumanoidIdx < 0)
                {
                    m_NextPrevTargEnemyHumanoidIdx = list.Count - 1;
                }

                m = list[m_NextPrevTargEnemyHumanoidIdx];

                if (m != null && m != World.Player && m != old)
                {
                    break;
                }
                else
                {
                    m = null;
                }
            }

            if (m == null)
            {
                m = old;
            }

            if (m == null)
            {
                return;
            }

            m_LastGroundTarg = m_LastTarget = targ;

            m_LastHarmTarg = m_LastBeneTarg = targ;

            if (m_HasTarget)
            {
                targ.Flags = m_CurFlags;
            }
            else
            {
                targ.Type = 0;
            }

            targ.Gfx    = m.Body;
            targ.Serial = m.Serial;
            targ.X      = m.Position.X;
            targ.Y      = m.Position.Y;
            targ.Z      = m.Position.Z;

            ClientCommunication.SendToClient(new ChangeCombatant(m));
            m_LastCombatant = m.Serial;
        }
Example #12
0
        public static void PrevTarget()
        {
            List <Mobile> list = World.MobilesInRange(12);
            TargetInfo    targ = new TargetInfo();
            Mobile        m = null, old = World.FindMobile(m_LastTarget == null ? Serial.Zero : m_LastTarget.Serial);

            if (list.Count <= 0)
            {
                return;
            }

            for (int i = 0; i < 3; i++)
            {
                m_NextPrevTargIdx--;

                if (m_NextPrevTargIdx < 0)
                {
                    m_NextPrevTargIdx = list.Count - 1;
                }

                m = (Mobile)list[m_NextPrevTargIdx];

                if (m != null && m != World.Player && m != old)
                {
                    break;
                }
                else
                {
                    m = null;
                }
            }

            if (m == null)
            {
                m = old;
            }

            if (m == null)
            {
                return;
            }

            m_LastGroundTarg = m_LastTarget = targ;

            m_LastHarmTarg = m_LastBeneTarg = targ;

            if (m_HasTarget)
            {
                targ.Flags = m_CurFlags;
            }
            else
            {
                targ.Type = 0;
            }

            targ.Gfx    = m.Body;
            targ.Serial = m.Serial;
            targ.X      = m.Position.X;
            targ.Y      = m.Position.Y;
            targ.Z      = m.Position.Z;

            ClientCommunication.SendToClient(new ChangeCombatant(m));
            m_LastCombatant = m.Serial;
        }