Таймер на смену команды

Planes

Потерявшиеся точка с запятой
Сообщения
356
Реакции
97
Пробую делать свой первый таймер который запрещает менять команду.
Нужна помощь в создании .
При переходе за наблюдателей создается таймер на N секунд. Пока таймер не закончится, нельзя выбрать команду.
Но вот, почему то текст о запрете есть, но команда все равно меняется
PHP:
#pragma semicolon 1
#include <sourcemod>

public Plugin:myinfo =
{
    name = "[HS] Блокировка смены команд",
    author = "High SKill",
    description = "Плагин запрещает менять команду игрокам",
    version = "1b"
};

Handle g_hTimer[MAXPLAYERS+1];
bool g_iBlock;

public OnPluginStart()
{
    AddCommandListener(Command_CheckJoin, "jointeam");
}

public Action:Command_CheckJoin(client, const String:command[], args)
{
    new String:teamString[3];
    GetCmdArg(1, teamString, sizeof(teamString));
    new Target_Team = StringToInt(teamString);
    new Current_Team = GetClientTeam(client);

    if (!g_hTimer[client])
    {
        if (Current_Team == 1 && Target_Team == 2 && g_iBlock)
        {
            PrintToChat(client, "\x03[SM] \x01Сейчас вам нельзя сменить команду!"); // Уведомление для игрока
            return Plugin_Handled;
        }else{
            if (Current_Team == 2 && Target_Team == 3 || Current_Team == 3 && Target_Team == 2) // Запрет смены команды
            {
                PrintToChat(client, "\x03[SM] \x01Нельзя менять комманду!"); // Уведомление для игрока
                return Plugin_Handled;      
            }
            if (Target_Team == 1) // Проверка на выбор игроком команду Наблюдателей
            {
                PrintToChat(client, "\x03[SM] \x01Вы перешли в наблюдатели!"); // Уведомление для игрока
                CreateTimer(10.0, timerChange, GetClientUserId(client), TIMER_FLAG_NO_MAPCHANGE); // Установка таймера
                g_iBlock = true;
                return Plugin_Continue;
            }
            return Plugin_Handled;  
        }
    }
    return Plugin_Continue;
}
public Action:timerChange(Handle hTimer, any UserId)
{
    int iClient = GetClientOfUserId(UserId);
    if (iClient)
    {
        PrintToChat(iClient, "\x03[SM] \x01Вы снова можете сменить команду!"); // Уведомление для игрока
        g_hTimer[iClient] = null;
        g_iBlock = false;
    }
    return Plugin_Continue;
}
За любую помощь буду благодарен
 
Последнее редактирование:
Сверху Снизу