Замедление игрока, когда у него в руках тяжелое оружие
Замедление игрока, когда у него в руках тяжелое оружие
Довольно забавно
наблюдать, как игрок одинаково быстро бегает как с монтировкой в руках,
так и с тяжелой базукой, хотя логичнее, что держа в руках сей девайс, он
будет бегать медленнее (если вообще сможет бегать), а прыгать ниже. В
этой статье я расскажу, как замедлить игрока, если он несет в руках ту
или иную пушку.
Довольно забавно
наблюдать, как игрок одинаково быстро бегает как с монтировкой в руках,
так и с тяжелой базукой, хотя логичнее, что держа в руках сей девайс, он
будет бегать медленнее (если вообще сможет бегать), а прыгать ниже. В
этой статье я расскажу, как замедлить игрока, если он несет в руках ту
или иную пушку.
Ключевой функцией здесь является функция движка pfnSetClientMaxspeed.
Ее нужно будет вызвать дважды – когда оружие появляется в руках
(замедлить или ускорить игрока), и когда появляется другое (восстановить
старое значение скорости). В коде оружия для этого выделены специальные
функции – Deploy и Holster.
Рассмотрим пример с базукой. В функции Deploy нам надо замедлить игрока
(установим максимальную скорость 120), а в функции Holster –
восстановить скорость по умолчанию (установив ее в 0).
Открываем rpg.cpp, находим функцию CRpg :: Deploy и добавляем туда новый код. Получается вот что:
C++ Source Code:
BOOL CRpg :: Deploy( ) { // ограничиваем скорость игрока до 120 g_engfuncs.pfnSetClientMaxspeed(m_pPlayer->edict(), 120 );