Ketos52015

Untitled

Aug 1st, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.92 KB | None | 0 0
  1. public static void ShowMsgRank(MsgRank ranking, GameState client)
  2. {
  3. List<PrestigeRank> li = new List<PrestigeRank>();
  4. string command = Kernel.Player.Values.OrderByDescending(p => p.PrestigePoints).ToString();
  5. //string command = "select top 100 * from entities where PrestigePoints > 0 order by PrestigePoints desc";
  6. uint rank1 = 0;
  7. string query = "select * from entities PrestigePoints ";
  8. using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("entities"))
  9. {
  10. cmd.Command = query;
  11. using (var reader = new MySqlReader(cmd))
  12. {
  13. while (reader.Read())
  14. {
  15. rank1++;
  16. PrestigeRank pr = new PrestigeRank()
  17. {
  18. uid = reader.ReadUInt32("Uid"),
  19. name = reader.ReadString("Name"),
  20. Class = reader.ReadByte("Class"),
  21. Level = reader.ReadByte("Level"),
  22. Score = reader.ReadUInt32("PrestigePoints"),
  23. Avater = reader.ReadUInt32("Face"),
  24. Mesh = reader.ReadUInt32("Body")
  25. };
  26. li.Add(pr);
  27. if (pr.uid == client.Player.UID)
  28. {
  29. var nRanking2 = new MsgRank(true);
  30. nRanking2.Mode = MsgRank.QueryCount;
  31. nRanking2.RankingType = ranking.RankingType;
  32. nRanking2.Append(rank1, pr.Score, pr.uid, pr.name, pr.Level, pr.Class, uint.Parse(pr.Avater.ToString() + pr.Mesh));
  33. client.Send(nRanking2);
  34. nRanking2.Reset();
  35. }
  36. }
  37. }
  38. }
  39. PrestigeRank[] list = li.ToArray();
  40. ushort page = ranking.Page;
  41. Func<PrestigeRank, uint> select = null;
  42. select = (chiData) => { return chiData.Score; };
  43.  
  44. if (list.Length < page * 10) return;
  45. uint count = (uint)Math.Min(list.Length - page * 10, 10);
  46. var nRanking = new MsgRank(true, count);
  47. nRanking.Mode = MsgRank.Ranking;
  48. nRanking.RankingType = ranking.RankingType;
  49. nRanking.Page = page;
  50. nRanking.RegisteredCount = (ushort)list.Length;
  51. int rank = (int)page * 10;
  52. for (int i = rank; i < rank + count; i++)
  53. {
  54. var current = list[i];
  55. nRanking.Append((uint)(i + 1), (uint)select(current), current.uid, current.name, current.Level, current.Class, uint.Parse(current.Avater.ToString() + current.Mesh));
  56. }
  57. client.Send(nRanking);
  58. }
Advertisement
Add Comment
Please, Sign In to add comment