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

    Статус
    Оффлайн
    Регистрация
    13.06.2018
    Сообщений
    58
    Репутация:
    1 ±

    Вновь таймера

    Цитирую модератора этого форума DeimoS'a - "Если таймеры отстают, значит есть код, который обрабатывается слишком долго, создавая задержки. И делая таймер на 250 мс, ты не исправляешь проблему, а лишь усугубляешь, создавая большую нагрузку. Если хочешь сделать правильно - займись оптимизацией.
    А лучше вообще понять: так ли важно, что таймер будет отставать на пару секунд. На деле игрок этого и не заметит.".
    Дело в том, что даже обычный секундный глобальный таймер у меня пока не используется и создан просто так с перезапуском таймера. И он отстает на 2 секунды. Так в чем же проблема и как решить на стороне кода не приписывая дополнительных плагинов?

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

    Статус
    Оффлайн
    Регистрация
    13.10.2015
    Сообщений
    516
    Репутация:
    21 ±
    Прям на 2 секунды отстает? Код бы в таком случае))

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

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Никак, таймеры в SA-MP сами по себе не очень точные.

    Есть несколько плагинов, которые предоставляют более точные реализации таймеров - вот первый, который удалось найти на оффе: http://forum.sa-mp.com/showthread.php?t=650736
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  4. #4
    Аватар для X!X
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.06.2018
    Сообщений
    58
    Репутация:
    1 ±
    Цитата Сообщение от StevenH Посмотреть сообщение
    Прям на 2 секунды отстает? Код бы в таком случае))
    Не всегда отстает, а раз через три, пять.

    Код:
    Код HTML:
    SetTimer(!"@OneSecTimer", 1000, false);
    @OneSecTimer();
    @OneSecTimer()
    {
    	SetTimer(!"@OneSecTimer", 1000, false);
    	return 1;
    }
    - - - Добавлено - - -

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Никак, таймеры в SA-MP сами по себе не очень точные.

    Есть несколько плагинов, которые предоставляют более точные реализации таймеров - вот первый, который удалось найти на оффе: http://forum.sa-mp.com/showthread.php?t=650736
    Я вообще боюсь использовать эти сторонние какие-то плагины, вдруг что все полетит

  5. #5
    Аватар для VVWVV
    ?

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    731
    Репутация:
    353 ±
    Цитата Сообщение от X!X Посмотреть сообщение
    Не всегда отстает, а раз через три, пять.

    Код:
    Код HTML:
    SetTimer(!"@OneSecTimer", 1000, false);
    @OneSecTimer();
    @OneSecTimer()
    {
    	SetTimer(!"@OneSecTimer", 1000, false);
    	return 1;
    }
    - - - Добавлено - - -



    Я вообще боюсь использовать эти сторонние какие-то плагины, вдруг что все полетит
    Нет, ничего не полетит, вы можете использовать данные плагины на всех версиях, в которых доступны функции SetTimer, SetTimerEx и т.п. Он использует стандартные функции из стандартной библиотеки C++. Тем более, не использует перехват функций и т.п. Он лишь в интерпретаторе заменяет адреса оригинальных функций SetTimer, SetTimerEx и др. на собственные. Кстати, этот вариант намного лучше, поскольку автор всегда может пофиксить любые баги (это же не Kalcor).

  6. #6
    Аватар для X!X
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.06.2018
    Сообщений
    58
    Репутация:
    1 ±
    Цитата Сообщение от VVWVV Посмотреть сообщение
    Нет, ничего не полетит, вы можете использовать данные плагины на всех версиях, в которых доступны функции SetTimer, SetTimerEx и т.п. Он использует стандартные функции из стандартной библиотеки C++. Тем более, не использует перехват функций и т.п. Он лишь в интерпретаторе заменяет адреса оригинальных функций SetTimer, SetTimerEx и др. на собственные. Кстати, этот вариант намного лучше, поскольку автор всегда может пофиксить любые баги (это же не Kalcor).
    Успокоил, поставлю
    Тему можно закрывать, всем спасибо!

 

 

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

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

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

Ваши права

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