#pragma semicolon 1 #include #include "loghelper.inc" #pragma newdecls required int g_iClientConnectionTime[MAXPLAYERS + 1]; public Plugin myinfo = { name = "PlaytimeReward", author = "Obus + Dogan", description = "reward players with points for playing on the server", version = "1.0.0" }; public void OnPluginStart() { CreateTimer(30.0, Timer_CheckConnectionTime, _, TIMER_REPEAT); HookEvent("player_disconnect", EventHook_PlayerDisconnect, EventHookMode_Post); } public void OnPluginEnd() { UnhookEvent("player_disconnect", EventHook_PlayerDisconnect, EventHookMode_Post); } public void OnMapStart() { GetTeams(); } public void EventHook_PlayerDisconnect(Event hEvent, const char[] sName, bool bDontBroadcast) { bool bIsBot = view_as(hEvent.GetInt("bot")); if (bIsBot) return; int client = GetClientOfUserId(hEvent.GetInt("userid")); g_iClientConnectionTime[client] = 0; } public Action Timer_CheckConnectionTime(Handle hThis) { for (int i = 1; i <= MaxClients; i++) { if (!IsValidClient(i)) continue; g_iClientConnectionTime[i] += 30; if (g_iClientConnectionTime[i] > 36000 && g_iClientConnectionTime[i] <= 36030) { LogPlayerEvent(i, "triggered", "staying_server_600"); g_iClientConnectionTime[i] = 0; //start over, but i doubt someone will ever reach so far ;) } else if (g_iClientConnectionTime[i] > 34200 && g_iClientConnectionTime[i] <= 34230) { LogPlayerEvent(i, "triggered", "staying_server_570"); } else if (g_iClientConnectionTime[i] > 32400 && g_iClientConnectionTime[i] <= 32430) { LogPlayerEvent(i, "triggered", "staying_server_540"); } else if (g_iClientConnectionTime[i] > 30600 && g_iClientConnectionTime[i] <= 30630) { LogPlayerEvent(i, "triggered", "staying_server_510"); } else if (g_iClientConnectionTime[i] > 28800 && g_iClientConnectionTime[i] <= 28830) { LogPlayerEvent(i, "triggered", "staying_server_480"); } else if (g_iClientConnectionTime[i] > 27000 && g_iClientConnectionTime[i] <= 27030) { LogPlayerEvent(i, "triggered", "staying_server_450"); } else if (g_iClientConnectionTime[i] > 25200 && g_iClientConnectionTime[i] <= 25230) { LogPlayerEvent(i, "triggered", "staying_server_420"); } else if (g_iClientConnectionTime[i] > 23400 && g_iClientConnectionTime[i] <= 23430) { LogPlayerEvent(i, "triggered", "staying_server_390"); } else if (g_iClientConnectionTime[i] > 21600 && g_iClientConnectionTime[i] <= 21630) { LogPlayerEvent(i, "triggered", "staying_server_360"); } else if (g_iClientConnectionTime[i] > 19800 && g_iClientConnectionTime[i] <= 19830) { LogPlayerEvent(i, "triggered", "staying_server_330"); } else if (g_iClientConnectionTime[i] > 18000 && g_iClientConnectionTime[i] <= 18030) { LogPlayerEvent(i, "triggered", "staying_server_300"); } else if (g_iClientConnectionTime[i] > 16200 && g_iClientConnectionTime[i] <= 16230) { LogPlayerEvent(i, "triggered", "staying_server_270"); } else if (g_iClientConnectionTime[i] > 14400 && g_iClientConnectionTime[i] <= 14430) { LogPlayerEvent(i, "triggered", "staying_server_240"); } else if (g_iClientConnectionTime[i] > 12600 && g_iClientConnectionTime[i] <= 12630) { LogPlayerEvent(i, "triggered", "staying_server_210"); } else if (g_iClientConnectionTime[i] > 10800 && g_iClientConnectionTime[i] <= 10830) { LogPlayerEvent(i, "triggered", "staying_server_180"); } else if (g_iClientConnectionTime[i] > 9000 && g_iClientConnectionTime[i] <= 99030) { LogPlayerEvent(i, "triggered", "staying_server_150"); } else if (g_iClientConnectionTime[i] > 7200 && g_iClientConnectionTime[i] <= 7230) { LogPlayerEvent(i, "triggered", "staying_server_120"); } else if (g_iClientConnectionTime[i] > 5400 && g_iClientConnectionTime[i] <= 5430) { LogPlayerEvent(i, "triggered", "staying_server_90"); } else if (g_iClientConnectionTime[i] > 3600 && g_iClientConnectionTime[i] <= 3630) { LogPlayerEvent(i, "triggered", "staying_server_60"); } else if (g_iClientConnectionTime[i] > 1800 && g_iClientConnectionTime[i] <= 1830) { LogPlayerEvent(i, "triggered", "staying_server_30"); } } } stock bool IsValidClient(int client) { return (client >= 1 && client <= MaxClients && IsClientInGame(client) && !IsFakeClient(client)); }