// timespan, accountId, charId // <Error>Invalid fame list</Error> protected override void HandleRequest() { Program.Logger.Info($"Request \"{Context.Request.Url.LocalPath}\" from: {(Context.Request.RemoteEndPoint.Address.ToString() == "::1" ? "localhost" : Context.Request.RemoteEndPoint.Address.ToString())}"); DbChar character = null; if (Query["accountId"] != null) { character = Database.LoadCharacter(int.Parse(Query["accountId"]), int.Parse(Query["charId"])); } var list = FameList.FromDb(Database, Query["timespan"], character); WriteLine(list.ToXml()); }
public static void Initialize() { ServerConsole.Info("\t# loading fame lists..."); // TODO: some sort of dynamic class lists would be nice to have.. string jobsBlacksmith = string.Concat((int)EClass.Blacksmith, ',', (int)EClass.BabyBlacksmith, ',', (int)EClass.Whitesmith); string jobsAlchemist = string.Concat((int)EClass.Alchemist, ',', (int)EClass.BabyAlchemist, ',', (int)EClass.Creator); string jobsTaekwon = string.Concat((int)EClass.Taekwon); int size = 10; // Load from database Blacksmith = ReadFameList(jobsBlacksmith, size); Alchemist = ReadFameList(jobsAlchemist, size); Taekwon = ReadFameList(jobsTaekwon, size); ServerConsole.WriteLine(EConsoleColor.Status, " Done (" + Blacksmith.Count + " blacksmith, " + Alchemist.Count + " Alchemist, " + Taekwon.Count + " Taekwon)"); }
public override void HandleRequest(RequestContext context, NameValueCollection query) { DbChar character = null; if (query["accountId"] != null) { character = Database.LoadCharacter( int.Parse(query["accountId"]), int.Parse(query["charId"]) ); } var list = FameList.FromDb(Database, query["timespan"], character); Write(context, list.ToXml().ToString()); }
private static FameList ReadFameList(string jobs, int size) { FameList list = new FameList(size); string query = "SELECT `charID`,`fame` FROM `char` WHERE `fame` > 0 AND `class` IN ({0}) ORDER BY `fame` DESC LIMIT 0,{1}"; DataTable table = Core.Database.Query(query, jobs, size); if (table.HasResults() == false) { return list; } foreach (DataRow row in table.Rows) { uint id = row.Field<uint>("char_id"); int fame = row.Field<int>("fame"); // Push it to the list list.Add(new FameListEntry(id, fame)); } return list; }
public override void HandleRequest(HttpListenerContext context) { NameValueCollection query; using (StreamReader rdr = new StreamReader(context.Request.InputStream)) query = HttpUtility.ParseQueryString(rdr.ReadToEnd()); DbChar character = null; if (query["accountId"] != null) { character = Database.LoadCharacter( int.Parse(query["accountId"]), int.Parse(query["charId"]) ); } FameList list = FameList.FromDb(Database, query["timespan"], character); Write(context, list.ToXml().ToString()); }