Submodel animation have delay

Сообщения
96
Реакции
69
Помог
1 раз(а)
Здравствуйте, у меня есть это в моем плагине, но он имеет некоторую задержку при переходе от одной сущности к другой.
Смотрите задержку в видео.

Зарегистрированное событие:
Код:
RegisterHam(Ham_Item_Deploy, g_szWeaponEntName[i], "Ham_Item_Deploy_Post", 1);
Остальной код с проблемами:
Код:
public Ham_Item_Deploy_Post(ent)
{
    static iPlayer, weapon; iPlayer = get_pdata_cbase(ent, 41, 4);
    
    if (!is_user_alive(iPlayer)) return HAM_IGNORED;
    
    //set_pev(iPlayer, pev_body, iBodyIndex[iPlayer]);
    set_task(0.1, "DeployWeaponSwitch", iPlayer);    //Set with a bit delay to prevent bug, m_flLastEventCheck need delay too
}

public DeployWeaponSwitch(id)
{
    if (!is_user_alive(id)) return PLUGIN_CONTINUE;
    
    new weapon = get_pdata_cbase(id, 373, 5);
    new weaponid = cs_get_weapon_id(weapon);
    new userskin = g_iUserSelectedSkin[id][weaponid];

    if (!weapon || !pev_valid(weapon)) return;
    
    new model[48];
    if (userskin > -1 && g_bLogged[id])
    {
        ArrayGetString(g_aSkinModel, userskin, model, 47);
        set_pev(id, pev_viewmodel2, model);
        iBodyIndex[id] = ArrayGetCell(g_aSkinSubModel, userskin);
        if (g_bSkinHasModelP[userskin])
        {
            ArrayGetString(g_aSkinModelP, userskin, model, 47);
            set_pev(id, pev_weaponmodel2, model);
        }
    }
    if (g_szDefaultSkinModel[weaponid][0] && userskin == -1)
    {
        set_pev(id, pev_viewmodel2, g_szDefaultSkinModel[weaponid]);
        if (0 < strlen(g_szDefaultPSkinModel[weaponid][0]))
        {
            set_pev(id, pev_weaponmodel2, g_szDefaultPSkinModel[weaponid]);
        }
    }
    set_pdata_float(weapon, m_flLastEventCheck, get_gametime() + 0.001, XO_WEAPON);    //0.001 is good enough
    
    SendWeaponAnim(id, iBodyIndex[id], IDLE_ANIM);    //Slow message
}
Video: YouTube

P.S. Если я попробую плагин, который сделает это, проблем не будет, проблема только в моем коде.
 
Сообщения
2,491
Реакции
2,791
Помог
61 раз(а)
Если я верно понял, то у вас проблема из-за кода. Клиент начинает рисовать стандартные анимации основываясь на значении m_flTimeWeaponIdle. В то же время вы отправляете свою анимацию. А также вполне возможное наложение set-task друг на друга. В данном случае нужно в корне менять код.
 

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

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