Ejemplo n.º 1
0
        private async Task <List <Pet> > DoLoadPetList()
        {
            var itemList        = new List <Pet>();
            var mySqlConnection = _mainWindowViewModel.MySqlConnection;
            var sql             = "SELECT * FROM t_pet WHERE charguid=" + _charguid
                                  + " ORDER BY aid ASC";
            var mySqlCommand = new MySqlCommand(sql, mySqlConnection);
            await Task.Run(async() =>
            {
                var gameDbName = _mainWindowViewModel.SelectedServer.GameDbName;
                if (mySqlConnection.Database != gameDbName)
                {
                    // 切换数据库
                    await mySqlConnection.ChangeDataBaseAsync(gameDbName);
                }

                using (var rd = await mySqlCommand.ExecuteReaderAsync() as MySqlDataReader)
                {
                    while (await rd.ReadAsync())
                    {
                        var itemInfo = new Pet()
                        {
                            PetGuid   = rd.GetInt32("lpetguid"),
                            Charguid  = rd.GetInt32("charguid"),
                            PetName   = DbStringService.ToCommonString(rd.GetString("petname")),
                            Level     = rd.GetInt32("level"),
                            NeedLevel = rd.GetInt32("needlevel"),
                            AiType    = rd.GetInt32("aitype"),
                            Life      = rd.GetInt32("life"),
                            PetType   = rd.GetInt32("pettype"),
                            Genera    = rd.GetInt32("genera"),
                            Enjoy     = rd.GetInt32("enjoy"),
                            Strper    = rd.GetInt32("strper"),
                            Conper    = rd.GetInt32("conper"),
                            Dexper    = rd.GetInt32("dexper"),
                            Sprper    = rd.GetInt32("sprper"),
                            Iprper    = rd.GetInt32("iprper"),
                            Savvy     = rd.GetInt32("savvy"),
                            Gengu     = rd.GetInt32("gengu"),
                            Growrate  = rd.GetInt32("growrate"),
                            Repoint   = rd.GetInt32("repoint"),
                            Exp       = rd.GetInt32("exp"),
                            Str       = rd.GetInt32("str"),
                            Con       = rd.GetInt32("con"),
                            Dex       = rd.GetInt32("dex"),
                            Spr       = rd.GetInt32("spr"),
                            Ipr       = rd.GetInt32("ipr"),
                            Skill     = rd.GetString("skill") ?? string.Empty
                        };
                        itemList.Add(itemInfo);
                    }
                }
            });

            return(itemList);
        }
        private async Task <List <ItemInfo> > DoLoadItemList()
        {
            var itemList        = new List <ItemInfo>();
            var mySqlConnection = _mainWindowViewModel.MySqlConnection;

            var(startPos, endPos) = SaveItemService.GetBagItemIndexRange(SaveItemService.BagType.MaterialBag);
            var sql =
                $"SELECT * FROM t_iteminfo WHERE charguid={_charguid}" +
                $" AND isvalid=1 AND pos>={startPos}" +
                $" AND pos<{endPos} ORDER BY pos ASC";
            var mySqlCommand = new MySqlCommand(sql, mySqlConnection);
            await Task.Run(async() =>
            {
                var gameDbName = _mainWindowViewModel.SelectedServer.GameDbName;
                if (mySqlConnection.Database != gameDbName)
                {
                    // 切换数据库
                    await mySqlConnection.ChangeDataBaseAsync(gameDbName);
                }

                var itemBases = _mainWindowViewModel.ItemBases;

                using (var rd = await mySqlCommand.ExecuteReaderAsync() as MySqlDataReader)
                {
                    while (await rd.ReadAsync())
                    {
                        var itemInfo = new ItemInfo(itemBases)
                        {
                            Charguid = rd.GetInt32("charguid"),
                            Guid     = rd.GetInt32("guid"),
                            World    = rd.GetInt32("world"),
                            Server   = rd.GetInt32("server"),
                            ItemType = rd.GetInt32("itemtype"),
                            Pos      = rd.GetInt32("pos"),
                            Creator  = DbStringService.ToCommonString(rd.GetString("creator"))
                        };
                        var pArray = new int[17];
                        for (var i = 0; i < pArray.Length; i++)
                        {
                            pArray[i] = rd.GetInt32($"p{i + 1}");
                        }

                        itemInfo.PArray = pArray;
                        itemList.Add(itemInfo);
                    }
                }
            });

            return(itemList);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// save
        /// </summary>
        /// <returns></returns>
        private async Task DoSavePet()
        {
            var sql = "UPDATE t_pet SET";
            var intDictionary = new Dictionary<string, int>()
            {
                ["level"] = Level,
                ["needlevel"] = NeedLevel,
                ["aitype"] = AiType,
                ["life"] = Life,
                ["pettype"] = PetType,
                ["genera"] = Genera,
                ["enjoy"] = Enjoy,
                //
                ["strper"] = Strper,
                ["conper"] = Conper,
                ["dexper"] = Dexper,
                ["sprper"] = Sprper,
                ["iprper"] = Iprper,
                //
                ["savvy"] = Savvy,
                ["gengu"] = Gengu,
                ["growrate"] = Growrate,
                ["repoint"] = Repoint,
                ["exp"] = Exp,
                //
                ["str"] = Str,
                ["con"] = Con,
                ["dex"] = Dex,
                ["spr"] = Spr,
                ["ipr"] = Ipr,
                //
                ["charguid"] = Charguid,
                ["lpetguid"] = PetGuid
            };
            var fieldNames = intDictionary.Keys.ToList();
            fieldNames.Add("petname");
            var updateCondition = (from fieldName in fieldNames
                select $"{fieldName}=@{fieldName}");
            sql += " " + string.Join(", ", updateCondition) + " WHERE charguid=@charguid AND lpetguid=@lpetguid";
            //构造参数
            var mySqlParameters = (from intParameter in intDictionary
                select new MySqlParameter("@" + intParameter.Key, MySqlDbType.Int32)
                {
                    Value = intParameter.Value
                }).ToList();
            mySqlParameters.Add(new MySqlParameter("@petname", MySqlDbType.String)
            {
                Value = DbStringService.ToDbString(PetName)
            });
            //
            var mySqlConnection = _mainWindowViewModel.MySqlConnection;
            var mySqlCommand = new MySqlCommand(sql, mySqlConnection);
            mySqlParameters.ForEach(mySqlParameter => mySqlCommand.Parameters.Add(mySqlParameter));
            await Task.Run(async () =>
            {
                var gameDbName = _mainWindowViewModel.SelectedServer.GameDbName;
                if (mySqlConnection.Database != gameDbName)
                {
                    // 切换数据库
                    await mySqlConnection.ChangeDataBaseAsync(gameDbName);
                }

                await mySqlCommand.ExecuteNonQueryAsync();
            });
        }
Ejemplo n.º 4
0
        private async Task DoSaveRole()
        {
            var sql = "UPDATE t_char SET";
            //int类型的字段
            var intDictionary = new Dictionary <string, int>()
            {
                ["charguid"]    = Charguid,
                ["menpai"]      = Menpai,
                ["level"]       = Level,
                ["scene"]       = Scene,
                ["xpos"]        = Xpos,
                ["zpos"]        = Zpos,
                ["hp"]          = Hp,
                ["mp"]          = Mp,
                ["str"]         = Str,
                ["spr"]         = Spr,
                ["con"]         = Con,
                ["ipr"]         = Ipr,
                ["dex"]         = Dex,
                ["points"]      = Points,
                ["enegry"]      = Enegry,
                ["energymax"]   = Energymax,
                ["vigor"]       = Vigor,
                ["maxvigor"]    = Maxvigor,
                ["exp"]         = Exp,
                ["pkvalue"]     = Pkvalue,
                ["vmoney"]      = Vmoney,
                ["bankmoney"]   = Bankmoney,
                ["yuanbao"]     = Yuanbao,
                ["menpaipoint"] = Menpaipoint,
                ["zengdian"]    = Zengdian
            };
            var fieldNames = intDictionary.Keys.ToList();

            fieldNames.AddRange(new[] { "accname", "charname", "title" });
            // fieldA=@fieldA
            var updateCondition = (from fieldName in fieldNames
                                   select $"{fieldName}=@{fieldName}");

            sql += " " + string.Join(", ", updateCondition) + " WHERE charguid=@charguid";
            //构造参数
            var mySqlParameters = (from intParameter in intDictionary
                                   select new MySqlParameter("@" + intParameter.Key, MySqlDbType.Int32)
            {
                Value = intParameter.Value
            }).ToList();

            mySqlParameters.Add(new MySqlParameter("@accname", MySqlDbType.String)
            {
                Value = DbStringService.ToDbString(Accname)
            });
            mySqlParameters.Add(new MySqlParameter("@charname", MySqlDbType.String)
            {
                Value = DbStringService.ToDbString(Charname)
            });
            mySqlParameters.Add(new MySqlParameter("@title", MySqlDbType.String)
            {
                Value = DbStringService.ToDbString(Title)
            });
            var mySqlConnection = _mainWindowViewModel.MySqlConnection;
            var mySqlCommand    = new MySqlCommand(sql, mySqlConnection);

            mySqlParameters.ForEach(mySqlParameter => mySqlCommand.Parameters.Add(mySqlParameter));
            await Task.Run(async() =>
            {
                var gameDbName = _mainWindowViewModel.SelectedServer.GameDbName;
                if (mySqlConnection.Database != gameDbName)
                {
                    // 切换数据库
                    await mySqlConnection.ChangeDataBaseAsync(gameDbName);
                }

                await mySqlCommand.ExecuteNonQueryAsync();
            });
        }