Exemplo n.º 1
0
        public void LoadMonster(string file)
        {
            Logger.Information(Program.ServerMessages.GetMessage(Messages.MonsterMng_Loading), file);
            using (var tf = File.OpenText(file))
            {
                var contents     = tf.ReadToEnd();
                var MonsterRegex = new Regex(@"([\/0-9]+)\s+([0-9]+)\s+" + "\"" + "(.*)" + "\"" + @"\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s*");
                foreach (Match m in MonsterRegex.Matches(contents))
                {
                    //Console.WriteLine(m.Value);
                    if (m.Value.StartsWith("//"))
                    {
                        continue;
                    }

                    var monst = new MonsterBase
                    {
                        Monster      = ushort.Parse(m.Groups[1].Value),
                        Rate         = int.Parse(m.Groups[2].Value),
                        Name         = m.Groups[3].Value,
                        Level        = ushort.Parse(m.Groups[4].Value),
                        HP           = int.Parse(m.Groups[5].Value),
                        MP           = int.Parse(m.Groups[6].Value),
                        DmgMin       = int.Parse(m.Groups[7].Value),
                        DmgMax       = int.Parse(m.Groups[8].Value),
                        Defense      = int.Parse(m.Groups[9].Value),
                        MagicDefense = int.Parse(m.Groups[10].Value),
                        Attack       = int.Parse(m.Groups[11].Value),
                        Success      = int.Parse(m.Groups[12].Value),
                        MoveRange    = int.Parse(m.Groups[13].Value),
                        Spell        = (Spell)ushort.Parse(m.Groups[14].Value),
                        AttackRange  = int.Parse(m.Groups[15].Value),
                        ViewRange    = int.Parse(m.Groups[16].Value),
                        MoveSpeed    = int.Parse(m.Groups[17].Value),
                        AttackSpeed  = int.Parse(m.Groups[18].Value),
                        RegenTime    = int.Parse(m.Groups[19].Value),
                        Attribute    = int.Parse(m.Groups[20].Value),
                        ItemRate     = int.Parse(m.Groups[21].Value),
                        M_Rate       = int.Parse(m.Groups[22].Value),
                        MaxItem      = int.Parse(m.Groups[23].Value),
                        Skill        = int.Parse(m.Groups[24].Value),
                    };

                    if (monst.Spell >= (Spell)100 && monst.Spell < (Spell)200)
                    {
                        monst.Spell       -= 100;
                        monst.AttackRange += 2;
                    }
                    _monsterInfo.Add(monst.Monster, monst);
                }
            }

            Logger.Information(Program.ServerMessages.GetMessage(Messages.MonsterMng_Types), _monsterInfo.Count);
        }
Exemplo n.º 2
0
        public void LoadMonster(string file)
        {
            using (var tf = File.OpenText(file))
            {
                var contents     = tf.ReadToEnd();
                var MonsterRegex = new Regex(@"([\/0-9]+)\s+([0-9]+)\s+" + "\"" + "(.*)" + "\"" + @"\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s+([0-9]+)\s*");
                foreach (Match m in MonsterRegex.Matches(contents))
                {
                    //Console.WriteLine(m.Value);
                    if (m.Value.StartsWith("//"))
                    {
                        continue;
                    }

                    var monst = new MonsterBase
                    {
                        Monster   = ushort.Parse(m.Groups[1].Value),
                        Rate      = int.Parse(m.Groups[2].Value),
                        Name      = m.Groups[3].Value,
                        Level     = ushort.Parse(m.Groups[4].Value),
                        HP        = int.Parse(m.Groups[5].Value),
                        MP        = int.Parse(m.Groups[6].Value),
                        DmgMin    = int.Parse(m.Groups[7].Value),
                        DmgMax    = int.Parse(m.Groups[8].Value),
                        Defense   = int.Parse(m.Groups[9].Value),
                        Magic     = int.Parse(m.Groups[10].Value),
                        Attack    = int.Parse(m.Groups[11].Value),
                        Success   = int.Parse(m.Groups[12].Value),
                        MoveRange = int.Parse(m.Groups[13].Value),
                        A_Type    = int.Parse(m.Groups[14].Value),
                        A_Range   = int.Parse(m.Groups[15].Value),
                        V_Range   = int.Parse(m.Groups[16].Value),
                        MoveSpeed = int.Parse(m.Groups[17].Value),
                        A_Speed   = int.Parse(m.Groups[18].Value),
                        RegenTime = int.Parse(m.Groups[19].Value),
                        Attribute = int.Parse(m.Groups[20].Value),
                        ItemRate  = int.Parse(m.Groups[21].Value),
                        M_Rate    = int.Parse(m.Groups[22].Value),
                        MaxItem   = int.Parse(m.Groups[23].Value),
                        Skill     = int.Parse(m.Groups[24].Value),
                    };
                    _monsterInfo.Add(monst.Monster, monst);
                }
            }

            Console.WriteLine($"{_monsterInfo.Count} Type of Monsters");
        }