Сайт восстановлен из веб архива. Сейчас он доступен только для чтения, скачивание материалов также недоступно. Если у вас до сих пор есть какие-то вопросы по разработке серверов CRMP, вы можете перейти на актуальный портал: https://pawno-rus.com

Перейти к содержимому

Уважаемый гость, если у Вас возникли проблемы с регистрацией, просьба обратиться в тех.поддержку или на почту admin@pawno-crmp.ru

Для полного доступа ко всем функциям форума, Вам необходимо зарегистрироваться и авторизоваться.

Фотография
WIKI

Замена SetTimer & SetTimerEx на gettime

- - - - - gettime settimer

  • Авторизуйтесь для ответа в теме
В теме одно сообщение

#1
offline   Neat

Neat
  • 1036
    • Сообщений: 2 488
    • Регистрация: 21.12.13
Представляю вам новый способ использования таймеров, взамен SetTimer. Приведу + и - работы с ним.
 
gettime:
+ Нагружает сервер меньше чем SetTimer
+ На данный момент самый точный способ использования таймеров
- Может работать только с таймерами где число секунд - целое число. 30 секунд, 21 секунда, 1 минута, 2 часа и т.п. (1.5 секунды, 0.4 и т.д. не будут работать)
 
Чтобы таймеры на этой функции работали, нужно создать всего лишь один таймер на 250 мс. Он не будет нагружать сервер, можете не волноваться. Вот пример создания:
 
В public OnGameModeInit

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

Если увеличить 250, то можно ещё больше снизить нагрузку, взамен точности. Решать вам, что важнее.

 

В конец мода:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

Давайте попробуем создать 2 типа таймеров. Глобальный и для определённого игрока.
 
Глобальный таймер:
 
Ко всем глобальным переменным:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

В public OnGameModeInit

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

В public UpdateTimers

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

Таймер для игрока:

 

В public OnPlayerConnect

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

В public UpdateTimers

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

Ниже приведены тесты точности различных способов реализации таймеров. Тесты проводились на повторяющемся минутном таймере.
 
Стандартный способ:
1 выполнение - отклонение 4746 мс
2 выполнение - отклонение 4787 мс
3 выполнение - отклонение 4920 мс
 
Способ на gettime:
1 выполнение - отклонение 163 мс
2 выполнение - отклонение 188 мс
3 выполнение - отклонение 5 мс
 
Автор: Неизвестен.

  • 0

#2
offline   Maxim

Maxim
  • 51
    • Сообщений: 59
    • Регистрация: 24.01.14

Надежный вариант? Кто нибудь пробовал?


  • 0



Темы с аналогичным тегами WIKI, gettime, settimer

Количество пользователей, читающих эту тему: 1

0 пользователей, 0 гостей, 0 анонимных


    Alexa (1)

Данную тему посетили 59 пользователей