Half-Life и Adrenaline Gamer форум

Всё об игре в Халф-Лайф и АГ
Текущее время: 29 мар 2024, 11:28

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Player freeze
СообщениеДобавлено: 05 май 2015, 17:18 
Не в сети
Аватара пользователя
Зарегистрирован:
01 июн 2010, 23:25
Последнее посещение:
05 июл 2018, 16:02
Сообщения: 1035
Можно ли остановить игрока в произвольный момент вместе с текущей анимацией?
В общем, как при команде pause, но для конкретного игрока.
Еще надо будет предикт побороть, чтоб модель игрока остановилась в одном месте для всех игроков. Но, это уже потом буду решать.

_________________
Изображение


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Player freeze
СообщениеДобавлено: 05 май 2015, 19:24 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
26 мар 2024, 21:42
Сообщения: 6864
Код:
   set_pev(id, pev_flags, pev(id, pev_flags) | FL_FROZEN);


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Player freeze
СообщениеДобавлено: 05 май 2015, 19:34 
Не в сети
Аватара пользователя
Зарегистрирован:
01 июн 2010, 23:25
Последнее посещение:
05 июл 2018, 16:02
Сообщения: 1035
Пробовал. Анимация сбрасывается. Бегущий игрок выглядит стоящим после этого. А если прыжке, то еще сальто начинает крутить.

_________________
Изображение


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Player freeze
СообщениеДобавлено: 05 май 2015, 20:59 
Не в сети
Аватара пользователя
Зарегистрирован:
15 апр 2011, 22:26
Последнее посещение:
20 май 2018, 00:43
Сообщения: 164
Откуда: Астрахань
unnamed, сделать то, что написал Лев + дальше написать функцию, которая проигрывает определенную анимацию модели? (viewtopic.php?f=39&t=594)

_________________
Изображение


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Player freeze
СообщениеДобавлено: 05 май 2015, 22:05 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
26 мар 2024, 21:42
Сообщения: 6864
Проблема, видимо, тут:
Код:
// 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 не виртуальная, хам не поможет.


Вернуться к началу
 Профиль 
  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB