Задержка функции

Тема в разделе "Программирование / Скриптинг", создана пользователем Tetragromaton, 8 сен 2016.

Метки:
  1. Tetragromaton

    Tetragromaton

    Сообщения:
    62
    Симпатии:
    1
    Всем привет. Как я смогу сделать задержку выполнения функции в команде с запоминанием ID игрока на которого должна выполниться нужная функция. Например:
    PHP:
    public Action:Command_Plague(client,args)
    {
    if(
    IsPlayerAlive(client) == true)
    {
    //Запись ID игрока на котором выполнится функция ниже
    //задержка(5 секунд)
    {
    TF2_AddCondition(записанный ID игрокаTFCond_PlagueTFCondDuration_Infinite);
    }
    }
    Буду очень благодарен !!!
     
  2. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.552
    Симпатии:
    1.987
    Таймером.
    PHP:
    CreateTimer(5.0WaitFunctionclientTIMER_FLAG_NO_MAPCHANGE);
    PHP:
    public Action:Command_Plague(client,args)
    {
        if (
    client && IsPlayerAlive(client)) CreateTimer(5.0WaitFunctionclientTIMER_FLAG_NO_MAPCHANGE);
        return 
    Plugin_Handled;
    }

    public 
    Action:WaitFunction(Handle:timerany:client)
    {
        if (
    IsClientInGame(client)) TF2_AddCondition(clientTFCond_PlagueTFCondDuration_Infinite);
        return 
    Plugin_Stop;
    }
     
  3. Tetragromaton

    Tetragromaton

    Сообщения:
    62
    Симпатии:
    1
    С таргетингом будет работать ? Например CreateTimer(5.0, Wait, target_list, TIMER_FLAG_NO_MAPCHANGE);
     
  4. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.552
    Симпатии:
    1.987
    Не важно, как называется переменная, отсылаемая в таймер. Оффтоп Получаемая после таймера переменная может быть названа иначе.
    То же самое, но название вызова функции должно быть одинаковым.
    Тут уже не мудрим, только выбираем из API SM.
    Кстати, лучше преобразовать в userid, а после - снова в индекс игрока. Всё-таки, 5 секунд - это многовато: игрок может ввести команду и выйти/вылететь, на его место (индекс/слот) зайдёт другой - команда выполнится на нём.
     
  5. Tetragromaton

    Tetragromaton

    Сообщения:
    62
    Симпатии:
    1
    Окей, спасибо большое :)