static void EventSink_WorldSave(WorldSaveEventArgs e) { if (!Directory.Exists(Path.Combine(Core.BaseDirectory, "Saves\\Statistics"))) { Directory.CreateDirectory(Path.Combine(Core.BaseDirectory, "Saves\\Statistics")); } GenericWriter writer = new BinaryFileWriter(new FileStream(Path.Combine(Core.BaseDirectory, "Saves\\Statistics\\statistics.bin"), FileMode.OpenOrCreate), true); writer.Write((int)0);//Version int count = _StatisticsTable.Count; writer.Write((int)count); List <Serial> keys = new List <Serial>(_StatisticsTable.Keys); for (int i = 0; i < keys.Count; i++) { Serial key = keys[i]; StatisticEntry entry = _StatisticsTable[key]; writer.Write((int)key); entry.Serialize(writer); } OutputToHTML(); }
private static void Load() { if (!File.Exists(Path.Combine(Core.BaseDirectory, "Saves\\Statistics\\statistics.bin"))) { return; } BinaryFileReader read = new BinaryFileReader( new BinaryReader(new FileStream(Path.Combine(Core.BaseDirectory, "Saves\\Statistics\\statistics.bin"), FileMode.Open)) ); GenericReader reader = read; int version = reader.ReadInt(); switch (version) { case 0: { int count = reader.ReadInt(); for (int i = 0; i < count; i++) { Serial serial = (Serial)reader.ReadInt(); StatisticEntry entry = new StatisticEntry(); entry.Deserialize(reader); _StatisticsTable.Add(serial, entry); } break; } } }
internal static void HandleKill(Mobile killer, Mobile died) { if (_StatisticsTable.ContainsKey(killer.Serial)) { _StatisticsTable[killer.Serial].HandleKill(died); } else { StatisticEntry entry = new StatisticEntry(killer); entry.HandleKill(died); _StatisticsTable.Add(killer.Serial, entry); } }
internal static void HandleDeath(Mobile died, Mobile from) { if (_StatisticsTable.ContainsKey(died.Serial)) { _StatisticsTable[died.Serial].HandleDeath(from); } else { StatisticEntry entry = new StatisticEntry(died); entry.HandleDeath(from); _StatisticsTable.Add(died.Serial, entry); } }