should be fixed for good now

This commit is contained in:
Christian 2021-03-02 12:50:08 +01:00
parent 735acbd3e5
commit 475d1a09fa

View File

@ -18,7 +18,7 @@ char g_cSpecialMapStart[g_dLength];
char g_cSpecialMapEnd[g_dLength]; char g_cSpecialMapEnd[g_dLength];
static char g_sConfigzones[PLATFORM_MAX_PATH]; static char g_sConfigzones[PLATFORM_MAX_PATH];
float g_fStartTime[MAXPLAYERS + 1]; float g_fStartTime[MAXPLAYERS + 1];
char g_csTime_record[MAXPLAYERS + 1]; char g_csTime_record[MAXPLAYERS + 1][64];
float g_fClientVectors[MAXPLAYERS + 1][3]; float g_fClientVectors[MAXPLAYERS + 1][3];
int g_iClientFrames[MAXPLAYERS + 1]; int g_iClientFrames[MAXPLAYERS + 1];
int g_iClientSpeedInterval[MAXPLAYERS + 1]; int g_iClientSpeedInterval[MAXPLAYERS + 1];
@ -48,7 +48,6 @@ public Plugin myinfo =
public void OnPluginStart() public void OnPluginStart()
{ {
//cmds //cmds
AutoExecConfig();
RegConsoleCmd("sm_toptime", cmd_timerCheckTop, "checking top 10"); RegConsoleCmd("sm_toptime", cmd_timerCheckTop, "checking top 10");
RegConsoleCmd("sm_mytime", cmd_timerCheckSelf, "checking your personal time"); RegConsoleCmd("sm_mytime", cmd_timerCheckSelf, "checking your personal time");
RegConsoleCmd("sm_stages", cmd_timerCheckStage, "Checking race stages"); RegConsoleCmd("sm_stages", cmd_timerCheckStage, "Checking race stages");
@ -63,19 +62,11 @@ public void OnPluginStart()
for (int i = MaxClients; i > 0; --i) for (int i = MaxClients; i > 0; --i)
{ {
if (!AreClientCookiesCached(i)) if (!AreClientCookiesCached(i))
{
continue; continue;
}
OnClientCookiesCached(i); OnClientCookiesCached(i);
} }
} }
public void OnConfigsExecuted()
{
Database.Connect(SQL_OnDatabaseConnect, "racetimercss");
}
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
// Purpose: // Purpose:
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
@ -100,28 +91,20 @@ public void SQL_OnConnectFinished(Database db, DBResultSet results, const char[]
LogError("Database error: %s", error); LogError("Database error: %s", error);
return; return;
} }
OnMapStart(); static Handle hHostName;
for(int i = 1; i <= MaxClients; i++) if((hHostName = FindConVar("hostname")) == INVALID_HANDLE)
OnClientPostAdminCheck(i); return;
} char line[g_dLength];
GetConVarString(hHostName, line, sizeof(line));
if (StrContains(line, "EVENT", false) > -1)
g_bEventBool = true;
g_bDisplaySpecial = unloze_gBSpecialMapDisplay();
GetCurrentMap(g_cMapname, sizeof(g_cMapname));
startTimer();
public void SQL_OnQueryCompleted(Database db, DBResultSet results, const char[] error, DataPack data) for(int i = 1; i <= MaxClients; i++)
{ if (IsValidClient(i))
ResetPack(data); OnClientPostAdminCheck(i);
int client_serial = data.ReadCell();
if (!db || strlen(error))
{
char sQuery[g_dLength];
data.ReadString(sQuery, sizeof(sQuery));
LogError("Query error 1: %s", error);
LogError("actual query: %s", sQuery);
return;
}
int client;
if ((client = GetClientFromSerial(client_serial)) == 0)
return;
if (results.RowCount && results.FetchRow())
results.FetchString(0, g_csTime_record[client], sizeof(g_csTime_record));
} }
public void MYSQLCheckMapEntry() public void MYSQLCheckMapEntry()
@ -167,16 +150,7 @@ public void SQL_FinishedQuery(Database db, DBResultSet results, const char[] err
public void OnMapStart() public void OnMapStart()
{ {
static Handle hHostName; Database.Connect(SQL_OnDatabaseConnect, "racetimercss");
if((hHostName = FindConVar("hostname")) == INVALID_HANDLE)
return;
char line[g_dLength];
GetConVarString(hHostName, line, sizeof(line));
if (StrContains(line, "EVENT", false) > -1)
g_bEventBool = true;
g_bDisplaySpecial = unloze_gBSpecialMapDisplay();
GetCurrentMap(g_cMapname, sizeof(g_cMapname));
startTimer();
} }
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
@ -527,8 +501,6 @@ public void FinishedStageRaceZone(int client)
} }
int l_iZoneCount = unloze_zoneCount(); int l_iZoneCount = unloze_zoneCount();
char record_client[32];
Format(record_client, sizeof(record_client), g_csTime_record[client]);
float client_time = client_current_race_time(client); float client_time = client_current_race_time(client);
char sTime[32]; char sTime[32];
FormatPlayerTime(client_time, sTime, sizeof(sTime), false, 1); FormatPlayerTime(client_time, sTime, sizeof(sTime), false, 1);
@ -542,7 +514,7 @@ public void FinishedStageRaceZone(int client)
else else
Format(sQuery, sizeof(sQuery), "UPDATE `zetimer_table` SET `%sS%i` = '%s', name = '%s' WHERE steam_auth = '%s' and LENGTH(`%sS%i`) >= LENGTH('%s') and STRCMP(`%sS%i`, '%s') > 0", g_cMapname, stage, sTime, sEscapedName, sSID, g_cMapname, stage, sTime, g_cMapname, stage, sTime); Format(sQuery, sizeof(sQuery), "UPDATE `zetimer_table` SET `%sS%i` = '%s', name = '%s' WHERE steam_auth = '%s' and LENGTH(`%sS%i`) >= LENGTH('%s') and STRCMP(`%sS%i`, '%s') > 0", g_cMapname, stage, sTime, sEscapedName, sSID, g_cMapname, stage, sTime, g_cMapname, stage, sTime);
if (StrEqual(record_client, "0.000")) if (StrEqual(g_csTime_record[client], "0.000"))
{ {
CPrintToChat(client, "Your record: None yet\nCommand: !toptime !mytime !stages"); CPrintToChat(client, "Your record: None yet\nCommand: !toptime !mytime !stages");
if (l_iZoneCount < 2) if (l_iZoneCount < 2)
@ -551,7 +523,7 @@ public void FinishedStageRaceZone(int client)
Format(sQuery, sizeof(sQuery), "UPDATE `zetimer_table` SET `%sS%i` = '%s', name = '%s' WHERE steam_auth = '%s'", g_cMapname, stage, sTime, sEscapedName, sSID); Format(sQuery, sizeof(sQuery), "UPDATE `zetimer_table` SET `%sS%i` = '%s', name = '%s' WHERE steam_auth = '%s'", g_cMapname, stage, sTime, sEscapedName, sSID);
} }
else else
CPrintToChat(client, "Your record: %s\nCommand: !toptime !mytime !stages", record_client); CPrintToChat(client, "Your record: %s\nCommand: !toptime !mytime !stages", g_csTime_record[client]);
DataPack hDataPack = new DataPack(); DataPack hDataPack = new DataPack();
hDataPack.WriteString(sQuery); hDataPack.WriteString(sQuery);
g_dDatabase.Query(SQL_FinishedQuery, sQuery, hDataPack, DBPrio_High); g_dDatabase.Query(SQL_FinishedQuery, sQuery, hDataPack, DBPrio_High);
@ -574,6 +546,25 @@ public void mysql_get_player_time(int client, int stage)
g_dDatabase.Query(SQL_OnQueryCompleted, query, hDataPack); g_dDatabase.Query(SQL_OnQueryCompleted, query, hDataPack);
} }
public void SQL_OnQueryCompleted(Database db, DBResultSet results, const char[] error, DataPack data)
{
ResetPack(data);
int client_serial = data.ReadCell();
if (!db || strlen(error))
{
char sQuery[g_dLength];
data.ReadString(sQuery, sizeof(sQuery));
LogError("Query error 1: %s", error);
LogError("actual query: %s", sQuery);
return;
}
int client;
if ((client = GetClientFromSerial(client_serial)) == 0)
return;
if (results.RowCount && results.FetchRow())
results.FetchString(0, g_csTime_record[client], sizeof(g_csTime_record[]));
}
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
// Purpose: TODO implement if needed // Purpose: TODO implement if needed
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
@ -911,7 +902,7 @@ public void SQL_CheckSelf(Database db, DBResultSet results, const char[] error,
return; return;
} }
Format(l_cMessageContent, sizeof(l_cMessageContent), "%s - %s", sTime, l_cPlayerName); Format(l_cMessageContent, sizeof(l_cMessageContent), "%s - %s", sTime, l_cPlayerName);
CPrintToChat(iclient, "Your best time: 0%s", l_cMessageContent); CPrintToChat(iclient, "Your best time: %s", l_cMessageContent);
} }
else else
CPrintToChat(iclient, "You have no time yet!"); CPrintToChat(iclient, "You have no time yet!");