Регистрация - или - Войти
Half-Life: Fight For LifeHalf-Life: Fight For Life

Мод про ученого, которому придется пройти через ад, чтобы выбраться из огромного научного комплекса...

12/06/2009
Rock 24 (Скала 24)Rock 24 (Скала 24)

Приоритетное задание - спасение ученого из неприступной тюрьмы...

8/11/2006

Довольно забавно наблюдать, как игрок одинаково быстро бегает как с монтировкой в руках, так и с тяжелой базукой, хотя логичнее, что держа в руках сей девайс, он будет бегать медленнее


  • Описание
  • Ссылка и установка

Замедление игрока

Довольно забавно наблюдать, как игрок одинаково быстро бегает как с монтировкой в руках, так и с тяжелой базукой, хотя логичнее, что держа в руках сей девайс, он будет бегать медленнее


Автор / ы урока : XaeroX
Просмотров : 456 ( +1 )
Прислал / (а) : Streit
Дата создания : 07.04.2011 18:22:55
Источник : http://www.hlfx.ru/forum
Рейтинг :
 ( 0 ) 
Поделиться :


Имеются следующие переводы : | русский |

Довольно забавно наблюдать, как игрок одинаково быстро бегает как с монтировкой в руках, так и с тяжелой базукой, хотя логичнее, что держа в руках сей девайс, он будет бегать медленнее (если вообще сможет бегать), а прыгать ниже. В этой статье я расскажу, как замедлить игрока, если он несет в руках ту или иную пушку. Ключевой функцией здесь является функция движка pfnSetClientMaxspeed. Ее нужно будет вызвать дважды – когда оружие появляется в руках (замедлить или ускорить игрока), и когда появляется другое (восстановить старое значение скорости). В коде оружия для этого выделены специальные функции – Deploy и Holster. Рассмотрим пример с базукой. В функции Deploy нам надо замедлить игрока (установим максимальную скорость 120), а в функции Holster – восстановить скорость по умолчанию (установив ее в 0). Открываем rpg.cpp, находим функцию CRpg :: Deploy и добавляем туда новый код. Получается вот что:

Code:

BOOL CRpg :: Deploy( )
{
   // ограничиваем скорость игрока до 120
   g_engfuncs.pfnSetClientMaxspeed(m_pPlayer->edict(), 120 );

   if ( m_iClip == 0 )
   {
     return DefaultDeploy( "models/v_rpg.mdl", "models/p_rpg.mdl", RPG_DRAW_UL, "rpg" );
   }

   return DefaultDeploy( "models/v_rpg.mdl", "models/p_rpg.mdl", RPG_DRAW1, "rpg" );
}
Теперь переходим в функцию CRpg

Hoster. Должно получиться вот что:

Code:

void CRpg :: Holster( int skiplocal /* = 0 */ )
{
   // восстанавливаем скорость игрока
   g_engfuncs.pfnSetClientMaxspeed(m_pPlayer->edict(), 0 );

   m_fInReload = FALSE;// cancel any reload in progress.

   m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 0.5;

   SendWeaponAnim( RPG_HOLSTER1 );

   #ifndef CLIENT_DLL
     if (m_pSpot)
     {
       m_pSpot->Killed( NULL, GIB_NEVER );
       m_pSpot = NULL;
     }
   #endif
}


Похожие1. Исходный код снайперки - weapon_sniperrifle с оптическим прицелом
2. Монстры по сети - Для создания кооперативного мода или просто для включения монстров в сетевой игре
3. Подбираемый фонарик v 2.5 - Подбираемый фонарик v 2.5
4. Больше слотов и позиций для оружия - Больше слотов и позиций для оружия
5. Мазлфлэш на брашах - Мазлфлэш на брашах
6. Функции движка - как и для чего - Функции движка - как и для чего их использовать?
7. Sparks - Как добавить искры
Вы не можете комментировать, т.к. вы не зарегистрированы.
    Gunslinger
    Counter-Strike Global OffensiveGunslinger
    Juri as Widowmaker (OW)
    Street Fighter VJuri as Widowmaker (OW)
    VCTF-Fortress
    Unreal Tournament 2004VCTF-Fortress
    1on1-Pack
    Unreal Tournament 20041on1-Pack

Время --------- ___ALL___ --------- : 0.22780 секунд