acttable_t
acttable_t
дефайны транслируются между общими activities генерируя в PlayerAnimState объект в одном экземпляре конкретного оружия.
Например, ACT_MP_STAND_IDLE
может быть отправлен как ACT_DOD_STAND_AIM_RIFLE
для одного оружия.
Если оружие не имеет ActTable, или имеет неполную таблицу, вы скорее всего увидите вашу модель оружия с "jesus pose" анимацией в некоторых случаях.
Bug:
CBaseCombatWeapon::ActivityOverride()
, с выполнением в ActTable, не вызывается на базовом коде. Смотрите m_PlayerAnimState#Implementation чтобы это исправить.Реализация
Добавте DECLARE_ACTTABLE()
в оба, клиент и сервер, класса. Затем, в shared code:
acttable_t CMyWeapon::m_acttable[] =
{
{ ACT_MP_STAND_IDLE, ACT_MYMOD_STAND_AIM_MYWEAPON, false },
{ ACT_MP_CROUCH_IDLE, ACT_MYMOD_CROUCH_AIM_MYWEAPON, false },
{ ACT_MP_RUN, ACT_MYMOD_RUN_MYWEAPON, false },
// и т.д.
};
IMPLEMENT_ACTTABLE( CMyWeapon );
Третье значение показывает будет ли использоваться анимация или нет.
Todo: Запомните это.