Просмотр полной версии : [Вопрос] Вновь таймера
Цитирую модератора этого форума DeimoS'a - "Если таймеры отстают, значит есть код, который обрабатывается слишком долго, создавая задержки. И делая таймер на 250 мс, ты не исправляешь проблему, а лишь усугубляешь, создавая большую нагрузку. Если хочешь сделать правильно - займись оптимизацией.
А лучше вообще понять: так ли важно, что таймер будет отставать на пару секунд. На деле игрок этого и не заметит.".
Дело в том, что даже обычный секундный глобальный таймер у меня пока не используется и создан просто так с перезапуском таймера. И он отстает на 2 секунды. Так в чем же проблема и как решить на стороне кода не приписывая дополнительных плагинов?
Прям на 2 секунды отстает? Код бы в таком случае))
Daniel_Cortez
22.06.2018, 20:12
Никак, таймеры в SA-MP сами по себе не очень точные.
Есть несколько плагинов, которые предоставляют более точные реализации таймеров - вот первый, который удалось найти на оффе: http://forum.sa-mp.com/showthread.php?t=650736
Прям на 2 секунды отстает? Код бы в таком случае))
Не всегда отстает, а раз через три, пять.
Код:
SetTimer(!"@OneSecTimer", 1000, false);
@OneSecTimer();
@OneSecTimer()
{
SetTimer(!"@OneSecTimer", 1000, false);
return 1;
}
- - - Добавлено - - -
Никак, таймеры в SA-MP сами по себе не очень точные.
Есть несколько плагинов, которые предоставляют более точные реализации таймеров - вот первый, который удалось найти на оффе: http://forum.sa-mp.com/showthread.php?t=650736
Я вообще боюсь использовать эти сторонние какие-то плагины, вдруг что все полетит:blush2:
Не всегда отстает, а раз через три, пять.
Код:
SetTimer(!"@OneSecTimer", 1000, false);
@OneSecTimer();
@OneSecTimer()
{
SetTimer(!"@OneSecTimer", 1000, false);
return 1;
}
- - - Добавлено - - -
Я вообще боюсь использовать эти сторонние какие-то плагины, вдруг что все полетит:blush2:
Нет, ничего не полетит, вы можете использовать данные плагины на всех версиях, в которых доступны функции SetTimer, SetTimerEx и т.п. Он использует стандартные функции из стандартной библиотеки C++. Тем более, не использует перехват функций и т.п. Он лишь в интерпретаторе заменяет адреса оригинальных функций SetTimer, SetTimerEx и др. на собственные. Кстати, этот вариант намного лучше, поскольку автор всегда может пофиксить любые баги (это же не Kalcor).
Нет, ничего не полетит, вы можете использовать данные плагины на всех версиях, в которых доступны функции SetTimer, SetTimerEx и т.п. Он использует стандартные функции из стандартной библиотеки C++. Тем более, не использует перехват функций и т.п. Он лишь в интерпретаторе заменяет адреса оригинальных функций SetTimer, SetTimerEx и др. на собственные. Кстати, этот вариант намного лучше, поскольку автор всегда может пофиксить любые баги (это же не Kalcor).
Успокоил, поставлю:good:
Тему можно закрывать, всем спасибо!
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot