protected override void HandleRequest() { using (Database db = new Database()) { Account a = db.Verify(Query["guid"], Query["password"], Program.GameData); if (!CheckAccount(a, db)) return; db.LockAccount(a); Chars chrs = new Chars { Characters = new List<Char>(), NextCharId = 2, MaxNumChars = 1, Account = a, Servers = GetServerList() }; if (chrs.Account != null) { db.GetCharData(chrs.Account, chrs); db.LoadCharacters(chrs.Account, chrs); chrs.News = db.GetNews(Program.GameData, chrs.Account); chrs.OwnedSkins = Utils.GetCommaSepString(chrs.Account.OwnedSkins.ToArray()); db.UnlockAccount(chrs.Account); } else { chrs.Account = Database.CreateGuestAccount(Query["guid"] ?? ""); chrs.News = db.GetNews(Program.GameData, null); } MapPoint p = null; //GetLatLong(Context.Request.RemoteEndPoint.Address); if (p != null) { chrs.Lat = p.Latitude.ToString().Replace(',', '.'); chrs.Long = p.Longitude.ToString().Replace(',', '.'); } chrs.ClassAvailabilityList = GetClassAvailability(chrs.Account); chrs.TOSPopup = chrs.Account.NotAcceptedNewTos; chrs.ClassAvailabilityList = GetClassAvailability(chrs.Account); XmlSerializer serializer = new XmlSerializer(chrs.GetType(), new XmlRootAttribute(chrs.GetType().Name) { Namespace = "" }); XmlWriterSettings xws = new XmlWriterSettings(); xws.OmitXmlDeclaration = true; xws.Encoding = Encoding.UTF8; xws.Indent = true; xws.IndentChars = " "; XmlWriter xtw = XmlWriter.Create(Context.Response.OutputStream, xws); serializer.Serialize(xtw, chrs, chrs.Namespaces); } }