Пример #1
0
        public static RecallCoordinate Load(DataTableReaderEx reader)
        {
            RecallCoordinate info = new RecallCoordinate
            {
                ItemIndex = reader.GetString("ItemIndex"),
                MapName   = reader.GetString("MapName"),
                LinkX     = reader.GetInt16("LinkX"),
                LinkY     = reader.GetInt16("LinkY"),
            };

            return(info);
        }
Пример #2
0
        public static LinkTable Load(DataTableReaderEx reader)
        {
            LinkTable info = new LinkTable
            {
                argument  = reader.GetString("argument"),
                MapServer = reader.GetString("MapServer"),
                MapClient = reader.GetString("MapClient"),
                Coord_X   = reader.GetInt32("Coord-X"),
                Coord_Y   = reader.GetInt32("Coord-Y"),
                Direct    = reader.GetInt16("Direct"),
                LevelFrom = reader.GetInt16("LevelFrom"),
                LevelTo   = reader.GetInt16("LevelTo"),
                Party     = reader.GetByte("Party"),
            };

            return(info);
        }
Пример #3
0
        public static FiestaBaseStat Load(DataTableReaderEx reader, Job job)
        {
            FiestaBaseStat info = new FiestaBaseStat
            {
                Job           = job,
                Level         = reader.GetInt32("Level"),
                Strength      = reader.GetInt32("Strength"),
                Endurance     = reader.GetInt32("Constitution"),
                Intelligence  = reader.GetInt32("Intelligence"),
                Dexterity     = reader.GetInt32("Dexterity"),
                Spirit        = reader.GetInt32("MentalPower"),
                SoulHP        = reader.GetInt32("SoulHP"),
                MAXSoulHP     = reader.GetInt32("MAXSoulHP"),
                PriceHPStone  = reader.GetInt32("PriceHPStone"),
                SoulSP        = reader.GetInt32("SoulSP"),
                MAXSoulSP     = reader.GetInt32("MAXSoulSP"),
                PriceSPStone  = reader.GetInt32("PriceSPStone"),
                AtkPerAP      = reader.GetInt32("AtkPerAP"),
                DmgPerAP      = reader.GetInt32("DmgPerAP"),
                MaxPwrStone   = reader.GetInt32("MaxPwrStone"),
                NumPwrStone   = reader.GetInt32("NumPwrStone"),
                PricePwrStone = reader.GetInt32("PricePwrStone"),
                PwrStoneWC    = reader.GetInt32("PwrStoneWC"),
                PwrStoneMA    = reader.GetInt32("PwrStoneMA"),
                MaxGrdStone   = reader.GetInt32("MaxGrdStone"),
                NumGrdStone   = reader.GetInt32("NumGrdStone"),
                PriceGrdStone = reader.GetInt32("PriceGrdStone"),
                GrdStoneAC    = reader.GetInt32("GrdStoneAC"),
                GrdStoneMR    = reader.GetInt32("GrdStoneMR"),
                PainRes       = reader.GetInt32("PainRes"),
                RestraintRes  = reader.GetInt32("RestraintRes"),
                CurseRes      = reader.GetInt32("CurseRes"),
                ShockRes      = reader.GetInt32("ShockRes"),
                MaxHP         = (UInt32)reader.GetInt16("MaxHP"),
                MaxSP         = (UInt32)reader.GetInt16("MaxSP"),
                CharTitlePt   = reader.GetInt32("CharTitlePt"),
                SkillPwrPt    = reader.GetInt32("SkillPwrPt"),
            };

            return(info);
        }
Пример #4
0
        public static ShineNPC Load(DataTableReaderEx reader)
        {
            ShineNPC info = new ShineNPC
            {
                MobName  = reader.GetString("MobName"),
                Map      = reader.GetString("Map"),
                Coord_X  = reader.GetInt32("Coord-X"),
                Coord_Y  = reader.GetInt32("Coord-Y"),
                Direct   = reader.GetInt16("Direct"),
                NPCMenu  = reader.GetByte("NPCMenu"),
                Role     = reader.GetString("Role"),
                RoleArg0 = reader.GetString("RoleArg0"),
            };

            return(info);
        }
Пример #5
0
        private void LoadDrops()
        {
            DropGroups = new Dictionary <string, DropGroupInfo>();
            try
            {
                //first we load the dropgroups
                using (var groupfile = new ShineReader(folder + @"\ItemDropGroup.txt"))
                {
                    var table = groupfile["ItemDropGroup"];
                    using (var reader = new DataTableReaderEx(table))
                    {
                        while (reader.Read())
                        {
                            DropGroupInfo info = DropGroupInfo.Load(reader);
                            if (DropGroups.ContainsKey(info.GroupID))
                            {
                                //Log.WriteLine(LogLevel.Warn, "Duplicate DropGroup ID found: {0}.", info.GroupID);
                                continue;
                            }
                            DropGroups.Add(info.GroupID, info);
                        }
                    }
                }

                //now we load the actual drops
                int dropcount = 0;
                using (var tablefile = new ShineReader(folder + @"\ItemDropTable.txt"))
                {
                    var table = tablefile["ItemGroup"];
                    using (var reader = new DataTableReaderEx(table))
                    {
                        while (reader.Read())
                        {
                            string  mobid = reader.GetString("MobId");
                            MobInfo mob;
                            if (MobsByName.TryGetValue(mobid, out mob))
                            {
                                mob.MinDropLevel = (byte)reader.GetInt16("MinLevel");
                                mob.MaxDropLevel = (byte)reader.GetInt16("MaxLevel");
                                for (int i = 1; i <= 45; ++i)
                                {
                                    string dropgroup = reader.GetString("DrItem" + i);
                                    if (dropgroup.Length <= 2)
                                    {
                                        continue;
                                    }
                                    DropGroupInfo group;
                                    if (DropGroups.TryGetValue(dropgroup, out group))
                                    {
                                        float    rate = reader.GetInt32("DrItem" + i + "R") / 100000f;
                                        DropInfo info = new DropInfo(group, rate);
                                        mob.Drops.Add(info);
                                        ++dropcount;
                                    }
                                    else
                                    {
                                        //this seems to happen a lot so disable this for the heck of it.
                                        // Log.WriteLine(LogLevel.Warn, "Could not find DropGroup {0}.", dropgroup);
                                    }
                                }
                            }
                            else
                            {
                                Log.WriteLine(LogLevel.Warn, "Could not find mobname: {0} for drop.", mobid);
                            }
                        }
                    }
                }
                Log.WriteLine(LogLevel.Info, "Loaded {0} DropGroups, with {1} drops in total.", DropGroups.Count, dropcount);
            }
            catch (Exception ex)
            {
                Log.WriteLine(LogLevel.Exception, "Error loading DropTable: {0}", ex);
            }
        }