Exemplo n.º 1
0
        public int GetMpStealSkillData(int attackType, out int prop, out int precent, out byte level)
        {
            SkillLevelData data = null;

            if (attackType == 2)
            {
                if ((level = GetSkillLevel(Constants.FPWizard.Skills.MpEater, out data)) > 0)
                {
                    prop    = data.Property;
                    precent = data.XValue;
                    return(Constants.FPWizard.Skills.MpEater);
                }

                else if ((level = GetSkillLevel(Constants.ILWizard.Skills.MpEater, out data)) > 0)
                {
                    prop    = data.Property;
                    precent = data.XValue;
                    return(Constants.ILWizard.Skills.MpEater);
                }

                else if ((level = GetSkillLevel(Constants.Cleric.Skills.MpEater, out data)) > 0)
                {
                    prop    = data.Property;
                    precent = data.XValue;
                    return(Constants.Cleric.Skills.MpEater);
                }
            }
            return(prop = precent = level = 0);
        }
Exemplo n.º 2
0
 public byte GetSkillLevel(int skillid, out SkillLevelData data)
 {
     data = GetSkillLevelData(skillid, out byte level);
     return(level);
 }
Exemplo n.º 3
0
        private static void ReadSkills()
        {
            short Count = Reader.ReadInt16();

            for (short i = 0; i < Count; i++)
            {
                int skillid = Reader.ReadInt32();
                Skills.Add(skillid, new Dictionary <byte, SkillLevelData>());
                byte levels = Reader.ReadByte();
                for (byte j = 0; j < levels; j++)
                {
                    byte           level = Reader.ReadByte();
                    SkillLevelData sld   = new SkillLevelData();
                    sld.MobCount = Reader.ReadByte();
                    sld.HitCount = Reader.ReadByte();

                    sld.BuffTime    = Reader.ReadInt16();
                    sld.Damage      = Reader.ReadInt16();
                    sld.AttackRange = Reader.ReadInt16();
                    sld.Mastery     = Reader.ReadByte();

                    sld.HPProperty = Reader.ReadInt16();
                    sld.MPProperty = Reader.ReadInt16();
                    sld.Property   = Reader.ReadInt16();

                    sld.HPUsage         = Reader.ReadInt16();
                    sld.MPUsage         = Reader.ReadInt16();
                    sld.ItemIDUsage     = Reader.ReadInt32();
                    sld.ItemAmountUsage = Reader.ReadInt16();
                    sld.BulletUsage     = Reader.ReadInt16();
                    sld.MesosUsage      = Reader.ReadInt16();

                    sld.XValue = Reader.ReadInt16();
                    sld.YValue = Reader.ReadInt16();

                    sld.Speed         = Reader.ReadInt16();
                    sld.Jump          = Reader.ReadInt16();
                    sld.WeaponAttack  = Reader.ReadInt16();
                    sld.MagicAttack   = Reader.ReadInt16();
                    sld.WeaponDefence = Reader.ReadInt16();
                    sld.MagicDefence  = Reader.ReadInt16();
                    sld.Accurancy     = Reader.ReadInt16();
                    sld.Avoidability  = Reader.ReadInt16();

                    sld.LTX = Reader.ReadInt16();
                    sld.LTY = Reader.ReadInt16();
                    sld.RBX = Reader.ReadInt16();
                    sld.RBY = Reader.ReadInt16();
                    Skills[skillid].Add(level, sld);
                }
            }

            byte amount = Reader.ReadByte();

            for (byte i = 0; i < amount; i++)
            {
                byte skillid = Reader.ReadByte();
                MobSkills.Add(skillid, new Dictionary <byte, MobSkillLevelData>());
                byte levels = Reader.ReadByte();
                for (byte j = 0; j < levels; j++)
                {
                    MobSkillLevelData msld = new MobSkillLevelData();
                    msld.SkillID = skillid;

                    msld.Level     = Reader.ReadByte();
                    msld.Time      = Reader.ReadInt16();
                    msld.MPConsume = Reader.ReadInt16();
                    msld.X         = Reader.ReadInt32();
                    msld.Y         = Reader.ReadInt32();
                    msld.Prop      = Reader.ReadByte();
                    msld.Cooldown  = Reader.ReadInt16();

                    msld.LTX = Reader.ReadInt16();
                    msld.LTY = Reader.ReadInt16();
                    msld.RBX = Reader.ReadInt16();
                    msld.RBY = Reader.ReadInt16();

                    msld.HPLimit      = Reader.ReadByte();
                    msld.SummonLimit  = Reader.ReadByte();
                    msld.SummonEffect = Reader.ReadByte();
                    byte summons = Reader.ReadByte();
                    msld.Summons = new List <int>();
                    for (byte k = 0; k < summons; k++)
                    {
                        msld.Summons.Add(Reader.ReadInt32());
                    }
                    MobSkills[skillid].Add(msld.Level, msld);
                }
            }
        }