Гайд Fixing update_clientside_animation

Забаненный
Забаненный
Статус
Оффлайн
Регистрация
13 Июн 2022
Сообщения
10
Реакции
2
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
What the fuck is it for?

I'll make it short. You have these top lines in your legendware
C++:
Expand Collapse Copy
        g_ctx.globals.updating_animation = true; // including update player animation
                e->update_clientside_animation(); // including update client side animation
                g_ctx.globals.updating_animation = false;  // turning off update player animation
we also switch to the update_clientside_animation function
And what do we see?
C++:
Expand Collapse Copy
void player_t::update_clientside_animation()
{
    if (!this) //-V704
        return;

    auto animstate = get_animation_state();

    if (!animstate)
        return;

    if (animstate->m_iLastClientSideAnimationUpdateFramecount >= m_globals()->m_framecount) //-V614
        animstate->m_iLastClientSideAnimationUpdateFramecount = m_globals()->m_framecount - 1;

    using Fn = void(__thiscall*)(void*);
    call_virtual<Fn>(this, g_ctx.indexes.at(13))(this);
}
Is there anything confusing to you?

If not, look.
First of all, this check is not in the game for a very long time m_iLastClientSideAnimationUpdateFramecount .
Secondly we need to turn on and off m_bClientSideAnimation
And it's not here.
I give you my version with the notes and modifications
C++:
Expand Collapse Copy
void player_t::update_clientside_animation() // maybe have anti-paste
{
    if (!this || !get_animation_state() || m_clientstate()->iDeltaTick == -1) //check
        return;// Repeat

    //if (get_animation_state()->m_iLastClientSideAnimationUpdateFramecount == m_globals()->m_framecount)  // check source cs
    //    get_animation_state()->m_iLastClientSideAnimationUpdateFramecount = m_globals()->m_framecount - 1; // check source cs

    if (this == g_ctx.local()) {
        m_flThirdpersonRecoil() = m_aimPunchAngleScaled().x;
    }
    else {
        m_iEFlags() &= ~(EFL_DIRTY_ABSVELOCITY | EFL_DIRTY_ABSTRANSFORM); // set the flag
    }

    if (get_animation_state()->m_flLastClientSideAnimationUpdateTime == m_globals()->m_curtime) // enable brain
        get_animation_state()->m_flLastClientSideAnimationUpdateTime = m_globals()->m_curtime + TICKS_TO_TIME(1); // enable brain

    g_ctx.globals.updating_animation = true; // include update player animation
    this->m_bClientSideAnimation() = true;   // include update client side animation

    auto previous_weapon = get_animation_state() ? get_animation_state()->m_pLastBoneSetupWeapon : nullptr;

    if (previous_weapon)
        get_animation_state()->m_pLastBoneSetupWeapon = get_animation_state()->m_pActiveWeapon;

    using Fn = void(__thiscall*)(void*);
    call_virtual<Fn>(this, g_ctx.indexes.at(13))(this); // call to index

    g_ctx.globals.updating_animation = false; //turn off
}


IF ANYTHING, THIS IS NOT A FULL CODE BECAUSE THE LW HAS A TOP HOOK!!!!
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
What the fuck is it for?

I'll make it short. You have these top lines in your legendware
Код:
Expand Collapse Copy
        g_ctx.globals.updating_animation = true; // including update player animation
                e->update_clientside_animation(); // including update client side animation
                g_ctx.globals.updating_animation = false;  // turning off update player animation
we also switch to the update_clientside_animation function
And what do we see?
Код:
Expand Collapse Copy
void player_t::update_clientside_animation()
{
    if (!this) //-V704
        return;

    auto animstate = get_animation_state();

    if (!animstate)
        return;

    if (animstate->m_iLastClientSideAnimationUpdateFramecount >= m_globals()->m_framecount) //-V614
        animstate->m_iLastClientSideAnimationUpdateFramecount = m_globals()->m_framecount - 1;

    using Fn = void(__thiscall*)(void*);
    call_virtual<Fn>(this, g_ctx.indexes.at(13))(this);
}
Is there anything confusing to you?

If not, look.
First of all, this check is not in the game for a very long time m_iLastClientSideAnimationUpdateFramecount .
Secondly we need to turn on and off m_bClientSideAnimation
And it's not here.
I give you my version with the notes and modifications
Код:
Expand Collapse Copy
void player_t::update_clientside_animation() // maybe have anti-paste
{
    if (!this || !get_animation_state() || m_clientstate()->iDeltaTick == -1) //check
        return;// Repeat

    //if (get_animation_state()->m_iLastClientSideAnimationUpdateFramecount == m_globals()->m_framecount)  // check source cs
    //    get_animation_state()->m_iLastClientSideAnimationUpdateFramecount = m_globals()->m_framecount - 1; // check source cs

    if (this == g_ctx.local()) {
        m_flThirdpersonRecoil() = m_aimPunchAngleScaled().x;
    }
    else {
        m_iEFlags() &= ~(EFL_DIRTY_ABSVELOCITY | EFL_DIRTY_ABSTRANSFORM); // set the flag
    }

    if (get_animation_state()->m_flLastClientSideAnimationUpdateTime == m_globals()->m_curtime) // enable brain
        get_animation_state()->m_flLastClientSideAnimationUpdateTime = m_globals()->m_curtime + TICKS_TO_TIME(1); // enable brain

    g_ctx.globals.updating_animation = true; // include update player animation
    this->m_bClientSideAnimation() = true;   // include update client side animation

    auto previous_weapon = get_animation_state() ? get_animation_state()->m_pLastBoneSetupWeapon : nullptr;

    if (previous_weapon)
        get_animation_state()->m_pLastBoneSetupWeapon = get_animation_state()->m_pActiveWeapon;

    using Fn = void(__thiscall*)(void*);
    call_virtual<Fn>(this, g_ctx.indexes.at(13))(this); // call to index

    g_ctx.globals.updating_animation = false; //turn off
}


