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