Создание таймера и принудительная анимация.

Тема в разделе "Программирование / Скриптинг", создана пользователем Sirse, 17 июн 2013.

  1. Sirse

    Sirse http://zonasumraka.ru/

    Сообщения:
    287
    Симпатии:
    129
    В общем, пара вопросов.
    Имеется такой код -

    Код:
    public Action:Command_Throw(client, args) {
    	if (GetConVarBool(g_CVarEnable)) {
    		if (!client || !IsClientInGame(client)) {
    		    return Plugin_Continue;
    	    }
    		if (!IsClientObserver(client) && CheckCommandAccess(client, "sm_throwknife", 0, true) && (g_iKnives[client] > 0)) {
    		    if (!StrEqual(sWeapon, "knife")) {
    			    ThrowKnife(client);
    			} else {
    			    ThrowKnife(client);
    			}
    	    }
    		return Plugin_Handled;
    	}
    }
    Мне нужно создать таймер, причём таким образом, чтобы задержка перед запуском ThrowKnife составляла Х времени. Желательно с примером кода =)
    И ещё, возможно ли принудительно клиенту воспроизвести анимацию удара ножом?
     
  2. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    PHP:
    #include <sourcemod>

    #define TIME_CHECK 1.0

    // Создаем глобальную переменную, в которой будем хранить время активации команды клиентом
    new Float:CheckTime[MAXPLAYERS 1] = 0.0;

    public 
    OnPluginStart()
    {
        
    RegConsoleCmd("test"CallBack);
    }

    public 
    OnClientPutInServer(client)
    {
        if (
    CheckTime[client] != 0.0)
        {
            
    CheckTime[client] = 0.0;
        }

    }

    public 
    Action:CallBack(clientargs)
    {
        if (
    client 0)
        {
            
    // Создаем новую переменную, в которой также будем хранить время активации команды клиентом
            
    new Float:time GetGameTime();

            
    // Если разность текущего времени и времени предыдущей активации команды будет больше, чем TIME_CHECK
            
    if ((time CheckTime[client]) > TIME_CHECK)
            {
                
    // То продолжаем выполнение команды

                // Твой код
            
    }

            
    // Сохраняем время активации
            
    CheckTime[client] = time;
        }

        return 
    Plugin_Handled;
    }

    Код -> Anti Console Flood
     
    Sirse и Серый™ нравится это.