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."); }
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; } }
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); }