Exemple #1
0
        /// <summary>
        ///     Needs serious fixing in the reader, as it throws invalid casts (files all use uint, but f**k those)
        /// </summary>
        /// <param name="reader"></param>
        /// <returns></returns>
        public static ItemInfo Load(DataRow row)
        {
            var itemInfo = new ItemInfo
            {
                ItemID       = GetDataTypes.GetUshort(row["id"]),
                Slot         = (ItemSlot)GetDataTypes.GetByte(row["equip"]),
                InxName      = (string)row["inxname"],
                MaxLot       = GetDataTypes.GetInt(row["maxlot"]),
                AttackSpeed  = GetDataTypes.GetUshort(row["atkspeed"]),
                Level        = GetDataTypes.GetByte(row["demandlv"]),
                Type         = (ItemType)GetDataTypes.GetByte(row["type"]),
                Class        = (ItemClass)GetDataTypes.GetByte(row["class"]),
                UpgradeLimit = GetDataTypes.GetByte(row["uplimit"]),
                Jobs         = UnpackWhoEquip(GetDataTypes.GetUint(row["whoequip"])),
                TwoHand      = GetDataTypes.GetBool(row["TwoHand"]),
                MinMagic     = GetDataTypes.GetUshort(row["minma"]),
                MaxMagic     = GetDataTypes.GetUshort(row["maxma"]),
                MinMelee     = GetDataTypes.GetUshort(row["minwc"]),
                MaxMelee     = GetDataTypes.GetUshort(row["maxwc"]),
                WeaponDef    = GetDataTypes.GetUshort(row["ac"]),
                MagicDef     = GetDataTypes.GetUshort(row["mr"]),
                UpSucRation  = GetDataTypes.GetUshort(row["UpSucRatio"]),
                UpResource   = GetDataTypes.GetUshort(row["UpResource"]),
                SellPrice    = GetDataTypes.GetUint(row["SellPrice"]),
                BuyPrice     = GetDataTypes.GetUint(row["BuyPrice"])
            };

            itemInfo.Stats = new ItemStats();
            return(itemInfo);
        }
Exemple #2
0
        public static RewardItem LoadFromDatabase(System.Data.DataRow row)
        {
            RewardItem ppItem = new RewardItem
            {
                Slot   = GetDataTypes.GetSByte(row["Slot"]),
                ID     = GetDataTypes.GetUshort(row["ItemID"]),
                CharID = GetDataTypes.GetInt(row["CharID"]),
                PageID = GetDataTypes.GetByte(row["PageID"])
            };

            return(ppItem);
        }
Exemple #3
0
        public static PremiumItem LoadFromDatabase(DataRow row)
        {
            var ppItem = new PremiumItem
            {
                UniqueID = GetDataTypes.GetInt(row["UniqueID"]),
                Slot     = GetDataTypes.GetByte(row["PageID"]),
                ShopID   = GetDataTypes.GetInt(row["ShopID"]),
                CharID   = GetDataTypes.GetInt(row["CharID"]),
                PageID   = GetDataTypes.GetByte(row["PageID"])
            };

            return(ppItem);
        }
Exemple #4
0
        public static MapInfo Load(DataRow row)
        {
            var info = new MapInfo
            {
                ID        = GetDataTypes.GetUshort(row["ID"]),
                ShortName = (string)row["MapName"],
                FullName  = (string)row["Name"],
                RegenX    = GetDataTypes.GetInt(row["RegenX"]),
                RegenY    = GetDataTypes.GetInt(row["RegenY"]),
                Kingdom   = GetDataTypes.GetByte(row["KingdomMap"]),
                ViewRange = GetDataTypes.GetUshort(row["Sight"])
            };

            return(info);
        }
