Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 2 из 2
  1. #1
    Аватар для Jackal
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.08.2015
    Адрес
    Новокузнецк
    Сообщений
    54
    Репутация:
    2 ±

    Как узнать время таймера? Settimer

    Как можно узнать время таймера SetTimer?

    Например:

    Код:
    TazerTime[playerid] = SetTimerEx("Tazer",20000,false,"i",playerid);//Устанавливаю таймер на 20 сек
    Код:
    CMD:test(playerid)
    {
    new string[100];
    format(string, sizeof(string),"~w~Taz: ~r~%d", TazerTime[playerid]);//Узнаю сколько времени
    GameTextForPlayer(playerid, string, 5000, 1);
    return 1;
    }
    Если тайер не запущен, при вводе команды показывает "0". Если запустить таймер, покажет "20". (на сколько и установили).

    Проблема: Таймер работает, время уменьшается, но при повторном вводе команды после запуска таймера, показывает всё время "20", даже когда время кончилось и паблик сработал, всё равно показывает при вводе команды "20".

    Вопрос: Как сделать, чтобы при вводе команды, значение показывало на текущий момент, например 20, 18, 17, 4, 0.

    Цикличный посекундный таймер не предлагайте. Может быть есть какая-то функция типа Gettimer?

  2. #2
    Аватар для Jackal
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.08.2015
    Адрес
    Новокузнецк
    Сообщений
    54
    Репутация:
    2 ±
    Закрыто. Решение найдено. Делюсь.

    [quote name='Romzes' timestamp='1443163314' post='133568']
    20 - это ID таймера
    0 - это значит что таймер еще не был создан.

    [hr]
    По сути функции нету что бы узнать время когда остановится таймер но можно это сделать.

    1. Заводим новую переменную, допустим
    PHP код:
    new aTEST[playerid]; 
    2. В паблик Tazer(playerid) нужно будет добавить код:
    PHP код:
    TazerTime[playerid] = 0;
    aTEST[playerid] = 0
    3. После или перед созданием таймера добавляем этот код:
    PHP код:
    aTEST[playerid] = gettime()+20// 20 - это кол-во секунд что в таймере 
    4. Команда для узнавания время:
    PHP код:
    CMD:test(playerid) {
        new 
    text[32];
        if(
    TazerTime[playerid] != 0) {
            
    format(textsizeof(text), "~w~Taz: ~r~%d", (aTEST[playerid]-gettime())); // Узнаю сколько времени осталось
        
    } else {
            
    format(textsizeof(text), "The timer is not running!"); // Сообщаем что таймер не запущен!
        
    }
        
    GameTextForPlayer(playeridtext50001);
        return 
    1;

    PS: Вариант не идеален но может быть вам подойдет!
    [/quote]

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •