Ejemplo n.º 1
0
        private void GetArgsList()
        {
            Help                   = (bool)ArgsList[0];
            DisplayMessages        = (bool)ArgsList[1];
            MessagesTitle          = (string)ArgsList[2];
            OldMessagesTitle       = (string)ArgsList[3];
            Messages               = (string)ArgsList[4];
            OldMessages            = (string)ArgsList[5];
            PageInfoList           = (ArrayList)ArgsList[12];
            SettingsCheckBoxesList = (ArrayList)ArgsList[17];
            megaSpawner            = (MegaSpawner)ArgsList[19];
            AVSArgsList            = (ArrayList)ArgsList[22];
            AVSSetList             = (ArrayList)ArgsList[23];
            PersonalConfigList     = (ArrayList)ArgsList[28];

            cpg = (int)PageInfoList[12];
            pg  = (int)PageInfoList[13];

            StyleTypeConfig         = (StyleType)PersonalConfigList[0];
            BackgroundTypeConfig    = (BackgroundType)PersonalConfigList[1];
            DefaultTextColor        = (TextColor)PersonalConfigList[4];
            TitleTextColor          = (TextColor)PersonalConfigList[5];
            MessagesTextColor       = (TextColor)PersonalConfigList[6];
            CommandButtonsTextColor = (TextColor)PersonalConfigList[7];
            PageNumberTextColor     = (int)PersonalConfigList[8];
            FlagTextColor           = (TextColor)PersonalConfigList[14];
        }
Ejemplo n.º 2
0
        public static void CheckDupedEntries(MegaSpawner megaSpawner)
        {
            for (int i = 0; i < megaSpawner.EntryList.Count; i++)
            {
                string entryType = (string)megaSpawner.EntryList[i];
                int    count     = 0;

                for (int j = 0; j < megaSpawner.EntryList.Count; j++)
                {
                    string entryCompare = (string)megaSpawner.EntryList[j];

                    if (entryType == entryCompare)
                    {
                        count++;
                    }

                    if (count > 1)
                    {
                        megaSpawner.DeleteEntry(i);
                        i--;

                        break;
                    }
                }
            }
        }
Ejemplo n.º 3
0
        public static Point3D GetSpawnPosition(MegaSpawner megaSpawner)
        {
            int range = megaSpawner.OverrideSpawnRange;

            for (int i = 0; i < MegaSpawner.spawnRetries; i++)
            {
                int x, y;

                if (megaSpawner.RootParent is Container)
                {
                    x = ((Container)megaSpawner.RootParent).Location.X;
                    y = ((Container)megaSpawner.RootParent).Location.Y;
                }
                else
                {
                    x = megaSpawner.Location.X;
                    y = megaSpawner.Location.Y;
                }

                x += (Utility.Random(((int)range * 2) + 1) - range);
                y += (Utility.Random(((int)range * 2) + 1) - range);
                int z = megaSpawner.Map.GetAverageZ(x, y);

                if (megaSpawner.Map.CanSpawnMobile(new Point2D(x, y), megaSpawner.Location.Z))
                {
                    return(new Point3D(x, y, megaSpawner.Location.Z));
                }
                else if (megaSpawner.Map.CanSpawnMobile(new Point2D(x, y), z))
                {
                    return(new Point3D(x, y, z));
                }
            }

            return(megaSpawner.Location);
        }
Ejemplo n.º 4
0
        public static void CheckSpawnTime(MegaSpawner megaSpawner, int time)
        {
            int beginTime = megaSpawner.OverrideBeginTimeBased;
            int endTime   = megaSpawner.OverrideEndTimeBased;

            if (endTime < beginTime)
            {
                if (beginTime <= time && time <= 1439)
                {
                    Spawn(megaSpawner);
                }

                if (time <= endTime)
                {
                    Spawn(megaSpawner);
                }
            }
            else
            {
                if (beginTime <= time && time <= endTime)
                {
                    Spawn(megaSpawner);
                }
            }
        }
Ejemplo n.º 5
0
        private void SetTimers()
        {
            switch (timerTypeSwitch)
            {
            case TimerType.Master:
            {
                MC.StartTimer();

                break;
            }

            default:
            {
                MC.CheckSpawners();

                for (int i = 0; i < MC.SpawnerList.Count; i++)
                {
                    MegaSpawner megaSpawner = (MegaSpawner)MC.SpawnerList[i];
                    megaSpawner.Start();
                }

                break;
            }
            }
        }