Exemple #5
0
        public static MasterMember LoadFromDatabase(DataRow row)
        {
            MasterMember Member = new MasterMember
            {
                pMemberName  = row["MemberName"].ToString(),
                CharID       = GetDataTypes.GetInt(row["CharID"]),
                Level        = GetDataTypes.GetByte(row["Level"]),
                IsMaster     = GetDataTypes.GetBool(row["isMaster"]),
                MasterID     = GetDataTypes.GetInt(row["MasterID"]),
                RegisterDate = DateTime.ParseExact(row["RegisterDate"].ToString(), "dd.MM.yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture),
            };

            Member.pMember  = ClientManager.Instance.GetClientByCharname(Member.pMemberName);
            Member.IsOnline = ClientManager.Instance.IsOnline(Member.pMemberName);
            return(Member);
        }
Exemple #6
0
        public static Mount LoadMount(DataRow Data)
        {
            var Mouninf = new Mount
            {
                MinLevel  = GetDataTypes.GetByte(Data["Level"]),
                ItemID    = GetDataTypes.GetUshort(Data["ItemID"]),
                TickSpeed = GetDataTypes.GetInt(Data["Tickspeed"]),
                Handle    = GetDataTypes.GetUshort(Data["Handle"]),
                Food      = GetDataTypes.GetUshort(Data["Food"]),
                speed     = GetDataTypes.GetUshort(Data["Speed"]),
                CastTime  = GetDataTypes.GetInt(Data["CastTime"]),
                Cooldown  = GetDataTypes.GetUshort(Data["Cooldown"]),
                permanent = GetDataTypes.GetBool(Data["permanent"])
            };

            return(Mouninf);
        }
Exemple #7
0
        private void LoadMobBreeds()
        {
            MobBreeds = new List <MobBreedLocation>();

            DataTable data = null;

            using (var dbClient = Program.DatabaseManager.GetClient())
            {
                data = dbClient.ReadDataTable("SELECT  *FROM `" + Settings.Instance.zoneMysqlDatabase +
                                              "`.`Mobspawn` WHERE MapID='" + MapInfo.ID + "'");
            }

            if (data != null)
            {
                if (data.Rows.Count > 0)
                {
                    foreach (DataRow row in data.Rows)
                    {
                        var locationInfo = new MobBreedLocation
                        {
                            MapID = GetDataTypes.GetUshort(row["MapID"]),
                            MobID = GetDataTypes.GetUshort(row["MobID"]),
                            //InstanceID = GetDataTypes.Getshort(row["InstanceID"]),
                            //NOTE from db throws;
                            InstanceID = 0,
                            Position   = new Vector2()
                        };
                        locationInfo.Position.X = GetDataTypes.GetInt(row["PosX"]);
                        locationInfo.Position.Y = GetDataTypes.GetInt(row["PosY"]);
                        MobBreeds.Add(locationInfo);
                    }
                }
                else
                {
                    MobBreeds = new List <MobBreedLocation>();
                }
            }
        }
Exemple #8
0
        public bool LoadCharacters()
        {
            if (!Authenticated)
            {
                return(false);
            }
            Characters = new Dictionary <byte, WorldCharacter>();
            try
            {
                DataTable charData = null;
                using (DatabaseClient dbClient = Program.DatabaseManager.GetClient())
                {
                    charData = dbClient.ReadDataTable("SELECT * FROM Characters WHERE AccountID='" + this.AccountID + "'");
                }

                if (charData != null)
                {
                    foreach (DataRow row in charData.Rows)
                    {
                        Database.Storage.Character ch = new Database.Storage.Character();
                        ch.PositionInfo.ReadFromDatabase(row);
                        ch.LookInfo.ReadFromDatabase(row);
                        ch.CharacterStats.ReadFromDatabase(row);
                        ch.Slot           = (byte)row["Slot"];
                        ch.CharLevel      = (byte)row["Level"];
                        ch.AccountID      = this.AccountID;
                        ch.Name           = (string)row["Name"];
                        ch.ID             = GetDataTypes.GetInt(row["CharID"]);
                        ch.Job            = (byte)row["Job"];
                        ch.Money          = GetDataTypes.GetLong(row["Money"].ToString());
                        ch.Exp            = long.Parse(row["Exp"].ToString());
                        ch.HP             = int.Parse(row["CurHP"].ToString());
                        ch.HPStones       = 10;
                        ch.MasterJoin     = DateTime.Parse(row["MasterJoin"].ToString());
                        ch.SP             = int.Parse(row["CurSP"].ToString());
                        ch.SPStones       = 10;
                        ch.StatPoints     = (byte)row["StatPoints"];
                        ch.UsablePoints   = (byte)row["UsablePoints"];
                        ch.Fame           = 0; // TODO
                        ch.GameSettings   = Database.DataStore.ReadMethods.GetGameSettings(ch.ID, Program.DatabaseManager);
                        ch.ClientSettings = Database.DataStore.ReadMethods.GetClientSettings(ch.ID, Program.DatabaseManager);
                        ch.Shortcuts      = Database.DataStore.ReadMethods.GetShortcuts(ch.ID, Program.DatabaseManager);
                        ch.QuickBar       = Database.DataStore.ReadMethods.GetQuickBar(ch.ID, Program.DatabaseManager);
                        ch.QuickBarState  = Database.DataStore.ReadMethods.GetQuickBarState(ch.ID, Program.DatabaseManager);
                        ch.ReviveCoper    = GetDataTypes.GetLong(row["MasterReciveMoney"]);
                        if (row.IsNull("GroupID"))
                        {
                            ch.GroupId = -1;
                        }
                        else
                        {
                            ch.GroupId = long.Parse(row["GroupID"].ToString());
                        }

                        if (ch.GroupId == -1 || row.IsNull("IsGroupMaster"))
                        {
                            ch.IsGroupMaster = false;
                        }
                        else
                        {
                            ch.IsGroupMaster = ReadMethods.EnumToBool(row["IsGroupMaster"].ToString());
                        }

                        Characters.Add(ch.Slot, new WorldCharacter(ch, this));
                    }
                }
            }
            catch (Exception ex)
            {
                Log.WriteLine(LogLevel.Exception, "Error loading characters from {0}: {1}", Username, ex.InnerException.ToString());
                return(false);
            }
            return(true);
        }