Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void Sort(uint updateUID)
- {
- SortedDictionary<ulong, SortEntry<uint, NobilityInformation>> sortdict = new SortedDictionary<ulong, SortEntry<uint, NobilityInformation>>();
- SortedDictionary<int, SortEntry<uint, NobilityInformation>> sortdicts = new SortedDictionary<int, SortEntry<uint, NobilityInformation>>();
- foreach (NobilityInformation info in Board.Values)
- {
- if (sortdict.ContainsKey(info.Donation))
- {
- SortEntry<uint, NobilityInformation> entry = sortdict[info.Donation];
- entry.Values.Add(info.EntityUID, info);
- }
- else
- {
- SortEntry<uint, NobilityInformation> entry = new SortEntry<uint, NobilityInformation>();
- entry.Values = new Dictionary<uint, NobilityInformation>();
- entry.Values.Add(info.EntityUID, info);
- sortdict.Add(info.Donation, entry);
- }
- }
- SafeDictionary<uint, NobilityInformation> sortedBoard = new SafeDictionary<uint, NobilityInformation>(10000);
- int Place = 0;
- foreach (KeyValuePair<ulong, SortEntry<uint, NobilityInformation>> entries in sortdict.Reverse())
- {
- foreach (KeyValuePair<uint, NobilityInformation> value in entries.Value.Values)
- {
- Client.GameState client = null;
- try
- {
- int previousPlace = value.Value.Position;
- value.Value.Position = Place;
- NobilityInformation nobilityinfo = new NobilityInformation();
- NobilityRank Rank = NobilityRank.Serf;
- if (Place >= 50)
- {
- if (value.Value.Donation >= 1)
- {
- Rank = NobilityRank.King;
- }
- }
- else
- {
- if (Place < 6) //serverrank
- {
- Rank = NobilityRank.King;
- }
- else if (Place < 30)
- {
- Rank = NobilityRank.King;
- }
- else
- {
- Rank = NobilityRank.King;
- }
- }
- var oldRank = value.Value.Rank;
- value.Value.Rank = Rank;
- if (Kernel.GamePool.TryGetValue(value.Key, out client))
- {
- bool updateTheClient = false;
- if (oldRank != Rank)
- {
- updateTheClient = true;
- Message message2 = null;
- message2 = new Message("The Player " + client.Entity.Name + " Has Been Promoted to the rank " + Rank + " of The Nobility. Congratulations!", System.Drawing.Color.White, Message.Center);
- foreach (Client.GameState Client in Kernel.GamePool.Values)
- {
- Client.Send(message2);
- }
- }
- else
- {
- if (previousPlace == Place)
- {
- updateTheClient = true;
- }
- }
- if (updateTheClient || client.Entity.UID == updateUID)
- {
- NobilityInfo update = new NobilityInfo(true);
- update.Type = NobilityInfo.Icon;
- update.dwParam = value.Key;
- update.UpdateString(value.Value);
- client.SendScreen(update, true);
- client.Entity.NobilityRank = value.Value.Rank;
- }
- }
- sortedBoard.Add(value.Key, value.Value);
- Place++;
- }
- catch { }
- }
- }
- Board = sortedBoard;
- lock (BoardList)
- {
- BoardList = Board.Values.ToList();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment