Смена анимаций на моделе игрока

Статус
В этой теме нельзя размещать новые ответы.

fsn

Сообщения
10
Реакции
0
Ошибка
-
ОС
Windows
Amx Mod X
1.9.0
Билд
-
ReGamedll
-
Версия Metamod
-
Список метамодулей
-
Список плагинов
-
Автор плагина
-
Версия плагина
-
Исходный код
stock play_model_animation(id, sequence)
{
set_pev(id, pev_animtime, get_gametime())
set_pev(id, pev_framerate, 1.0)
set_pev(id, pev_sequence, sequence)
}
здравствуйте. пытаюсь запустить анимацию из модели игрока при использовании "способности". она работает, но только в прыжке или при атаке, а в моем же случаи мне нужно чтобы она проигрывалась пока я стою на месте или до любого определенного времени.
пробовал создать entity взяв идею из плагина CSO эмоций, в целом результат есть, но он меня полностью не устраивает.

есть ли возможность обойти проигрывание стандартных анимаций на моделе (по типу idle), чтобы в момент проигрывания другой анимации одна не перебивала другую?

ниже файл с реализацией показа анимаций с использованием entity, если кому нужно.
 
В этой теме было размещено решение! Перейти к решению.

Вложения

Сообщения
845
Реакции
521
Помог
13 раз(а)
set_member(iPlayer, m_flFlinchTime, get_gametime() + <время анимации>);
заблочит проигрывание анимации на игроке
15 Ноя 2023
btw раздел не тот
 
Сообщения
75
Реакции
82
Помог
6 раз(а)
Код:
Player_SetAnimation(iPlayer, "skill1_idle1");
Код:
// Thanks to KORD_12.7
stock Player_SetAnimation(const iPlayer, const szAnim[])
{
    #define ACT_RANGE_ATTACK1   28
    
    // Linux extra offsets
    #define extra_offset_player   5
    #define extra_offset_animating   4
    
    // CBaseAnimating
    #define m_flFrameRate      36
    #define m_flGroundSpeed      37
    #define m_flLastEventCheck   38
    #define m_fSequenceFinished   39
    #define m_fSequenceLoops   40
  
    // CBaseMonster
    #define m_Activity      73
    #define m_IdealActivity      74
    
    // CBasePlayer
    #define m_flLastAttackTime   220
    
    new iAnimDesired, Float: flFrameRate, Float: flGroundSpeed, bool: bLoops;
    
    if ((iAnimDesired = lookup_sequence(iPlayer, szAnim, flFrameRate, bLoops, flGroundSpeed)) == -1)
    {
        iAnimDesired = 0;
    }
    
    new Float: flGametime = get_gametime();
    
    set_pev(iPlayer, pev_frame, 0.0);
    set_pev(iPlayer, pev_framerate, 1.0);
    set_pev(iPlayer, pev_animtime, flGametime );
    set_pev(iPlayer, pev_sequence, iAnimDesired);
    
    set_pdata_int(iPlayer, m_fSequenceLoops, bLoops, extra_offset_animating);
    set_pdata_int(iPlayer, m_fSequenceFinished, 0, extra_offset_animating);
    
    set_pdata_float(iPlayer, m_flFrameRate, flFrameRate, extra_offset_animating);
    set_pdata_float(iPlayer, m_flGroundSpeed, flGroundSpeed, extra_offset_animating);
    set_pdata_float(iPlayer, m_flLastEventCheck, flGametime , extra_offset_animating);
    
    set_pdata_int(iPlayer, m_Activity, ACT_RANGE_ATTACK1, extra_offset_player);
    set_pdata_int(iPlayer, m_IdealActivity, ACT_RANGE_ATTACK1, extra_offset_player);   
    set_pdata_float(iPlayer, m_flLastAttackTime, flGametime , extra_offset_player);
}
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу