forked from UNLOZE/sm-plugins
Remove CSGO and Cleanup required folders.
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
#pragma semicolon 1
|
||||
|
||||
#include <sourcemod>
|
||||
#include <hlstatsx_loghelper>
|
||||
|
||||
#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 EventHook_PlayerDisconnect(Event hEvent, const char[] sName, bool bDontBroadcast)
|
||||
{
|
||||
bool bIsBot = view_as<bool>(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;
|
||||
|
||||
for (int iTime = 1800; iTime <= 36000; iTime += 1800)
|
||||
{
|
||||
if ((g_iClientConnectionTime[i] % 1800) == 0)
|
||||
{
|
||||
int iConnectionTimeClamped = g_iClientConnectionTime[i];
|
||||
|
||||
if (iConnectionTimeClamped > 36000)
|
||||
iConnectionTimeClamped = 36000;
|
||||
|
||||
char sPlayerEvent[32];
|
||||
Format(sPlayerEvent, sizeof(sPlayerEvent), "staying_server_%d", iConnectionTimeClamped / 60);
|
||||
|
||||
LH_LogPlayerEvent(i, "triggered", sPlayerEvent, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stock bool IsValidClient(int client)
|
||||
{
|
||||
return (client >= 1 && client <= MaxClients && IsClientInGame(client) && !IsFakeClient(client));
|
||||
}
|
||||
Reference in New Issue
Block a user