События(events)

Dieu du Ciel

Участник
Сообщения
8
Реакции
0
Следующий вопрос - можно ли написать свое событие чтобы в дальнейшем его отлавливать? Если можно то в какую сторону копать?
Вопрос созрел из следующей необходимости - нужно узнавать когда игрок будет на голове у другого игрока. Пытался сделать так: создаю таймер на повторение в интервале от 0.5-1 секунды и в callback-е узнаю, что или кто находится под игроком,
и после того как попадется нужный объект я удаляю таймер. Но так как мне нужно чтобы такое поведение распространялось на несколько игроков - то игрок от имени которого были созданы таймеры начинает тормозить по жесткому.
 

pashek71

Участник
Сообщения
232
Реакции
43
Не проще 1 таймер с циклом по всем игрокам с проверкой игрок ли под ногами(кстати интересно как проверяешь)?
 

Dieu du Ciel

Участник
Сообщения
8
Реакции
0
Не проще 1 таймер с циклом по всем игрокам с проверкой игрок ли под ногами(кстати интересно как проверяешь)?
Дело в том что насколько это быстро будет работать...
Решил сделать иначе, вешаю хуки для тех игроков которые участвуют в игре и когда они сопрекасаются друг с другом я получаю координаты этих игроков и если расстояние по оси z равно определенной величине то я выполняю действие.
На счет того как я проверял кто под ногами - int ent = GetEntPropEnt(iClient, Prop_Send, "m_hGroundEntity");
 

Reiko1231

AlexTheRegent
Сообщения
508
Реакции
1,335
можно ли написать свое событие чтобы в дальнейшем его отлавливать?
Можно. Для этого достаточно использовать функции CreateEvent, затем SetEventInt, SetEventFloat, другие SetEvent*, и наконец FireEvent.
Однако у сурсмода есть свой механизм для передачи информации между плагинами - Natives и Forwards. Поэтому для взаимодействия между плагинами лучше использовать их.

Дело в том что насколько это быстро будет работать.
Будет работать с нормальной скоростью. И лучше сделать один таймер + глобальный массив с индексами игроков, кто уже нашел нужный объект. Это будет лучше, чем каждому игроку свой таймер. Однако и это вариант, и другие, вряд ли смогут загрузить даже сотую процента процессора.

игрок от имени которого были созданы таймеры начинает тормозить по жесткому.
Игрок вообще никак не может начать тормозить от сервера. От плагина на сервере должны будут начать лагать все сразу, если он перегружает сервер.
 
Сверху Снизу