-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
What the fuck is it for?
I'll make it short. You have these top lines in your legendware
we also switch to the update_clientside_animation function
And what do we see?
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
IF ANYTHING, THIS IS NOT A FULL CODE BECAUSE THE LW HAS A TOP HOOK!!!!
I'll make it short. You have these top lines in your legendware
C++:
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
And what do we see?
C++:
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);
}
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++:
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!!!!