void SaveDataPlayerEnd()
{
if(stats_db == null)
{
LogError("Levels Ranks: SaveDataPlayerEnd - database invalid");
SetFailState("Levels Ranks: SaveDataPlayerEnd - database invalid");
}
else
{
SQL_LockDatabase(stats_db);
for(int iClient = 1; iClient <= MaxClients; iClient++)
{
if(IsValidClient(iClient) && !IsFakeClient(iClient) && g_bInitialized[iClient])
{
char query[PLATFORM_MAX_PATH];
UpdateLevelRanks(iClient, query);
SQL_FastQuery(stats_db, query);
}
}
SQL_UnlockDatabase(stats_db);
}
}
void SaveDataPlayer(int iClient)
{
if(stats_db == null)
{
LogError("Levels Ranks: SaveDataPlayer - database invalid");
SetFailState("Levels Ranks: SaveDataPlayer - database invalid");
}
else
{
if(IsValidClient(iClient) && !IsFakeClient(iClient) && g_bInitialized[iClient])
{
char query[PLATFORM_MAX_PATH];
UpdateLevelRanks(iClient, query);
stats_db.Query(SQL_SaveDataPlayer, query, iClient, DBPrio_High);
}
}
}
void UpdateLevelRanks(int iClient, char[] query)
{
char name[MAX_NAME_LENGTH*2+1];
stats_db.Escape(g_sName[iClient], name, sizeof(name));
Format(query, PLATFORM_MAX_PATH, "UPDATE levelsranks SET experience = %d, name = '%s', level = %d, lastconnect = %d WHERE steam = '%s'", g_iExp[iClient], name, g_iRank[iClient], GetTime(), g_sSteamID[iClient]);
stats_db.SetCharset("utf8");
}