#include <sdktools_functions>
//#include <csgo_colors> // для красоты чата - раскомментируйте CGOPrintToChatAll и #include <csgo_colors> для эстетичного вида в чате и удалите стандартные PrintToChatAll
// Если чат в обще не нужен - удалите весь текст связанные с CGOPrintToChatAll.
// Чтобы скомпилировать плагин, вам нужно закинуть иклюд csgo_colors в папку include находящияся в папке scripting
// Скачать можно тут:
[INC] CS:GO Colors (1.4)
new Handle:g_hMaxrounds;
public OnPluginStart()
{
RegAdminCmd("sm_ex", EX, ADMFLAG_BAN); // Добавить время текущей карте
RegAdminCmd("sm_rm", RM, ADMFLAG_BAN); // Рестарт матча
RegAdminCmd("sm_rr", RR, ADMFLAG_BAN); // Рестарт раунда
RegAdminCmd("sm_fw", FW, ADMFLAG_BAN); // Установка подеды команде
if((g_hMaxrounds = FindConVar("mp_maxrounds"))) RegAdminCmd("sm_mr", MR, ADMFLAG_BAN); // Добавить/узнать/уменьшить максимальное количество раундов на карте
}
public Action:EX(iClient, args)
{
if(!args)
{
if(iClient) PrintToChat(iClient, "Неправильно, используйте команду: !ex <значение>");
ReplyToCommand(iClient, "Неправильно, используйте команду: sm_ex <значение>");
return Plugin_Handled;
}
decl String:you[4];
GetCmdArg(1, you, sizeof(you));
Timelimit(iClient, StringToInt(you));
return Plugin_Handled;
}
Timelimit(iClient, min)
{
ExtendMapTimeLimit(min * 60); //
Main - SourceMod Scripting API Reference - ExtendMapTimeLimit
if(iClient)
{
//CGOPrintToChatAll("Администратор \x07%N\x01\nПродлил карту на \x04%d\x01 минут(ы)", iClient, min);
PrintToChatAll("Администратор \x07%N\x01 продлил карту на \x04%d\x01 минут(ы)", iClient, min);
}
else PrintToChatAll("Администратор продлил карту на \x04%d\x01 минут(ы)", min);
}
public Action:RM(iClient, args)
{
if(!args)
{
if(iClient) PrintToChat(iClient, "Неправильно, используйте команду: !rm <значение>");
ReplyToCommand(iClient, "Неправильно, используйте команду: sm_rm <значение>");
return Plugin_Handled;
}
decl String:you2[3];
GetCmdArg(1, you2, sizeof(you2));
new rm = StringToInt(you2);
ServerCommand("mp_restartgame %d", rm);
if(iClient)
{
//CGOPrintToChatAll("Администратор \x07%N\x01 перезапустил матч.\n Матч перезапустится через: \x04%d\x01 секунд(ы)!", iClient, rm);
PrintToChatAll("Администратор \x07%N\x01 перезапустил матч. Матч перезапустится через: \x04%d\x01 секунд(ы)!", iClient, rm);
}
else PrintToChatAll("Администратор перезапустил матч. Матч перезапустится через: \x04%d\x01 секунд(ы)!", rm);
return Plugin_Handled;
}
public Action:RR(iClient, args)
{
CS_TerminateRound(5.0, CSRoundEnd_Draw);
if(iClient)
{
//CGOPrintToChatAll("Администратор \x07%N\x01 сделал рестарт раунда.\n Раунд перезапустится через: \x045\x01 секунд!", iClient);
PrintToChatAll("Администратор \x07%N\x01 сделал рестарт раунда. Раунд перезапустится через: \x045\x01 секунд!", iClient);
}
else PrintToChatAll("Администратор сделал рестарт раунда. Раунд перезапустится через: \x045\x01 секунд!");
return Plugin_Handled;
}
public Action:FW(iClient, args)
{
if(args == 0)
{
if(iClient) PrintToChat(iClient, "Неправильно, используйте команду: !fw <ct/tt/draw>");
ReplyToCommand(iClient, "Неправильно, используйте команду: sm_fw <ct/tt/draw>");
return Plugin_Handled;
}
decl String:team[5];
GetCmdArg(1, team, sizeof(team));
if(StrEqual(team, "ct"))
{
CS_TerminateRound(5.0, CSRoundEnd_CTWin);
SetTeamScore(CS_TEAM_CT, GetTeamScore(CS_TEAM_CT) + 1);
if(iClient)
{
//CGOPrintToChatAll("Администратор \x07%N\x01 присвоил команде \x0Bконтр-террористов\x01 победу!", iClient);
PrintToChatAll("Администратор \x07%N\x01 присвоил команде \x0Bконтр-террористов\x01 победу!", iClient);
}
}
else if(StrEqual(team, "tt"))
{
CS_TerminateRound(5.0, CSRoundEnd_TerroristWin);
SetTeamScore(CS_TEAM_T, GetTeamScore(CS_TEAM_T) + 1);
if(iClient)
{
//CGOPrintToChatAll("Администратор \x07%N\x01 присвоил команде \x07террористов\x01 победу!", iClient);
PrintToChatAll("Администратор \x07%N\x01 присвоил команде \x07террористов\x01 победу!", iClient);
}
}
else if(StrEqual(team, "draw"))
{
CS_TerminateRound(5.0, CSRoundEnd_Draw);
if(iClient) PrintToChatAll("Администратор \x07%N\x01 присвоил командам ничью!", iClient);
}
return Plugin_Handled;
}
public Action:MR(iClient, args)
{
new round = 1;
if(args)
{
decl String:rounds[3];
GetCmdArg(1, rounds, sizeof(rounds));
if(!(round = StringToInt(rounds)))
{
ReplyToCommand(iClient, "\x01 \04Текущее \x05количество раундов \x01карты: \x03%i\x01.", GetConVarInt(g_hMaxrounds));
return Plugin_Handled;
}
}
SetConVarInt(g_hMaxrounds, GetConVarInt(g_hMaxrounds) + round);
if(iClient)
{
//CGOPrintToChatAll("Администратор \x07%N\x01 %s карту на \x07%i\x01 раундов!", iClient, 0 < round ? "продлил" : "укоротил", round);
PrintToChatAll("Администратор \x07%N\x01 %s карту на \x07%i\x01 раундов!", iClient, 0 < round ? "продлил" : "укоротил", round);
}
else PrintToChatAll("Администратор %s карту на \x07%i\x01 раундов!", 0 < round ? "продлил" : "укоротил", round);
return Plugin_Handled;
}