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); }
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); } }
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); } }
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); } }
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); } }
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); } }
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)]); } }
private static void PrevTarget() { var mobiles = World.MobilesInRange(); NextPrevTarget(mobiles, false); }
private static void NextTarget() { var mobiles = World.MobilesInRange(); NextPrevTarget(mobiles, true); }
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(); * }*/ }
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; }
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; }