Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 5 из 5

Тема: Timer Fix

  1. #1
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±

    Timer Fix

    Timer Fix v1.0.8


    Описание
    Данный плагин делает таймеры более точными

    Нативные функции
    1. native SetTimer(funcname[], interval, bool:repeat);
    2. native SetTimerEx(funcname[], interval, bool:repeat, const format[], {Float,_}:...);
    3. native KillTimer(const id);
    4. native KillAllTimers();
    5. native IsValidTimer(timerid);
    6. native GetTimerInterval(timerid);
    7. native SetTimerInterval(timerid, interval);
    8. native GetTimerRemainingTime(timerid);


    Пример использования
    1. #include <timerfix>
    2.  
    3. new num = 0;
    4. new timer;
    5.  
    6. main() {
    7. timer = SetTimer("callback",1000,true)
    8. }
    9.  
    10. forward callback();
    11. public callback() {
    12. if(++num >= 5) {
    13. if(IsValidTimer(timer)) KillTimer(timer);
    14. SetTimerEx("callbackEx",1000,false,"d",num);
    15. }
    16. }
    17.  
    18. forward callbackEx(num);
    19. public callbackEx(num) {
    20. printf("Num: %d",num);
    21. KillAllTimers();
    22. }


    Скачать
    Binaries(Windows, Linux)
    Source code

    Ссылка на официальный топик
    Последний раз редактировалось Desulaid; 10.02.2019 в 15:00.

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

    Статус
    Оффлайн
    Регистрация
    25.09.2017
    Сообщений
    11
    Репутация:
    0 ±
    Есть еще одна нативная функция.
    native GetTimerRemainingTime(timerid);

  3. #3
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Цитата Сообщение от alonso Посмотреть сообщение
    Есть еще одна нативная функция.
    native GetTimerRemainingTime(timerid);
    Обновил.

  4. #4
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Знаю, что автор плагина, скорее всего, не следит за этой темой, но всё же: не совсем понятно, для чего вообще может понадобиться функция KillAllTimers(). Единственный сценарий, который приходит в голову - вызывать эту функцию при перезагрузке мода/ФС, чтобы убедиться, что перед перезагрузкой все таймеры были уничтожены, и тем самым не допустить утечек памяти - но по идее в этом не должно быть никакой необходимости, т.к. при выгрузке скрипта все созданные из него таймеры уничтожаются автоматически.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  5. #5
    Аватар для x86
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.01.2019
    Сообщений
    41
    Репутация:
    6 ±
    Кстати, зачем использовать свои local_ptr, если есть scoped_ptr от буста и unique_ptr от плюсов 11 года. Названия файлов то используют заглавную букву, то нет. В коде все еще используются рав указатели (не включая в это апишку для сервера), хотя автор уже использует C++11. Кроме того, во многих местах следует добавить ключевое слово noexcept, либо throw(), чтобы уменьших размер бинарника, т.к. идет проверка на исключения.

    Складывается впечатление, что исходники были написаны несколькими людьми, хотя история коммитов говорит об обратном.

 

 

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

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

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

Ваши права

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