PlaytimeStats: update for all servers
This commit is contained in:
parent
260a6ec6ae
commit
51a2553370
@ -8,12 +8,15 @@ Database g_hDatabase;
|
||||
int g_iConnectionTime[MAXPLAYERS + 1];
|
||||
bool g_bPlayerValid[MAXPLAYERS + 1];
|
||||
|
||||
ConVar g_cvServerType;
|
||||
int g_iServerType;
|
||||
|
||||
public Plugin myinfo =
|
||||
{
|
||||
name = "PlaytimeStats",
|
||||
author = "Dogan",
|
||||
description = "Retreives total playtime on multiple servers for clients",
|
||||
version = "1.1.0",
|
||||
version = "2.0.0",
|
||||
url = ""
|
||||
}
|
||||
|
||||
@ -25,12 +28,27 @@ public void OnPluginStart()
|
||||
RegConsoleCmd("sm_topplaytime", Command_TopTime, "retreives top 12 playtime highscores on all connected servers");
|
||||
}
|
||||
|
||||
public void OnAllPluginsLoaded()
|
||||
{
|
||||
if((g_cvServerType = FindConVar("sm_server_type")) == INVALID_HANDLE)
|
||||
SetFailState("Failed to find sm_server_type cvar.");
|
||||
else
|
||||
g_iServerType = g_cvServerType.IntValue;
|
||||
}
|
||||
|
||||
public Action Command_Time(int client, int args)
|
||||
{
|
||||
int iAuthID = GetSteamAccountID(client);
|
||||
|
||||
char sQuery[512];
|
||||
Format(sQuery, sizeof(sQuery), "SELECT time FROM playtime WHERE auth = '%d'", iAuthID);
|
||||
|
||||
if(g_iServerType == 1)
|
||||
Format(sQuery, sizeof(sQuery), "SELECT time FROM playtimeze WHERE auth = '%d'", iAuthID);
|
||||
else if(g_iServerType == 2)
|
||||
Format(sQuery, sizeof(sQuery), "SELECT time FROM playtimemg WHERE auth = '%d'", iAuthID);
|
||||
else if(g_iServerType == 3)
|
||||
Format(sQuery, sizeof(sQuery), "SELECT time FROM playtimezr WHERE auth = '%d'", iAuthID);
|
||||
|
||||
g_hDatabase.Query(SQL_OnQueryCompletedTime, sQuery, GetClientSerial(client));
|
||||
|
||||
return Plugin_Handled;
|
||||
@ -39,7 +57,14 @@ public Action Command_Time(int client, int args)
|
||||
public Action Command_TopTime(int client, int args)
|
||||
{
|
||||
char sQuery[255];
|
||||
Format(sQuery, sizeof(sQuery), "SELECT * from playtime order by time desc limit 12");
|
||||
|
||||
if(g_iServerType == 1)
|
||||
Format(sQuery, sizeof(sQuery), "SELECT * from playtimeze order by time desc limit 12");
|
||||
else if(g_iServerType == 2)
|
||||
Format(sQuery, sizeof(sQuery), "SELECT * from playtimemg order by time desc limit 12");
|
||||
else if(g_iServerType == 3)
|
||||
Format(sQuery, sizeof(sQuery), "SELECT * from playtimezr order by time desc limit 12");
|
||||
|
||||
g_hDatabase.Query(SQL_OnQueryCompletedTopTime, sQuery, GetClientSerial(client));
|
||||
|
||||
return Plugin_Handled;
|
||||
@ -74,7 +99,13 @@ public void OnClientDisconnect(int client)
|
||||
g_hDatabase.Escape(sName, sSafeName, sizeof(sSafeName));
|
||||
|
||||
char sQuery[512];
|
||||
Format(sQuery, sizeof(sQuery), "INSERT INTO playtime (auth,name,time) VALUES ('%u', '%s', '%d') ON DUPLICATE KEY UPDATE time=time+%d", iAuthID, sSafeName, iPlayTime, iPlayTime);
|
||||
|
||||
if(g_iServerType == 1)
|
||||
Format(sQuery, sizeof(sQuery), "INSERT INTO playtimeze (auth,name,time) VALUES ('%u', '%s', '%d') ON DUPLICATE KEY UPDATE time=time+%d", iAuthID, sSafeName, iPlayTime, iPlayTime);
|
||||
else if(g_iServerType == 2)
|
||||
Format(sQuery, sizeof(sQuery), "INSERT INTO playtimemg (auth,name,time) VALUES ('%u', '%s', '%d') ON DUPLICATE KEY UPDATE time=time+%d", iAuthID, sSafeName, iPlayTime, iPlayTime);
|
||||
else if(g_iServerType == 3)
|
||||
Format(sQuery, sizeof(sQuery), "INSERT INTO playtimezr (auth,name,time) VALUES ('%u', '%s', '%d') ON DUPLICATE KEY UPDATE time=time+%d", iAuthID, sSafeName, iPlayTime, iPlayTime);
|
||||
|
||||
g_hDatabase.Query(SQL_OnQueryCompleted, sQuery, _, DBPrio_Low);
|
||||
}
|
||||
@ -90,7 +121,13 @@ public void SQL_OnDatabaseConnect(Database db, const char[] error, any data)
|
||||
g_hDatabase = db;
|
||||
|
||||
char sQuery[512];
|
||||
Format(sQuery, sizeof(sQuery), "CREATE TABLE IF NOT EXISTS playtime (`auth` INTEGER UNSIGNED, `name` varchar(128), `time` INTEGER, PRIMARY KEY (`auth`), INDEX (`time`))");
|
||||
|
||||
if(g_iServerType == 1)
|
||||
Format(sQuery, sizeof(sQuery), "CREATE TABLE IF NOT EXISTS playtimeze (`auth` INTEGER UNSIGNED, `name` varchar(128), `time` INTEGER, PRIMARY KEY (`auth`), INDEX (`time`))");
|
||||
else if(g_iServerType == 2)
|
||||
Format(sQuery, sizeof(sQuery), "CREATE TABLE IF NOT EXISTS playtimemg (`auth` INTEGER UNSIGNED, `name` varchar(128), `time` INTEGER, PRIMARY KEY (`auth`), INDEX (`time`))");
|
||||
else if(g_iServerType == 3)
|
||||
Format(sQuery, sizeof(sQuery), "CREATE TABLE IF NOT EXISTS playtimezr (`auth` INTEGER UNSIGNED, `name` varchar(128), `time` INTEGER, PRIMARY KEY (`auth`), INDEX (`time`))");
|
||||
|
||||
g_hDatabase.Query(SQL_OnQueryCompleted, sQuery, _, DBPrio_Low);
|
||||
}
|
||||
@ -141,7 +178,12 @@ public void SQL_OnQueryCompletedTime(Database db, DBResultSet results, const cha
|
||||
Format(sTime, sizeof(sTime), "%d Seconds", iSeconds);
|
||||
|
||||
char sTitle[64];
|
||||
Format(sTitle, sizeof(sTitle), "[UNLOZE Playtime] Player %N:", client);
|
||||
if(g_iServerType == 1)
|
||||
Format(sTitle, sizeof(sTitle), "[UNLOZE Playtime Zombie Escape] Player %N:", client);
|
||||
else if(g_iServerType == 2)
|
||||
Format(sTitle, sizeof(sTitle), "[UNLOZE Playtime Minigames] Player %N:", client);
|
||||
else if(g_iServerType == 3)
|
||||
Format(sTitle, sizeof(sTitle), "[UNLOZE Playtime Zombie Riot] Player %N:", client);
|
||||
|
||||
Panel mSayPanel = new Panel(GetMenuStyleHandle(MenuStyle_Radio));
|
||||
|
||||
@ -175,7 +217,14 @@ public void SQL_OnQueryCompletedTopTime(Database db, DBResultSet results, const
|
||||
char sBuffer[12][128];
|
||||
|
||||
Panel mSayPanel = new Panel(GetMenuStyleHandle(MenuStyle_Radio));
|
||||
mSayPanel.SetTitle("[UNLOZE Playtime] Record Holders:");
|
||||
|
||||
if(g_iServerType == 1)
|
||||
mSayPanel.SetTitle("[UNLOZE Playtime] Record Holders Zombie Escape:");
|
||||
else if(g_iServerType == 2)
|
||||
mSayPanel.SetTitle("[UNLOZE Playtime] Record Holders Minigames:");
|
||||
else if(g_iServerType == 3)
|
||||
mSayPanel.SetTitle("[UNLOZE Playtime] Record Holders Zombie Riot:");
|
||||
|
||||
mSayPanel.DrawItem("", ITEMDRAW_SPACER);
|
||||
|
||||
for(int i = 1; i <= 12; i++)
|
||||
|
Loading…
Reference in New Issue
Block a user