Проблема, видимо, тут:
Код:
// 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 не виртуальная, хам не поможет.