Exemple #1
0
        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();
        }
Exemple #2
0
        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;
            }
            }
        }
Exemple #3
0
        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);
            }
        }
Exemple #4
0
        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);
            }
        }