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 MonsterKillerCheck(BaseCreature m) { if (m == null) { return; } ++CurrentMonsterMurders; if ((TopMonsterMurderer == null || TopMonsterMurderer.Deleted || !MonsterMurderers.ContainsKey(TopMonsterMurderer)) && MonsterMurderers.Count > 0) { TopMonsterMurderer = MonsterMurderers.OrderByDescending(kv => kv.Value).FirstOrDefault().Key; } int count; if (!MonsterMurderers.TryGetValue(m, out count)) { MonsterMurderers.Add(m, count = 1); } else { count = ++MonsterMurderers[m]; } if (count >= MonsterMurderers.Values.Max()) { TopMonsterMurderer = m; } }
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); }