Ejemplo n.º 1
0
        private static void PrevTarget()
        {
            var mobiles = World.MobilesInRange()
                          .Where(x => !IsNextPrevFriend(x) && !TargetFilterManager.IsFilteredTarget(x.Serial)).ToList();

            NextPrevTarget(mobiles, false);
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
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);
            }
        }
Ejemplo n.º 13
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);
            }
        }
Ejemplo n.º 14
0
        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();
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
        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);
        }