private static void PrevTarget() { var mobiles = World.MobilesInRange() .Where(x => !IsNextPrevFriend(x) && !TargetFilterManager.IsFilteredTarget(x.Serial)).ToList(); NextPrevTarget(mobiles, false); }
private static void RandomFriendTarget() { if (!Client.Instance.AllowBit(FeatureBit.RandomTargets)) { 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); } } if (list.Count > 0) { SetLastTargetTo(list[Utility.Random(list.Count)]); } else { World.Player.SendMessage(MsgLevel.Warning, LocString.TargNoOne); } }
private 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); } else { World.Player.SendMessage(MsgLevel.Warning, LocString.TargNoOne); } }
private static void PrevTargetInnocentMonster() { var mobiles = World.MobilesInRange() .Where(x => x.IsMonster && x.Notoriety == (int)TargetType.Innocent && !IsNextPrevFriend(x) && !x.Blessed && !x.IsGhost && x.Serial != World.Player.Serial && !TargetFilterManager.IsFilteredTarget(x.Serial)).ToList(); NextPrevTarget(mobiles, false); }
private static void NextTargetMurdererHumanoid() { var mobiles = World.MobilesInRange() .Where(x => x.IsHuman && x.Notoriety == (int)TargetType.Murderer && !IsNextPrevFriend(x) && !x.Blessed && !x.IsGhost && x.Serial != World.Player.Serial && !TargetFilterManager.IsFilteredTarget(x.Serial)).ToList(); NextPrevTarget(mobiles, true); }
private static void PrevTargetHumanoid() { var mobiles = World.MobilesInRange().Where(x => x.IsHuman && !IsNextPrevFriend(x) && !x.Blessed && !x.IsGhost && x.Serial != World.Player.Serial && !TargetFilterManager.IsFilteredTarget(x.Serial)) .ToList(); NextPrevTarget(mobiles, false); }
public static void PrevTargetCriminalHumanoid() { var mobiles = World.MobilesInRange() .Where(x => x.IsHuman && x.Notoriety == (int)TargetType.Criminal && !IsNextPrevFriend(x) && !x.Blessed && !x.IsGhost && x.Serial != World.Player.Serial && !TargetFilterManager.IsFilteredTarget(x.Serial)).ToList(); NextPrevTarget(mobiles, false); }
public static void NextPrevTargetNotorietyHumanoid(bool next, params int[] notoriety) { var mobiles = World.MobilesInRange() .Where(x => x.IsHuman && notoriety.Contains(x.Notoriety) && !IsNextPrevFriend(x) && !x.Blessed && !x.IsGhost && x.Serial != World.Player.Serial && !TargetFilterManager.IsFilteredTarget(x.Serial)) .ToList(); NextPrevTarget(mobiles, next); }
private static void NextTargetGreyMonster() { var mobiles = World.MobilesInRange() .Where(x => x.IsMonster && (x.Notoriety == (int)TargetType.Attackable || 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 PrevTargetFriendlyHumanoid() { var mobiles = World.MobilesInRange() .Where(x => x.IsHuman && (x.Notoriety == (int)TargetType.Innocent || x.Notoriety == (int)TargetType.Invalid || x.Notoriety == (int)TargetType.GuildAlly) && !IsNextPrevFriend(x) && !x.Blessed && !x.IsGhost && x.Serial != World.Player.Serial && !TargetFilterManager.IsFilteredTarget(x.Serial)) .ToList(); NextPrevTarget(mobiles, false, false, true); }
private static void PrevTargetNonFriend() { 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, false, false, false, true); }
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 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 void Save() { string profileDir = Config.GetUserDirectory("Profiles"); string file = Path.Combine(profileDir, String.Format("{0}.xml", m_Name)); if (m_Name != "default" && !m_Warned) { try { m_Mutex = new System.Threading.Mutex(true, String.Format("Razor_Profile_{0}", m_Name)); if (!m_Mutex.WaitOne(10, false)) { throw new Exception("Can't grab profile mutex, must be in use!"); } } catch { //MessageBox.Show( Engine.ActiveWindow, Language.Format( LocString.ProfileInUse, m_Name ), "Profile In Use", MessageBoxButtons.OK, MessageBoxIcon.Warning ); //m_Warned = true; return; // refuse to overwrite profiles that we don't own. } } XmlTextWriter xml; try { xml = new XmlTextWriter(file, Encoding.Default); } catch { return; } xml.Formatting = Formatting.Indented; xml.IndentChar = '\t'; xml.Indentation = 1; xml.WriteStartDocument(true); xml.WriteStartElement("profile"); foreach (KeyValuePair <string, object> de in m_Props) { xml.WriteStartElement("property"); xml.WriteAttributeString("name", de.Key); if (de.Value == null) { xml.WriteAttributeString("type", "-null-"); } else { xml.WriteAttributeString("type", de.Value.GetType().FullName); xml.WriteString(de.Value.ToString()); } xml.WriteEndElement(); } xml.WriteStartElement("filters"); Filter.Save(xml); xml.WriteEndElement(); xml.WriteStartElement("counters"); Counter.SaveProfile(xml); xml.WriteEndElement(); xml.WriteStartElement("agents"); Agent.SaveProfile(xml); xml.WriteEndElement(); xml.WriteStartElement("dresslists"); DressList.Save(xml); xml.WriteEndElement(); xml.WriteStartElement("hotkeys"); HotKey.Save(xml); xml.WriteEndElement(); xml.WriteStartElement("passwords"); PasswordMemory.Save(xml); xml.WriteEndElement(); xml.WriteStartElement("overheadmessages"); OverheadMessages.Save(xml); xml.WriteEndElement(); xml.WriteStartElement("containerlabels"); ContainerLabels.Save(xml); xml.WriteEndElement(); xml.WriteStartElement("macrovariables"); MacroVariables.Save(xml); xml.WriteEndElement(); xml.WriteStartElement("scriptvariables"); ScriptVariables.Save(xml); xml.WriteEndElement(); xml.WriteStartElement("friends"); FriendsManager.Save(xml); xml.WriteEndElement(); xml.WriteStartElement("targetfilters"); TargetFilterManager.Save(xml); xml.WriteEndElement(); xml.WriteStartElement("soundfilters"); SoundMusicManager.Save(xml); xml.WriteEndElement(); xml.WriteEndElement(); // end profile section xml.Close(); }
public bool Load() { if (m_Name == null || m_Name.Trim() == "") { return(false); } string path = Config.GetUserDirectory("Profiles"); string file = Path.Combine(path, String.Format("{0}.xml", m_Name)); if (!File.Exists(file)) { return(false); } XmlDocument doc = new XmlDocument(); try { doc.Load(file); } catch { MessageBox.Show(Engine.ActiveWindow, Language.Format(LocString.ProfileCorrupt, file), "Profile Load Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); return(false); } XmlElement root = doc["profile"]; if (root == null) { return(false); } Assembly exe = Assembly.GetCallingAssembly(); if (exe == null) { return(false); } foreach (XmlElement el in root.GetElementsByTagName("property")) { try { string name = el.GetAttribute("name"); string typeStr = el.GetAttribute("type"); string val = el.InnerText; if (typeStr == "-null-" || name == "LimitSize" || name == "VisRange") { //m_Props[name] = null; if (m_Props.ContainsKey(name)) { m_Props.Remove(name); } } else { Type type = Type.GetType(typeStr); if (type == null) { type = exe.GetType(typeStr); } if (m_Props.ContainsKey(name) || name == "ForceSize") { if (type == null) { m_Props.Remove(name); } else { m_Props[name] = GetObjectFromString(val, type); } } } } catch (Exception e) { MessageBox.Show(Engine.ActiveWindow, Language.Format(LocString.ProfileLoadEx, e.ToString()), "Profile Load Exception", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } Filter.Load(root["filters"]); Counter.LoadProfile(root["counters"]); Agent.LoadProfile(root["agents"]); DressList.Load(root["dresslists"]); TargetFilterManager.Load(root["targetfilters"]); SoundMusicManager.Load(root["soundfilters"]); FriendsManager.Load(root["friends"]); HotKey.Load(root["hotkeys"]); PasswordMemory.Load(root["passwords"]); OverheadMessages.Load(root["overheadmessages"]); ContainerLabels.Load(root["containerlabels"]); MacroVariables.Load(root["macrovariables"]); //imports previous absolutetargets and doubleclickvariables if present in profile if ((root.SelectSingleNode("absolutetargets") != null) || (root.SelectSingleNode("doubleclickvariables") != null)) { MacroVariables.Import(root); } ScriptVariables.Load(root["scriptvariables"]); GoldPerHourTimer.Stop(); DamageTracker.Stop(); if (m_Props.ContainsKey("ForceSize")) { try { int x, y; switch ((int)m_Props["ForceSize"]) { case 1: x = 960; y = 600; break; case 2: x = 1024; y = 768; break; case 3: x = 1152; y = 864; break; case 4: x = 1280; y = 720; break; case 5: x = 1280; y = 768; break; case 6: x = 1280; y = 800; break; case 7: x = 1280; y = 960; break; case 8: x = 1280; y = 1024; break; case 0: default: x = 800; y = 600; break; } SetProperty("ForceSizeX", x); SetProperty("ForceSizeY", y); if (x != 800 || y != 600) { SetProperty("ForceSizeEnabled", true); } m_Props.Remove("ForceSize"); } catch { } } //if ( !Language.Load( GetString( "Language" ) ) ) // MessageBox.Show( Engine.ActiveWindow, "Warning: Could not load language from profile, using current language instead.", "Language Error", MessageBoxButtons.OK, MessageBoxIcon.Warning ); return(true); }
public static void NextTargetMonster() { 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, true); }