Ganter1234
Участник
- Сообщения
- 1,149
- Реакции
- 667
У меня не работает лимит использование команды, всю информацию он вроде получает, но не работает и не отключает команду
...:
#include <sourcemod>
#pragma semicolon 1
public Plugin myinfo =
{
name = "Command Limiter",
author = "Ganter1234",
version = "1.0"
};
new Limit[MAXPLAYERS+1];
int NumLimit;
public void OnPluginStart()
{
Config();
HookEvent("round_start", OnRoundStart, EventHookMode_PostNoCopy);
RegAdminCmd("sm_reload_limiter", Reload, ADMFLAG_ROOT);
}
public Action Reload(int iClient, int iArgs)
{
Config();
PrintToChat(iClient, "[CL] Конфиг перезагружен");
}
void Config()
{
KeyValues Kv = new KeyValues("Command_Limiter"); // Создание конфига
char sBuffer[256];
BuildPath(Path_SM, sBuffer, sizeof(sBuffer), "configs/command_limiter.cfg");
if (!FileToKeyValues(Kv, sBuffer)) SetFailState("Файл конфигурации не найден %s", sBuffer);
if (Kv.GotoFirstSubKey())
{
do
{
if (Kv.GetSectionName(sBuffer, sizeof(sBuffer)))
{
AddCommandListener(Check, sBuffer); // Находим команду в конфиге
NumLimit = Kv.GetNum(sBuffer); // Получаем число с команды
}
}
while (Kv.GotoNextKey());
}
delete Kv;
}
public OnRoundStart(Handle:event, const String:name[], bool:donBroadcast) // Сбрасываем счетчик
{
for (new i = 1; i <= MaxClients; i++)
{
Limit[i] = 0;
}
}
public Action Check(int iClient, const char[] sCommand, int iArgc) // Что делать с командой
{
if(iClient != 0 && Limit[iClient] >= NumLimit)
{
PrintToChat(iClient, "[CL] Вы достилги лимита использования команды!");
return Plugin_Stop;
}
else
{
Limit[iClient]++;
}
return Plugin_Continue;
}