Ejemplo n.º 6
0
        public static DateTime FindFirstSpawnCounter(MegaSpawner megaSpawner)
        {
            DateTime lowestDelay = DateTime.Now;

            for (int i = 0; i < megaSpawner.OverrideRespawnEntryList.Count; i++)
            {
                if (megaSpawner.OverrideRespawnEntryList[i] is string)
                {
                    if ((string)megaSpawner.OverrideRespawnEntryList[i] == "")
                    {
                        if (megaSpawner.OverrideGroupSpawn)
                        {
                            lowestDelay = (DateTime)megaSpawner.OverrideSpawnCounterList[i];
                        }
                        else if (lowestDelay >= DateTime.Now && (DateTime)megaSpawner.OverrideSpawnCounterList[i] < DateTime.Now)
                        {
                            lowestDelay = (DateTime)megaSpawner.OverrideSpawnCounterList[i];
                        }
                        else if (lowestDelay > (DateTime)megaSpawner.OverrideSpawnCounterList[i])
                        {
                            lowestDelay = (DateTime)megaSpawner.OverrideSpawnCounterList[i];
                        }
                    }
                }
            }

            return(lowestDelay);
        }
Ejemplo n.º 7
0
        public static void OnMovement(MegaSpawner megaSpawner, Mobile mobile, Point3D oldLocation)
        {
            if (EventSpawnAttempt(megaSpawner, SpawnType.Proximity))
            {
                if (Utility.InRange(megaSpawner.Location, mobile.Location, megaSpawner.OverrideEventRange))
                {
                    int entryCount = CountEntries(megaSpawner);

                    if (megaSpawner.OverrideGroupSpawn && entryCount != 0)
                    {
                        return;
                    }

                    if ((megaSpawner.OverrideGroupSpawn && entryCount == 0) || CheckEventAmbush(megaSpawner))
                    {
                        FullSpawn(megaSpawner);
                    }
                    else
                    {
                        SingleSpawn(megaSpawner);
                    }
                }

                megaSpawner.OverrideTriggerEventNow = false;
            }
        }
Ejemplo n.º 8
0
        public static int FindFirstSpawnTime(MegaSpawner megaSpawner)
        {
            int lowestDelay = 0;

            for (int i = 0; i < megaSpawner.OverrideRespawnEntryList.Count; i++)
            {
                if (megaSpawner.OverrideRespawnEntryList[i] is string)
                {
                    if ((string)megaSpawner.OverrideRespawnEntryList[i] == "")
                    {
                        if (megaSpawner.OverrideGroupSpawn)
                        {
                            lowestDelay = (int)megaSpawner.OverrideSpawnTimeList[i];
                        }
                        else if (lowestDelay <= 0 && (int)megaSpawner.OverrideSpawnTimeList[i] > 0)
                        {
                            lowestDelay = (int)megaSpawner.OverrideSpawnTimeList[i];
                        }
                        else if (lowestDelay > (int)megaSpawner.OverrideSpawnTimeList[i])
                        {
                            lowestDelay = (int)megaSpawner.OverrideSpawnTimeList[i];
                        }
                    }
                }
            }

            return(lowestDelay - MegaSpawner.tickOffset);
        }
Ejemplo n.º 9
0
        public static void RemoveRespawnEntries(MegaSpawner megaSpawner, int index)
        {
            string entryType = (string)megaSpawner.EntryList[index];

            for (int i = 0; i < megaSpawner.OverrideRespawnEntryList.Count; i++)
            {
                object o = megaSpawner.OverrideRespawnEntryList[i];

                if (o is Item && ((Item)o).GetType().Name.ToLower() == entryType.ToLower())
                {
                    megaSpawner.OverrideRespawnEntryList.RemoveAt(i);
                    megaSpawner.OverrideRespawnTimeList.RemoveAt(i);
                    megaSpawner.OverrideSpawnCounterList.RemoveAt(i);
                    megaSpawner.OverrideSpawnTimeList.RemoveAt(i);
                    megaSpawner.OverrideDespawnTimeList.RemoveAt(i);

                    i--;
                }
                else if (o is Mobile && ((Mobile)o).GetType().Name.ToLower() == entryType.ToLower())
                {
                    megaSpawner.OverrideRespawnEntryList.RemoveAt(i);
                    megaSpawner.OverrideRespawnTimeList.RemoveAt(i);
                    megaSpawner.OverrideSpawnCounterList.RemoveAt(i);
                    megaSpawner.OverrideSpawnTimeList.RemoveAt(i);
                    megaSpawner.OverrideDespawnTimeList.RemoveAt(i);

                    i--;
                }
            }
        }
Ejemplo n.º 10
0
        public static void ClearSpawner(MegaSpawner megaSpawner)
        {
            CheckEntries(megaSpawner);
            DeleteEntries(megaSpawner);

            megaSpawner.WipeArrayLists();
        }
Ejemplo n.º 11
0
        public static void CheckEntries(MegaSpawner megaSpawner)
        {
            for (int i = 0; i < megaSpawner.OverrideSpawnedEntries.Count; i++)
            {
                object o = megaSpawner.OverrideSpawnedEntries[i];

                if (o is Item)
                {
                    Item item = (Item)o;

                    if (megaSpawner.OverrideLastMovedList[i] is int)
                    {
                        megaSpawner.OverrideLastMovedList[i] = item.LastMoved;
                    }

                    DateTime lastMoved = (DateTime)megaSpawner.OverrideLastMovedList[i];

                    if (item.RootParent != null && item.RootParent == (object)megaSpawner.ContainerSpawn && lastMoved != item.LastMoved)
                    {
                        lastMoved = item.LastMoved;
                        megaSpawner.OverrideLastMovedList[i] = item.LastMoved;
                    }

                    if (item.Deleted || (item.RootParent != null && megaSpawner.ContainerSpawn != null && item.RootParent != (object)megaSpawner.ContainerSpawn) || (item.RootParent != null && megaSpawner.RootParent != null && item.RootParent != megaSpawner.RootParent) || lastMoved != item.LastMoved)
                    {
                        megaSpawner.OverrideSpawnedEntries.RemoveAt(i);
                        megaSpawner.OverrideLastMovedList.RemoveAt(i);

                        SpawnCounter(megaSpawner, o);

                        i--;
                    }
                }
                else if (o is Mobile)
                {
                    Mobile mob = (Mobile)o;

                    if (mob.Deleted || (mob is BaseCreature && (((BaseCreature)mob).Controlled || ((BaseCreature)mob).IsStabled)))
                    {
                        megaSpawner.OverrideSpawnedEntries.RemoveAt(i);
                        megaSpawner.OverrideLastMovedList.RemoveAt(i);

                        SpawnCounter(megaSpawner, o);

                        i--;
                    }
                }
                else
                {
                    megaSpawner.OverrideSpawnedEntries.RemoveAt(i);
                    megaSpawner.OverrideLastMovedList.RemoveAt(i);

                    SpawnCounter(megaSpawner, o);

                    i--;
                }
            }
        }
Ejemplo n.º 12
0
 public static void RemoveRespawnEntries(MegaSpawner megaSpawner)
 {
     megaSpawner.OverrideRespawnEntryList.Clear();
     megaSpawner.OverrideRespawnTimeList.Clear();
     megaSpawner.OverrideSpawnCounterList.Clear();
     megaSpawner.OverrideSpawnTimeList.Clear();
     megaSpawner.OverrideRespawnOnSave = false;
     megaSpawner.OverrideDespawnTimeList.Clear();
 }
Ejemplo n.º 13
0
 public static void ResetSpawnTime(MegaSpawner megaSpawner)
 {
     for (int i = 0; i < megaSpawner.OverrideRespawnEntryList.Count; i++)
     {
         megaSpawner.OverrideRespawnTimeList[i]  = 0;
         megaSpawner.OverrideSpawnCounterList[i] = DateTime.Now;
         megaSpawner.OverrideSpawnTimeList[i]    = 0;
         megaSpawner.OverrideDespawnTimeList[i]  = 0;
     }
 }
Ejemplo n.º 14
0
        public static void FullSpawn(MegaSpawner megaSpawner)
        {
            int index;

            for (int i = 0; i < megaSpawner.OverrideAmount; i++)
            {
                index = SelectIndex(megaSpawner, megaSpawner.EntryList.Count);
                SpawnEntry(megaSpawner, index);
            }
        }
Ejemplo n.º 15
0
        private void ResetHideSpawnerList()
        {
            MC.CheckSpawners();

            for (int i = 0; i < MC.SpawnerList.Count; i++)
            {
                MegaSpawner megaSpawner = (MegaSpawner)MC.SpawnerList[i];

                HideSpawnerList[i] = (bool)false;
            }
        }
