示例#1
0
        private static void DeathCamClearStats(PlayerMobile cam)
        {
            if (cam == null)
            {
                return;
            }

            if (PlayerMurderers != null)
            {
                PlayerMurderers.Clear();
            }

            if (MonsterMurderers != null)
            {
                MonsterMurderers.Clear();
            }

            CurrentDeathCount     = 0;
            CurrentPlayerMurders  = 0;
            CurrentMonsterMurders = 0;

            TopMonsterMurderer = null;
            TopPlayerMurderer  = null;

            cam.SendMessage("Action Camera stats have been cleared.");
        }
示例#2
0
        public static void PlayerKillerCheck(PlayerMobile pm)
        {
            if (pm == null || IsCamera(pm))
            {
                return;
            }

            ++CurrentPlayerMurders;

            if ((TopPlayerMurderer == null || TopPlayerMurderer.Deleted || !PlayerMurderers.ContainsKey(TopPlayerMurderer)) &&
                PlayerMurderers.Count > 0)
            {
                TopPlayerMurderer = PlayerMurderers.OrderByDescending(kv => kv.Value).FirstOrDefault().Key;
            }

            int count;

            if (!PlayerMurderers.TryGetValue(pm, out count))
            {
                PlayerMurderers.Add(pm, count = 1);
            }
            else
            {
                count = ++PlayerMurderers[pm];
            }

            if (count >= PlayerMurderers.Values.Max())
            {
                TopPlayerMurderer = pm;
            }
        }
示例#3
0
        public static void Defragment()
        {
            DeathCams.RemoveKeyRange(cam => cam.Deleted || !cam.IsOnline());
            DeathCamsEvents.RemoveKeyRange(cam => cam.Deleted || !cam.IsOnline());

            CurrentlyViewing.RemoveKeyRange(cam => cam.Deleted || !cam.IsOnline() || !IsCamera(cam));
            CurrentlyViewing.RemoveValueRange(target => target.Deleted || !target.IsOnline() || IsCamera(target));

            PlayerMurderers.RemoveKeyRange(player => player.Deleted);
            MonsterMurderers.RemoveKeyRange(mob => mob.Deleted);
        }