public MainPack GetCard(MainPack pack) { try { string uid = pack.Loginpack.Uid; Console.WriteLine("玩家id" + uid); int count = 0, needDiamonds = 0; if (pack.Loginpack.Cardnum == "1") { count = 1; needDiamonds = 100; } else { count = 10; needDiamonds = 900; } int newDiamonds = IsEnoughDiamonds(needDiamonds, uid); if (newDiamonds == -1) { pack.Returncode = ReturnCode.Fail; return(pack); } Console.WriteLine("抽卡数额" + count); pack.Characterdata.Clear(); for (int i = 0; i < count; i++) { int num = RandomCard(); Console.WriteLine("随机抽卡id" + num); InsertCard(uid, num.ToString()); string sqlReadC = string.Format("select * from role where CID = {0}", num); MySqlCommand comd = new MySqlCommand(sqlReadC, mysqlCon); MySqlDataReader read = comd.ExecuteReader(); read.Read(); SocketGameProtocol1.CharacterData data = new SocketGameProtocol1.CharacterData(); data.Name = read["name"].ToString(); data.Type = Convert.ToInt32(read["type"]); pack.Characterdata.Add(data); read.Close(); } pack.Loginpack.Diamonds = newDiamonds.ToString(); pack.Returncode = ReturnCode.Succeed; return(pack); } catch { Console.WriteLine("抽卡数据失败"); pack.Returncode = ReturnCode.Fail; return(pack); } }
//private void ConnectMysql()//连接数据库 //{ // try // { // string mySqlString = string.Format("database={0};data source={1};user id={2};password={3};port={4};CharSet=utf8;", // database, host, userName, password, port); // mysqlCon = new MySqlConnection(mySqlString); // mysqlCon.Open(); // Console.WriteLine("数据库连接成功!"); // } // catch (Exception e) // { // Console.WriteLine("连接数据库失败!"); // } //} public MainPack GetCharacterData(MainPack pack) { try { string userName = pack.Loginpack.Username; List <string> CIDs = new List <string>(); List <int> exps = new List <int>(); Console.WriteLine(userName); string sqlCheck = string.Format("select * from ucpackage where UID={0}", userName); MySqlCommand comd = new MySqlCommand(sqlCheck, mysqlCon); MySqlDataReader read = comd.ExecuteReader(); while (read.Read()) { CIDs.Add(read[1].ToString()); Console.WriteLine(read[1].ToString()); exps.Add(Convert.ToInt32(read[2])); pack.Returncode = ReturnCode.Succeed; } read.Close(); //读取角色数据 //List<Character> characters = new List<Character>(); pack.Characterdata.Clear(); for (int i = 0; i < CIDs.Count; i++) { string sqlReadC = string.Format("select * from role where CID = {0}", CIDs[i]); Console.WriteLine(sqlReadC); comd = new MySqlCommand(sqlReadC, mysqlCon); Console.WriteLine("reading"); read = comd.ExecuteReader(); Console.WriteLine("reading"); read.Read(); SocketGameProtocol1.CharacterData data = new SocketGameProtocol1.CharacterData(); data.CID = Convert.ToInt32(read["CID"]); data.Level = Convert.ToInt32(read["level"]); data.Exp = Convert.ToInt32(read["exp"]); data.Cost = Convert.ToInt32(read["cost"]); data.Life = Convert.ToInt32(read["life"]); data.Name = read["name"].ToString(); data.Type = Convert.ToInt32(read["type"]); data.AttackPow = Convert.ToInt32(read["attack_pow"]); data.Defend = Convert.ToInt32(read["defend"]); data.AttackArea = Convert.ToSingle(read["attack_area"]); data.AttackInterval = Convert.ToSingle(read["attack_interval"]); data.RoleExp = exps[i]; //Character character = new Character(data); pack.Characterdata.Add(data); read.Close(); } pack.Returncode = ReturnCode.Succeed; return(pack); } catch { Console.WriteLine("读取角色数据失败"); pack.Returncode = ReturnCode.Fail; return(pack); } }
public Character(SocketGameProtocol1.CharacterData data) { character = data; }