CBasePlayer_SetAnimation Usage?

Въведение в PAWN скриптинга и поддръжка за същия.
Аватар
ghostcapgaming
Извън линия
Foreigner
Foreigner
Мнения: 5
Регистриран на: 05 Мар 2021, 04:11

CBasePlayer_SetAnimation Usage?

Мнение от ghostcapgaming » 17 Апр 2021, 12:19

Hello, I want to use this function from reapi but I don't know how use it.

Can someone explain me how to use it and also provide a sample code?
Also I want to know, if this stock is good or not? Because I use this recently in my sword plugin and I want to play the player animation that I add in my model and it doesn't work, I don't know why.

Код за потвърждение: Избери целия код

#define linux_diff_animating 4
#define linux_diff_player 5
#define m_flLastAttackTime 220
#define m_fSequenceLoops 40
#define m_fSequenceFinished 39
#define m_flFrameRate 36
#define m_flGroundSpeed 37
#define m_flLastEventCheck 38
#define m_IdealActivity 74
#define m_Activity 73
#define ACT_RANGE_ATTACK1 28

stock UTIL_PlayerAnimation(pPlayer, const szAnimation[])
{
    new iAnimDesired, Float:flFrameRate, Float:flGroundSpeed, bool:bLoops;
    if((iAnimDesired = lookup_sequence(pPlayer, szAnimation, flFrameRate, bLoops, flGroundSpeed)) == -1) iAnimDesired = 0;
    new Float:flGametime = get_gametime();
    set_pev(pPlayer, pev_frame, 0.0);
    set_pev(pPlayer, pev_framerate, 1.0);
    set_pev(pPlayer, pev_animtime, flGametime); // fAnimTime
    set_pev(pPlayer, pev_sequence, iAnimDesired);
    set_pdata_int(pPlayer, m_fSequenceLoops, bLoops, linux_diff_animating);
    set_pdata_int(pPlayer, m_fSequenceFinished, 0, linux_diff_animating);
    set_pdata_float(pPlayer, m_flFrameRate, flFrameRate, linux_diff_animating);
    set_pdata_float(pPlayer, m_flGroundSpeed, flGroundSpeed, linux_diff_animating);
    set_pdata_float(pPlayer, m_flLastEventCheck, flGametime, linux_diff_animating);
    set_pdata_int(pPlayer, m_Activity, ACT_RANGE_ATTACK1, linux_diff_player);
    set_pdata_int(pPlayer, m_IdealActivity, ACT_RANGE_ATTACK1, linux_diff_player);
    set_pdata_float(pPlayer, m_flLastAttackTime, flGametime, linux_diff_player);
} 

Аватар
mi0
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 534
Регистриран на: 09 Дек 2016, 22:02
Се отблагодари: 97 пъти
Получена благодарност: 120 пъти
Обратна връзка:

CBasePlayer_SetAnimation Usage?

Мнение от mi0 » 17 Апр 2021, 18:04

From what I can see SetAnimation is called in game to change the animation of entities when needed. You can use rg_set_animation to set players animation to anything you want. You will also have to deal with gamedll resetting the animation by either forcing it to stop(handling it in RG_CBasePlayer_SetAnimation) or resetting it yourself again.
Heres the PLAYER_ANIM enum required as a second parameter for rg_set_animation.

Код за потвърждение: Избери целия код

enum PLAYER_ANIM
{
    PLAYER_IDLE,
    PLAYER_WALK,
    PLAYER_JUMP,
    PLAYER_SUPERJUMP,
    PLAYER_DIE,
    PLAYER_ATTACK1,
    PLAYER_ATTACK2,
    PLAYER_FLINCH,
    PLAYER_LARGE_FLINCH,
    PLAYER_RELOAD,
    PLAYER_HOLDBOMB
};
aka kurdokoleno
Catch Mod - 87.121.112.232:27021

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Скриптиране”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта