public void Connect(CGConnect packet) { this.UserID = GameServer.AuthPlayers[packet.AuthKey]; GameServer.AuthPlayers.Remove(packet.AuthKey); this.PCName = packet.PCName; GConsole.WriteStatus("Received CGConnectPacket: {0}:{1}:{2}", this.UserID, this.PCName, packet.AuthKey); PCSlayerInfo2 pc = DBManager.GetPCSlayerInfo2(packet.PCName); GCUpdateInfo answer = new GCUpdateInfo(pc); answer.Write(ref netstream); }
public static PCSlayerInfo2 GetPCSlayerInfo2(string pcname) { PCSlayerInfo2 result = new PCSlayerInfo2(); //build query string string cmdstr = String.Format(@"SELECT * FROM Slayer WHERE Name = '{0}'", pcname); //execute query MySqlCommand cmd = new MySqlCommand(cmdstr, mysqlconn); MySqlDataReader datareader = cmd.ExecuteReader(); //read data if (datareader.HasRows) { datareader.Read(); // name result.Name = datareader.GetString((int)TSlayer.Name); // sex result.Sex = (Sex)Enum.Parse(typeof(Sex), datareader.GetString((int)TSlayer.Sex)); // alignment result.Alignment = datareader.GetInt32((int)TSlayer.Alignment); // str dex & int result.STRBasic = datareader.GetUInt16((int)TSlayer.STR); result.DEXBasic = datareader.GetUInt16((int)TSlayer.DEX); result.INTBasic = datareader.GetUInt16((int)TSlayer.INT); // rank result.Rank = datareader.GetByte((int)TSlayer.Rank); // strexp dexexp & int result.STRExp = datareader.GetUInt32((int)TSlayer.STRExp); result.INTExp = datareader.GetUInt32((int)TSlayer.INTExp); result.DEXExp = datareader.GetUInt32((int)TSlayer.DEXExp); // hp maxhp mp & maxmp result.HP = datareader.GetUInt16((int)TSlayer.HP); result.MaxHP = datareader.GetUInt16((int)TSlayer.MaxHP); result.MP = datareader.GetUInt16((int)TSlayer.MP); result.MaxMP = datareader.GetUInt16((int)TSlayer.MaxMP); // fame result.Fame = datareader.GetUInt32((int)TSlayer.Fame); // domainlevels (6) result.DomainLevelBlade = datareader.GetByte((int)TSlayer.BladeLevel); result.DomainLevelSword = datareader.GetByte((int)TSlayer.SwordLevel); result.DomainLevelGun = datareader.GetByte((int)TSlayer.GunLevel); result.DomainLevelHeal = datareader.GetByte((int)TSlayer.HealLevel); result.DomainLevelEnchant = datareader.GetByte((int)TSlayer.EnchantLevel); result.DomainLevelEtc = datareader.GetByte((int)TSlayer.ETCLevel); // advancement level result.AdvancementLevel = datareader.GetByte((int)TSlayer.AdvancementLevel); } else { result = null; }; datareader.Close(); //return result return(result); }