mirror of
https://github.com/shavitush/bhoptimer.git
synced 2025-12-07 10:28:26 +00:00
finish up this crusty code that'll use mapchooser maps in !profile
This commit is contained in:
parent
79cd7f1225
commit
f8f336d21a
@ -748,15 +748,14 @@ public Action Command_Profile(int client, int args)
|
||||
|
||||
Action OpenStatsMenu(int client, int steamid, int style = 0, int item = 0)
|
||||
{
|
||||
gI_Style[client] = style;
|
||||
gI_MenuPos[client] = item;
|
||||
|
||||
// no spam please
|
||||
if(!gB_CanOpenMenu[client])
|
||||
{
|
||||
return Plugin_Handled;
|
||||
}
|
||||
|
||||
gI_Style[client] = style;
|
||||
gI_MenuPos[client] = item;
|
||||
gB_CanOpenMenu[client] = false;
|
||||
|
||||
DataPack data = new DataPack();
|
||||
@ -767,18 +766,69 @@ Action OpenStatsMenu(int client, int steamid, int style = 0, int item = 0)
|
||||
{
|
||||
char sQuery[2048];
|
||||
FormatEx(sQuery, sizeof(sQuery),
|
||||
"SELECT ",
|
||||
// Note the `GROUP BY track>0` for now
|
||||
"SELECT 0 as blah, map, track FROM %splayertimes WHERE auth = %d AND style = %d GROUP BY map, track>0 " ...
|
||||
"UNION SELECT 1 as blah, map, track FROM %smapzones WHERE type = 0 GROUP BY map, track>0;",
|
||||
gS_MySQLPrefix, steamid, style, gS_MySQLPrefix
|
||||
);
|
||||
|
||||
gH_SQL.Query(OpenStatsMenu_Mapchooser_Callback, sQuery, data, DBPrio_Low);
|
||||
|
||||
return Plugin_Handled;
|
||||
return Plugin_Handled;
|
||||
}
|
||||
|
||||
return OpenStatsMenu_Main(client, steamid, style, item, data);
|
||||
return OpenStatsMenu_Main(steamid, style, data);
|
||||
}
|
||||
|
||||
Action OpenStatsMenu_Main(int client, int steamid, int style, int item, DataPack data)
|
||||
public void OpenStatsMenu_Mapchooser_Callback(Database db, DBResultSet results, const char[] error, DataPack data)
|
||||
{
|
||||
if (results == null)
|
||||
{
|
||||
LogError("Timer (statsmenu-mapchooser) SQL query failed. Reason: %s", error);
|
||||
return;
|
||||
}
|
||||
|
||||
data.Reset();
|
||||
int client = GetClientFromSerial(data.ReadCell());
|
||||
|
||||
if (client == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
StringMap mapchooser_maps = Shavit_GetMapsStringMap();
|
||||
|
||||
int maps_and_completions[2][2];
|
||||
|
||||
while (results.FetchRow())
|
||||
{
|
||||
int blah = results.FetchInt(0);
|
||||
|
||||
char map[PLATFORM_MAX_PATH];
|
||||
results.FetchString(1, map, sizeof(map));
|
||||
|
||||
bool x;
|
||||
if (!mapchooser_maps.GetValue(map, x))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
int track = results.FetchInt(2);
|
||||
maps_and_completions[blah][track>0?1:0] += 1;
|
||||
}
|
||||
|
||||
delete mapchooser_maps;
|
||||
|
||||
data.ReadCell(); // item
|
||||
data.WriteCell(maps_and_completions[0][0], true);
|
||||
data.WriteCell(maps_and_completions[0][1], true);
|
||||
data.WriteCell(maps_and_completions[1][0], true);
|
||||
data.WriteCell(maps_and_completions[1][1], true);
|
||||
|
||||
OpenStatsMenu_Main(gI_TargetSteamID[client], gI_Style[client], data);
|
||||
}
|
||||
|
||||
Action OpenStatsMenu_Main(int steamid, int style, DataPack data)
|
||||
{
|
||||
// big ass query, looking for optimizations TODO
|
||||
char sQuery[2048];
|
||||
@ -865,6 +915,14 @@ public void OpenStatsMenuCallback(Database db, DBResultSet results, const char[]
|
||||
int iBonusTotalMaps = results.FetchInt(7);
|
||||
int iBonusWRs = results.FetchInt(8);
|
||||
|
||||
if (gB_Mapchooser && gCV_UseMapchooser.BoolValue)
|
||||
{
|
||||
iClears = data.ReadCell();
|
||||
iBonusClears = data.ReadCell();
|
||||
iTotalMaps = data.ReadCell();
|
||||
iBonusTotalMaps = data.ReadCell();
|
||||
}
|
||||
|
||||
char sPoints[16];
|
||||
char sRank[16];
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user