|
Приветствую. Кто как посоветует решить задачу перехватить наносимый игроком игроку урон при определенных условиях? Надо по условию изменять урон либо вообще отменять его.
Вариантов, используемых в разных плагинах, по сути два.
1. fakemeta, register_forward(FM_TraceLine, ...). По сути функция вызывается когда игрок смотрит на игрока. Пример плагина где такой вариант используется - HeadShot Mod, когда засчитываются убийства только в голову. По сути там обработчик куда смотрел игрок в этот момент и если это была не голова - дальнейшие обработчики отменяются.
2. csx, client_damage() Все классно и многофункционально, в параметрах вызываемой функции уже и id нападающего и жертвы, сумма урона, текущее оружие. Пример использования - плагин one knife hit kills. Там игрок "добивается" плагином. Но, судя по докам, This forward ignores the return value. То есть вмешаться и установить урон равный нулю невозможно.
Мне нужна комбинация этих двух способов, но чтобы функция не вызывалась по 100 раз в секунду как только один игрок смотрит на другого игрока.

Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.
|