Half-Life и Adrenaline Gamer форум
http://aghl.ru/forum/

Player freeze
http://aghl.ru/forum/viewtopic.php?f=20&t=2143
Страница 1 из 1

Автор:  unnamed [ 05 май 2015, 17:18 ]
Заголовок сообщения:  Player freeze

Можно ли остановить игрока в произвольный момент вместе с текущей анимацией?
В общем, как при команде pause, но для конкретного игрока.
Еще надо будет предикт побороть, чтоб модель игрока остановилась в одном месте для всех игроков. Но, это уже потом буду решать.

Автор:  Lev [ 05 май 2015, 19:24 ]
Заголовок сообщения:  Re: Player freeze

Код:
   set_pev(id, pev_flags, pev(id, pev_flags) | FL_FROZEN);

Автор:  unnamed [ 05 май 2015, 19:34 ]
Заголовок сообщения:  Re: Player freeze

Пробовал. Анимация сбрасывается. Бегущий игрок выглядит стоящим после этого. А если прыжке, то еще сальто начинает крутить.

Автор:  Expade [ 05 май 2015, 20:59 ]
Заголовок сообщения:  Re: Player freeze

unnamed, сделать то, что написал Лев + дальше написать функцию, которая проигрывает определенную анимацию модели? (viewtopic.php?f=39&t=594)

Автор:  Lev [ 05 май 2015, 22:05 ]
Заголовок сообщения:  Re: Player freeze

Проблема, видимо, тут:
Код:
// Set the activity based on an event or current state
void CBasePlayer::SetAnimation( PLAYER_ANIM playerAnim )
{
   speed = pev->velocity.Length2D();
   if (pev->flags & FL_FROZEN)
   {
      speed = 0;
      playerAnim = PLAYER_IDLE;
   }
Как простой способ для теста - хукнуть хамом и снимать/ставить этот флаг игроку.
Или другой вариант, функция так или иначе меняет эти переменные на игроке:
Код:
      pev->gaitsequence = 0;
      pev->sequence      = animDesired;
      pev->frame         = 0;
   pev->animtime = gpGlobals->time;
   pev->framerate = 1.0;
         pev->effects |= EF_NOINTERP;
Можно попробовать их (какие-то из них) запоминать/выставлять в AddToFullPack.

Добавлено спустя 2 минуты 11 секунд:
А, нет, функция SetAnimation не виртуальная, хам не поможет.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/