Beispiel #1
0
        public static void CheckExpiredEntries()
        {
            for (int i = GreetingsEntries.Count - 1; i >= 0; i--)
            {
                if (GreetingsEntries[i].Expires != DateTime.MinValue && GreetingsEntries[i].Expired)
                {
                    GreetingsEntries.RemoveAt(i);
                }
            }

            for (int i = ModeratorEntries.Count - 1; i >= 0; i--)
            {
                if (ModeratorEntries[i].Expired)
                {
                    ModeratorEntries.RemoveAt(i);
                }
            }

            for (int i = CityEntries.Count - 1; i >= 0; i--)
            {
                if (CityEntries[i].Expired)
                {
                    CityEntries.RemoveAt(i);
                }
            }

            for (int i = GuildEntries.Count - 1; i >= 0; i--)
            {
                if (GuildEntries[i].Expired)
                {
                    GuildEntries.RemoveAt(i);
                }
            }

            if (MysteriousPotionEffects != null)
            {
                List <Mobile> list = new List <Mobile>(MysteriousPotionEffects.Keys);

                for (var index = 0; index < list.Count; index++)
                {
                    Mobile m = list[index];

                    if (MysteriousPotionEffects != null && MysteriousPotionEffects.ContainsKey(m) && MysteriousPotionEffects[m] < DateTime.UtcNow)
                    {
                        MysteriousPotionEffects.Remove(m);

                        if (MysteriousPotionEffects.Count == 0)
                        {
                            MysteriousPotionEffects = null;
                        }
                    }
                }

                ColUtility.Free(list);
            }

            CheckTimer();
        }
Beispiel #2
0
        public static void Load(GenericReader reader)
        {
            int version = reader.ReadInt();

            int count = reader.ReadInt();

            for (int i = 0; i < count; i++)
            {
                var entry = new TownCryerModeratorEntry(reader);

                if (!entry.Expired)
                {
                    ModeratorEntries.Add(entry);
                }
            }

            count = reader.ReadInt();
            for (int i = 0; i < count; i++)
            {
                var entry = new TownCryerCityEntry(reader);

                if (!entry.Expired)
                {
                    CityEntries.Add(entry);
                }
            }

            count = reader.ReadInt();
            for (int i = 0; i < count; i++)
            {
                var entry = new TownCryerGuildEntry(reader);

                if (!entry.Expired)
                {
                    GuildEntries.Add(entry);
                }
            }

            count = reader.ReadInt();
            for (int i = 0; i < count; i++)
            {
                Mobile   m  = reader.ReadMobile();
                DateTime dt = reader.ReadDateTime();

                if (m != null)
                {
                    if (MysteriousPotionEffects == null)
                    {
                        MysteriousPotionEffects = new Dictionary <Mobile, DateTime>();
                    }

                    MysteriousPotionEffects[m] = dt;
                }
            }

            CheckTimer();
        }
Beispiel #3
0
        public static void CheckExpiredEntries()
        {
            for (int i = ModeratorEntries.Count - 1; i >= 0; i--)
            {
                if (ModeratorEntries[i].Expired)
                {
                    ModeratorEntries.RemoveAt(i);
                }
            }

            for (int i = CityEntries.Count - 1; i >= 0; i--)
            {
                if (CityEntries[i].Expired)
                {
                    CityEntries.RemoveAt(i);
                }
            }

            for (int i = GuildEntries.Count - 1; i >= 0; i--)
            {
                if (GuildEntries[i].Expired)
                {
                    GuildEntries.RemoveAt(i);
                }
            }

            if (MysteriousPotionEffects != null)
            {
                var list = new List <Mobile>(MysteriousPotionEffects.Keys);

                foreach (var m in list)
                {
                    if (MysteriousPotionEffects != null && MysteriousPotionEffects.ContainsKey(m) && MysteriousPotionEffects[m] < DateTime.UtcNow)
                    {
                        MysteriousPotionEffects.Remove(m);

                        if (MysteriousPotionEffects.Count == 0)
                        {
                            MysteriousPotionEffects = null;
                        }
                    }
                }

                ColUtility.Free(list);
            }

            CheckTimer();
        }
Beispiel #4
0
        public static void Load(GenericReader reader)
        {
            int version = reader.ReadInt();

            int greetingsCount = 0;

            switch (version)
            {
            case 1:
                greetingsCount = reader.ReadInt();

                int count = reader.ReadInt();

                for (int i = 0; i < count; i++)
                {
                    PlayerMobile pm = reader.ReadMobile() as PlayerMobile;

                    if (pm != null)
                    {
                        AddExempt(pm);
                    }
                }

                count = reader.ReadInt();
                for (int i = 0; i < count; i++)
                {
                    TownCryerGreetingEntry entry = new TownCryerGreetingEntry(reader);

                    if (!entry.Expired)
                    {
                        GreetingsEntries.Add(entry);
                    }
                }
                goto case 0;

            case 0:
                count = reader.ReadInt();
                for (int i = 0; i < count; i++)
                {
                    TownCryerModeratorEntry entry = new TownCryerModeratorEntry(reader);

                    if (!entry.Expired)
                    {
                        ModeratorEntries.Add(entry);
                    }
                }

                count = reader.ReadInt();
                for (int i = 0; i < count; i++)
                {
                    TownCryerCityEntry entry = new TownCryerCityEntry(reader);

                    if (!entry.Expired)
                    {
                        CityEntries.Add(entry);
                    }
                }

                count = reader.ReadInt();
                for (int i = 0; i < count; i++)
                {
                    TownCryerGuildEntry entry = new TownCryerGuildEntry(reader);

                    if (!entry.Expired)
                    {
                        GuildEntries.Add(entry);
                    }
                }

                count = reader.ReadInt();
                for (int i = 0; i < count; i++)
                {
                    Mobile   m  = reader.ReadMobile();
                    DateTime dt = reader.ReadDateTime();

                    if (m != null)
                    {
                        if (MysteriousPotionEffects == null)
                        {
                            MysteriousPotionEffects = new Dictionary <Mobile, DateTime>();
                        }

                        MysteriousPotionEffects[m] = dt;
                    }
                }
                break;
            }

            if (greetingsCount < GreetingsEntries.Count)
            {
                NewGreeting = true;
            }

            CheckTimer();
        }
Beispiel #5
0
 public static void AddEntry(TownCryerModeratorEntry entry)
 {
     ModeratorEntries.Add(entry);
     CheckTimer();
 }