Exemple #1
0
        private 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);
            }
            else
            {
                World.Player.SendMessage(MsgLevel.Warning, LocString.TargNoOne);
            }
        }
Exemple #2
0
        public static void RandomTarget(params int[] noto)
        {
            if (!Client.Instance.AllowBit(FeatureBit.RandomTargets))
            {
                return;
            }

            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);
                    }
                }
            }

            if (list.Count > 0)
            {
                SetLastTargetTo(list[Utility.Random(list.Count)]);
                ScriptManager.TargetFound = true;
            }
            else
            {
                World.Player.SendMessage(MsgLevel.Warning, LocString.TargNoOne);
            }
        }
Exemple #3
0
        private static void NextTargetCriminalMonster()
        {
            var mobiles = World.MobilesInRange().Where(x =>
                                                       x.IsMonster && x.Notoriety == (int)TargetType.Criminal && !IsNextPrevFriend(x) && !x.Blessed &&
                                                       !x.IsGhost && x.Serial != World.Player.Serial && !TargetFilterManager.IsFilteredTarget(x.Serial))
                          .ToList();

            NextPrevTarget(mobiles, true);
        }
Exemple #4
0
        private static void PrevTargetMonster()
        {
            var mobiles = World.MobilesInRange().Where(x =>
                                                       x.IsMonster && !IsNextPrevFriend(x) && !x.Blessed && !x.IsGhost &&
                                                       x.Serial != World.Player.Serial && !TargetFilterManager.IsFilteredTarget(x.Serial))
                          .ToList();

            NextPrevTarget(mobiles, false);
        }
Exemple #5
0
        private static void PrevTargetEnemyHumanoid()
        {
            var mobiles = World.MobilesInRange().Where(x =>
                                                       x.IsHuman && x.Notoriety == (int)TargetType.Enemy && !IsNextPrevFriend(x) && !x.Blessed &&
                                                       !x.IsGhost && x.Serial != World.Player.Serial && !TargetFilterManager.IsFilteredTarget(x.Serial))
                          .ToList();

            NextPrevTarget(mobiles, false);
        }
Exemple #6
0
        public static void ClosestMonsterTarget(params int[] noto)
        {
            if (!Client.Instance.AllowBit(FeatureBit.ClosestTargets))
            {
                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);
                    }
                }
            }

            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);
            }
        }