Ejemplo n.º 16
0
        private void SetNewSpawnerWorkspaceList()
        {
            MC.CheckSpawners();

            for (int i = 0; i < MC.SpawnerList.Count; i++)
            {
                MegaSpawner megaSpawner = (MegaSpawner)MC.SpawnerList[i];

                HideSpawnerList[i] = (bool)true;
            }
        }
Ejemplo n.º 17
0
        public static void BringToHome(MegaSpawner megaSpawner)
        {
            for (int i = 0; i < megaSpawner.OverrideSpawnedEntries.Count; i++)
            {
                object o = megaSpawner.OverrideSpawnedEntries[i];

                if (o is Mobile)
                {
                    ((Mobile)o).Location = megaSpawner.Location;
                }
            }
        }
        public override void OnResponse(Server.Network.NetState sender, RelayInfo info)
        {
            switch (info.ButtonID)
            {
            case 0:                     // Close Gump
            {
                MessagesTitle = "Delete Empty Spawners";
                Messages      = "You have chosen not to delete all empty spawners on the entire server.";

                SetArgsList();

                gumpMobile.SendGump(new PlugInsGump(gumpMobile, ArgsList));

                break;
            }

            case 1:                     // Delete Empty Spawners
            {
                int count = 0;

                for (int i = 0; i < MC.SpawnerList.Count; i++)
                {
                    MegaSpawner megaSpawner = (MegaSpawner)MC.SpawnerList[i];

                    if (megaSpawner.EntryList.Count == 0)
                    {
                        count++;

                        megaSpawner.Delete();
                    }
                }

                MessagesTitle = "Delete Empty Spawners";

                if (count > 0)
                {
                    Messages = String.Format("{0} empty Mega Spawner{1} been deleted.", count, count == 1 ? " has" : "s have");
                }
                else
                {
                    Messages = "There are no empty Mega Spawners on the entire server.";
                }

                SetArgsList();

                ArgsList[34] = (bool)true;                                      // RefreshSpawnerLists

                gumpMobile.SendGump(new PlugInsGump(gumpMobile, ArgsList));

                break;
            }
            }
        }
Ejemplo n.º 19
0
        public static bool CheckEventAmbush(MegaSpawner megaSpawner)
        {
            int entryCount = CountEntries(megaSpawner);

            if (entryCount != 0)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
        private void GetArgsList()
        {
            MessagesTitle      = (string)ArgsList[2];
            Messages           = (string)ArgsList[4];
            MSEGCheckBoxesList = (ArrayList)ArgsList[14];
            megaSpawner        = (MegaSpawner)ArgsList[19];
            PersonalConfigList = (ArrayList)ArgsList[28];

            StyleTypeConfig      = (StyleType)PersonalConfigList[0];
            BackgroundTypeConfig = (BackgroundType)PersonalConfigList[1];
            DefaultTextColor     = (TextColor)PersonalConfigList[4];
            TitleTextColor       = (TextColor)PersonalConfigList[5];
        }
Ejemplo n.º 21
0
        public static void ForceReconfigRespawn(MegaSpawner megaSpawner)
        {
            for (int i = 0; i < megaSpawner.OverrideAmount; i++)
            {
                megaSpawner.OverrideRespawnEntryList.Add("");
                megaSpawner.OverrideRespawnTimeList.Add(0);
                megaSpawner.OverrideSpawnCounterList.Add(DateTime.Now);
                megaSpawner.OverrideSpawnTimeList.Add(0);
                megaSpawner.OverrideDespawnTimeList.Add(0);
            }

            Respawn(megaSpawner);
        }
Ejemplo n.º 22
0
        public static void Spawn(MegaSpawner megaSpawner)
        {
            int entryCount = CountEntries(megaSpawner);

            if (megaSpawner.Respawning || (megaSpawner.OverrideGroupSpawn && entryCount == 0))
            {
                FullSpawn(megaSpawner);
            }
            else
            {
                SingleSpawn(megaSpawner);
            }
        }
Ejemplo n.º 23
0
            protected override void OnTarget(Mobile from, object targeted)
            {
                MegaSpawner ms = null;

                if (targeted is MegaSpawner)
                {
                    ms = (MegaSpawner)targeted;
                }

                if (ms != null)
                {
                    ms.Dupe(from, count);
                }
            }
Ejemplo n.º 24
0
        private void CheckSpawners()
        {
            for (int i = 0; i < SpawnerList.Count; i++)
            {
                MegaSpawner megaSpawner = (MegaSpawner)SpawnerList[i];

                if (megaSpawner.Deleted)
                {
                    SpawnerList.RemoveAt(i);

                    i--;
                }
            }
        }
Ejemplo n.º 25
0
        private void CompileSpawnerList()
        {
            SpawnerList.Clear();
            MC.CheckSpawners();

            for (int i = 0; i < MC.SpawnerList.Count; i++)
            {
                MegaSpawner megaSpawner = (MegaSpawner)MC.SpawnerList[i];

                if (!(bool)HideSpawnerList[i])
                {
                    SpawnerList.Add(megaSpawner);
                }
            }
        }
Ejemplo n.º 26
0
 public static void TickDown(MegaSpawner megaSpawner, int delay)
 {
     for (int i = 0; i < megaSpawner.OverrideRespawnEntryList.Count; i++)
     {
         if (megaSpawner.OverrideRespawnEntryList[i] is string)
         {
             if ((string)megaSpawner.OverrideRespawnEntryList[i] == "")
             {
                 if ((int)megaSpawner.OverrideRespawnTimeList[i] > 0)
                 {
                     megaSpawner.OverrideRespawnTimeList[i] = (int)megaSpawner.OverrideRespawnTimeList[i] - delay;
                 }
             }
         }
     }
 }
Ejemplo n.º 27
0
        public static void SingleSpawn(MegaSpawner megaSpawner)
        {
            if (megaSpawner.OverrideGroupSpawn)
            {
                return;
            }

            int entryCount = CountEntries(megaSpawner);

            int index = SelectIndex(megaSpawner, megaSpawner.EntryList.Count);

            if (entryCount < megaSpawner.OverrideAmount)
            {
                SpawnEntry(megaSpawner, index);
            }
        }
Ejemplo n.º 28
0
        public static void SpawnCounter(MegaSpawner megaSpawner, object o)
        {
            object fromCompare = o;

            if (o is Item)
            {
                fromCompare = (Item)o;
            }
            else if (o is Mobile)
            {
                fromCompare = (Mobile)o;
            }

            for (int i = 0; i < megaSpawner.OverrideRespawnEntryList.Count; i++)
            {
                if (megaSpawner.OverrideRespawnEntryList[i] is Mobile || megaSpawner.OverrideRespawnEntryList[i] is Item)
                {
                    object toCompare = megaSpawner.OverrideRespawnEntryList[i];

                    if (megaSpawner.OverrideRespawnEntryList[i] is Item)
                    {
                        toCompare = (Item)megaSpawner.OverrideRespawnEntryList[i];
                    }
                    else if (megaSpawner.OverrideRespawnEntryList[i] is Mobile)
                    {
                        toCompare = (Mobile)megaSpawner.OverrideRespawnEntryList[i];
                    }

                    if (fromCompare == toCompare && (int)megaSpawner.OverrideRespawnTimeList[i] <= MegaSpawner.tickOffset)
                    {
                        string entryType = Convert.ToString(toCompare.GetType().Name.ToLower());
                        megaSpawner.OverrideRespawnEntryList[i] = "";

                        if (megaSpawner.OverrideGroupSpawn && IsEmpty(megaSpawner))
                        {
                            AddSpawnCount(megaSpawner, i);
                        }
                        else if (!megaSpawner.OverrideGroupSpawn)
                        {
                            AddSpawnCount(megaSpawner, i);
                        }

                        return;
                    }
                }
            }
        }
Ejemplo n.º 29
0
        public static void DeleteEntries(MegaSpawner megaSpawner)
        {
            for (int i = 0; i < megaSpawner.OverrideSpawnedEntries.Count; i++)
            {
                object o = megaSpawner.OverrideSpawnedEntries[i];

                MC.DeleteObject(o);

                if (megaSpawner.OverrideRespawnEntryList.Count == megaSpawner.OverrideSpawnedEntries.Count)
                {
                    megaSpawner.OverrideRespawnEntryList[i] = "";
                }
            }

            megaSpawner.OverrideSpawnedEntries.Clear();
            megaSpawner.OverrideLastMovedList.Clear();
        }
Ejemplo n.º 30
0
        public static int CountEntries(MegaSpawner megaSpawner, int index)
        {
            int entryCount = 0;

            for (int i = 0; i < megaSpawner.OverrideSpawnedEntries.Count; i++)
            {
                object o         = megaSpawner.OverrideSpawnedEntries[i];
                string entryType = (string)megaSpawner.EntryList[index];

                if (o.GetType().Name.ToLower() == entryType.ToLower())
                {
                    entryCount++;
                }
            }

            return(entryCount);
        }