This repository was archived by the owner on Jan 27, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathShowRanks_Form.cs
More file actions
148 lines (131 loc) · 5.35 KB
/
Copy pathShowRanks_Form.cs
File metadata and controls
148 lines (131 loc) · 5.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
using System;
using System.Linq;
using System.Drawing;
using System.Diagnostics;
using MetroFramework.Forms;
using System.Collections.Generic;
using static Rio_External_Csgo_Cheat.CSGO.Main;
namespace Rio_External_Csgo_Cheat
{
public partial class ShowRanks_Form : MetroForm
{
public ShowRanks_Form()
{
InitializeComponent();
}
private void ShowRanks_Form_Load(object sender, EventArgs e)
{
refresh_metroButton.PerformClick();
}
private void refresh_metroButton_Click(object sender, EventArgs e)
{
metroGrid.Rows.Clear();
if (InGame)
{
Stopwatch timer = Stopwatch.StartNew();
List<object[]> PlayerRowsData = new List<object[]>();
foreach (var player in PlayersList.Values)
{
var playerInfo = player.GetInfo();
if (playerInfo != null)
{
//Заполняем во временный буфер
object[] rowData = new object[]
{
player.TeamNum, //InvisibleTeamNum for sorting
GetTeamBitmap(player.TeamNum, playerInfo.IsHltv),
playerInfo.Name,
GetRankBitmap(player.GetRank()),
player.GetWins(),
playerInfo.SteamId == "BOT" ? "BOT" : playerInfo.GetSteamID64().ToString(),
player.Index,
playerInfo.UserId
};
PlayerRowsData.Add(rowData);
}
else
{
//PLAYERINFO HAS NULL!!!
object[] rowData = new object[]
{
player.TeamNum, //InvisibleTeamNum for sorting
GetTeamBitmap(player.TeamNum, false),
"<PLAYERINFO IS NULL>",
GetRankBitmap(player.GetRank()),
player.GetWins(),
0,
player.Index,
-1,
};
PlayerRowsData.Add(rowData);
}
}
timer.Stop();
//Сортируем и выплевываем все из буфера на форму
foreach (var rowData in PlayerRowsData.OrderBy(o => o[0]).ToList())
metroGrid.Rows.Add(rowData);
//Обновляем текст
status_metroLabel.Text = $"Статус: {PlayersList.Values.Count} ентити за {Math.Round(timer.Elapsed.TotalMilliseconds, 3)} мс";
}
else //Если мы не в игре, пишем об этом
status_metroLabel.Text = "Статус: Не в игре!";
}
public static Bitmap GetTeamBitmap(uint teamNum, bool isHltv)
{
if (teamNum == 2)
return Properties.Resources.team_t;
else if (teamNum == 3)
return Properties.Resources.team_ct;
else if (teamNum == 0 && isHltv)
return Properties.Resources.team_hltv;
else
return Properties.Resources.team_invalid;
}
public static Bitmap GetRankBitmap(uint rank)
{
switch (rank)
{
case 0:
return Properties.Resources.rank_unranked;
case 1:
return Properties.Resources.rank_silver1;
case 2:
return Properties.Resources.rank_silver2;
case 3:
return Properties.Resources.rank_silver3;
case 4:
return Properties.Resources.rank_silver4;
case 5:
return Properties.Resources.rank_silver5;
case 6:
return Properties.Resources.rank_silver6;
case 7:
return Properties.Resources.rank_goldnova1;
case 8:
return Properties.Resources.rank_goldnova2;
case 9:
return Properties.Resources.rank_goldnova3;
case 10:
return Properties.Resources.rank_goldnova4;
case 11:
return Properties.Resources.rank_ak1;
case 12:
return Properties.Resources.rank_ak2;
case 13:
return Properties.Resources.rank_twoak;
case 14:
return Properties.Resources.rank_bigstar;
case 15:
return Properties.Resources.rank_eagle1;
case 16:
return Properties.Resources.rank_eagle2;
case 17:
return Properties.Resources.rank_supreme;
case 18:
return Properties.Resources.rank_global;
default:
return null;
}
}
}
}