Code:
#pragma semicolon 1
#include <sourcemod>
#define L4D_TEAM_SURVIVOR 2
new bool:inSafeRoom[MAXPLAYERS + 1];
public OnPluginStart() {
HookEvent("player_entered_checkpoint", EventPlayerEnteredCheckpoint);
HookEvent("player_left_checkpoint", EventPlayerLeftCheckpoint);
}
public OnClientConnected(client) {
inSafeRoom[client] = false;
}
public Action:EventPlayerEnteredCheckpoint(Handle:event, const String:name[], bool:dontBroadcast) {
new client = GetClientOfUserId(GetEventInt(event, "userid"));
if(client && IsClientInGame(client) && GetClientTeam(client) == L4D_TEAM_SURVIVOR) {
inSafeRoom[client] = true;
}
}
public Action:EventPlayerLeftCheckpoint(Handle:event, const String:name[], bool:dontBroadcast) {
new client = GetClientOfUserId(GetEventInt(event, "userid"));
if(client && IsClientInGame(client) && GetClientTeam(client) == L4D_TEAM_SURVIVOR) {
inSafeRoom[client] = false;
}
}
KillOutsideSafeRoom() {
for(new i = 1; i <= MaxClients; i++) {
if(IsClientInGame(client) && GetClientTeam(client) == L4D_TEAM_SURVIVOR && !inSafeRoom[client]) {
ForcePlayerSuicide(i);
}
}
}