Ejemplo n.º 1
0
        public static async Task Convert()
        {
            try
            {
                if (!Directory.Exists("RAW"))
                {
                    Output.WriteLine("RAW not found! Restoring!");
                    //await Content.Content.RestoreAsync();
                    Output.WriteLine("RAW Restored!");
                }
                if (!Directory.Exists("Database"))
                {
                    Directory.CreateDirectory("Database");
                }

                Output.WriteLine("Rebuilding");
                UniqueIdGenerator.Load();
                MapManager.Load(@"RAW\ini\GameMap.dat", Environment.CurrentDirectory + "\\RAW\\");
                Item.ItemFactory.LoadDb();
                await Task.WhenAll(MonsterDb.Load(), PortalDb.Load(), MagicTypeConverter.Load(), ItemBonusConverter.Load(), StatpointConverter.Load(), LevelExpConverter.Load());

                NpcDb.Load();
                await Db.SaveAsJsonAsync(SaveType.All);
            }
            catch (Exception e)
            {
                Output.WriteLine(e);
                Output.WriteLine("N***a, I couldn't load the Db, nor convert your old db. What the f**k are you doing?");
            }
        }
Ejemplo n.º 2
0
        private static Task LoadMobs()
        {
            return(Task.Run(async() =>
            {
                var serializer = new JsonSerializer {
                    DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate, NullValueHandling = NullValueHandling.Ignore, TypeNameHandling = TypeNameHandling.Auto, Formatting = Formatting.Indented, Converters = { new BoolConverter() }
                };
                try
                {
                    using (var stream = new StreamReader("Database\\Spawns.json"))
                        using (var reader = new JsonTextReader(stream))
                            Collections.Spawns = serializer.Deserialize <ConcurrentDictionary <short, Spawn> >(reader);
                    using (var stream = new StreamReader("Database\\BaseMonsters.json"))
                        using (var reader = new JsonTextReader(stream))
                            Collections.BaseMonsters = serializer.Deserialize <Dictionary <uint, Monster> >(reader);
                    using (var stream = new StreamReader("Database\\Monsters.json"))
                        using (var reader = new JsonTextReader(stream))
                            Collections.Monsters = serializer.Deserialize <Dictionary <int, Monster> >(reader);
                    using (var stream = new StreamReader("Database\\MonsterNames.json"))
                        using (var reader = new JsonTextReader(stream))
                            Collections.MonsterNames = serializer.Deserialize <Dictionary <uint, string> >(reader);

                    foreach (var kvp in Collections.Monsters)
                    {
                        var mob = kvp.Value;
                        if (mob.Look == 900 || mob.Look == 910)
                        {
                            mob.Brain = new GuardBrain(mob);
                        }
                        else
                        {
                            mob.Brain = new BasicBrain(mob);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Output.WriteLine(ex);
                    await MonsterDb.Load();
                    using (var stream = new StreamWriter("Database\\BaseMonsters.json"))
                        serializer.Serialize(stream, Collections.BaseMonsters, Collections.BaseMonsters.GetType());
                    using (var stream = new StreamWriter("Database\\Monsters.json"))
                        serializer.Serialize(stream, Collections.Monsters, Collections.Monsters.GetType());
                    using (var stream = new StreamWriter("Database\\Spawns.json"))
                        serializer.Serialize(stream, Collections.Spawns, Collections.Spawns.GetType());
                    using (var stream = new StreamWriter("Database\\MonsterNames.json"))
                        serializer.Serialize(stream, Collections.MonsterNames, Collections.MonsterNames.GetType());
                }
            }));
        }