#include <sourcemod>
#include <cstrike>
new Handle:hTimer = INVALID_HANDLE;
public OnPluginStart()
{
HookEvent("round_start", Event_OnRoundStart);
HookEvent("player_death", Event_OnPlayerDeath);
HookEvent("round_end", Event_OnRoundEnd);
}
public Event_OnRoundStart(Handle:event, const String:name[], bool:silent)
{
hTimer = CreateTimer(10.0, Timer, _, TIMER_FLAG_NO_MAPCHANGE);
}
public Event_OnPlayerDeath(Handle:event, const String:name[], bool:silent)
{
if (hTimer != INVALID_HANDLE)
{
new client = GetClientOfUserId(GetEventInt(event, "userid"));
if (client > 0)
{
if (GetClientTeam(client) > 1)
{
CreateTimer(1.0, CallBackTimer, client, TIMER_FLAG_NO_MAPCHANGE);
}
}
}
}
public Event_OnRoundEnd(Handle:event, const String:name[], bool:silent)
{
if (hTimer != INVALID_HANDLE)
{
KillTimer(hTimer);
hTimer = INVALID_HANDLE;
}
}
public Action:Timer(Handle:timer)
{
hTimer = INVALID_HANDLE;
}
public Action:CallBackTimer(Handle:timer, any:client)
{
if (IsClientInGame(client) && GetClientTeam(client) > 1 && !IsPlayerAlive(client))
{
CS_RespawnPlayer(client);
}
}