#include <sourcemod>
#include <sdktools>
new Handle:g_hAutoRestartRounds = INVALID_HANDLE,
Handle:g_hAutoRestartEnabled = INVALID_HANDLE,
bool:g_bEnabled = true,
g_iWins;
new const String: soundFile[] = "ambient/misc/brass_bell_c.wav";
public Plugin:myinfo =
{
name = "Autorestartgame",
author = "R1KO",
description = "Автоматический рестарт при достижении лимита побед",
version = "1.2",
url = "https://hlmod.ru"
};
public OnPluginStart()
{
g_hAutoRestartEnabled = CreateConVar("sm_autorestartgame_enabled", "1", "Вкл/Выкл плагин.", FCVAR_NONE, true, 0.0, true, 1.0);
g_hAutoRestartRounds = CreateConVar("sm_autorestartgame_round", "30", "Количество раундов до рестарта.", FCVAR_NONE, true, 4.0);
HookEvent("round_end", OnRoundEnd);
HookConVarChange(g_hAutoRestartRounds, ConVarChanges);
HookConVarChange(g_hAutoRestartEnabled, ConVarChanges);
}
public OnConfigsExecuted()
{
g_iWins = GetConVarInt(g_hAutoRestartRounds);
g_bEnabled = GetConVarBool(g_hAutoRestartEnabled);
decl String:fileSound[128];
Format(fileSound, sizeof(fileSound), "sound/%s", soundFile);
AddFileToDownloadsTable(fileSound);
PrecacheSound(soundFile, true);
}
public OnRoundEnd(Handle:event, const String:name[], bool:dontBroadcast)
{
if(g_bEnabled)
{
new ScoreT = GetTeamScore(2), ScoreCT = GetTeamScore(3);
if(ScoreT == g_iWins-2 || ScoreCT == g_iWins-2)
PrintToChatAll("[AutoRestart] Внимание! Осталось 2 победы одной из команд до рестарта игры.");
else if(ScoreT == g_iWins-1 || ScoreCT == g_iWins-1)
PrintToChatAll("[AutoRestart] Внимание! Осталась 1 победа одной из команд до рестарта игры.");
else if(ScoreT == g_iWins || ScoreCT == g_iWins)
{
ServerCommand ("mp_restartgame 2");
PrintToChatAll("[AutoRestart] Внимание! Достигнут лимит побед. Будет произведен рестарт игры");
for(new i = 1; i <= MaxClients; i++)
if(IsClientInGame(i) && !IsFakeClient(i))
ClientCommand(i, "playgamesound %s", soundFile);
}
}
}
public ConVarChanges(Handle:convar, const String:oldValue[], const String:newValue[])
{
if(convar == g_hAutoRestartRounds)
g_iWins = GetConVarInt(g_hAutoRestartRounds);
if(convar == g_hAutoRestartEnabled)
g_bEnabled = GetConVarBool(g_hAutoRestartEnabled);
}