IF ANYTHING, THIS IS NOT A FULL CODE BECAUSE THE LW HAS A TOP HOOK!!!!
u dont need abs transform
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
  • Мне нравится
Реакции: Mayz
ну и пиздец блять
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
What the fuck is it for?

I'll make it short. You have these top lines in your legendware
Код:
Expand Collapse Copy
        g_ctx.globals.updating_animation = true; // including update player animation
                e->update_clientside_animation(); // including update client side animation
                g_ctx.globals.updating_animation = false;  // turning off update player animation
we also switch to the update_clientside_animation function
And what do we see?
Код:
Expand Collapse Copy
void player_t::update_clientside_animation()
{
    if (!this) //-V704
        return;

    auto animstate = get_animation_state();

    if (!animstate)
        return;

    if (animstate->m_iLastClientSideAnimationUpdateFramecount >= m_globals()->m_framecount) //-V614
        animstate->m_iLastClientSideAnimationUpdateFramecount = m_globals()->m_framecount - 1;

    using Fn = void(__thiscall*)(void*);
    call_virtual<Fn>(this, g_ctx.indexes.at(13))(this);
}
Is there anything confusing to you?

If not, look.
First of all, this check is not in the game for a very long time m_iLastClientSideAnimationUpdateFramecount .
Secondly we need to turn on and off m_bClientSideAnimation
And it's not here.
I give you my version with the notes and modifications
Код:
Expand Collapse Copy
void player_t::update_clientside_animation() // maybe have anti-paste
{
    if (!this || !get_animation_state() || m_clientstate()->iDeltaTick == -1) //check
        return;// Repeat

    //if (get_animation_state()->m_iLastClientSideAnimationUpdateFramecount == m_globals()->m_framecount)  // check source cs
    // get_animation_state()->m_iLastClientSideAnimationUpdateFramecount = m_globals()->m_framecount - 1; // check source cs

    if (this == g_ctx.local()) {
        m_flThirdpersonRecoil() = m_aimPunchAngleScaled().x;
    }
    else {
        m_iEFlags() &= ~(EFL_DIRTY_ABSVELOCITY | EFL_DIRTY_ABSTRANSFORM); // set the flag
    }

    if (get_animation_state()->m_flLastClientSideAnimationUpdateTime == m_globals()->m_curtime) // enable brain
        get_animation_state()->m_flLastClientSideAnimationUpdateTime = m_globals()->m_curtime + TICKS_TO_TIME(1); // enable brain

    g_ctx.globals.updating_animation = true; // include update player animation
    this->m_bClientSideAnimation() = true; // include update client side animation

    auto previous_weapon = get_animation_state() ? get_animation_state()->m_pLastBoneSetupWeapon : nullptr;

    if (previous_weapon)
        get_animation_state()->m_pLastBoneSetupWeapon = get_animation_state()->m_pActiveWeapon;

    using Fn = void(__thiscall*)(void*);
    call_virtual<Fn>(this, g_ctx.indexes.at(13))(this); // call to index

    g_ctx.globals.updating_animation = false; // turn off
}


IF ANYTHING, THIS IS NOT A FULL CODE BECAUSE THE LW HAS A TOP HOOK!!!!

Whats the defintion for this m_aimPunchAngleScaled?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
m_player->m_iEFlags() &= ~0x1000u;
Oh no, using offset is wrong e->m_iEFlags() &= ~EFL_DIRTY_ABSVELOCITY;
this correct
Whats the defintion for this m_aimPunchAngleScaled?
sorry i stupid

Код:
Expand Collapse Copy
Vector player_t::m_aimPunchAngleScaled()
{
    if (!this)
        return ZERO;

    static auto weapon_recoil_scale = m_cvar()->FindVar(crypt_str("weapon_recoil_scale"));
    const auto m_aim_punch_angle = m_aimPunchAngle();

    return m_aim_punch_angle * weapon_recoil_scale->GetFloat();
}
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Oh no, using offset is wrong e->m_iEFlags() &= ~EFL_DIRTY_ABSVELOCITY;
this correct

sorry i stupid

Код:
Expand Collapse Copy
Vector player_t::m_aimPunchAngleScaled()
{
    if (!this)
        return ZERO;

    static auto weapon_recoil_scale = m_cvar()->FindVar(crypt_str("weapon_recoil_scale"));
    const auto m_aim_punch_angle = m_aimPunchAngle();

    return m_aim_punch_angle * weapon_recoil_scale->GetFloat();
}
Why wrong? This offset is correct. 0x1000 -> EFL_DIRTY_ABSVELOCITY
 
ты русскоговорящий, отвечай на югейме русскоговорящим по русски, это кринжово когда пытаются выставить анг как мейн язык
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Так это ебанная кринжатина, а не DO NOT UNDERSTAND ANYTHING
Чём кринжатина?
ты русскоговорящий, отвечай на югейме русскоговорящим по русски, это кринжово когда пытаются выставить анг как мейн язык
да,я знаю.
я не хочу говорить на руском так как руские почти все токсики -_-
 
да,я знаю.
я не хочу говорить на руском так как руские почти все токсики -_-
чооо чел ты как связано то что чел токсик а ты из-за него не будешь на его языке базарить? 0____0
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
чооо чел ты как связано то что чел токсик а ты из-за него не будешь на его языке базарить? 0____0
вот-так как то типо да

Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.

 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Так это же был мемный вброс что ластапдейт фрейма в игре уже нет, или это продолжение того прикола?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу