From 7800db47f2cd00c4c01b002d85ec2c4c61e578e4 Mon Sep 17 00:00:00 2001 From: navewindre Date: Fri, 14 Sep 2018 16:38:28 +0200 Subject: s --- internal_rewrite/c_base_player.cpp | 18 +++++++++--------- internal_rewrite/ragebot_antiaim.cpp | 5 +---- internal_rewrite/update_clientside_animation.cpp | 22 ++++++++-------------- 3 files changed, 18 insertions(+), 27 deletions(-) diff --git a/internal_rewrite/c_base_player.cpp b/internal_rewrite/c_base_player.cpp index 68e2cf2..904fe32 100644 --- a/internal_rewrite/c_base_player.cpp +++ b/internal_rewrite/c_base_player.cpp @@ -508,15 +508,15 @@ void c_base_player::cache_anim_data( ) { int idx = ce( )->GetIndex( ); auto& animdata = sm_animdata[ idx ]; - util::memcpy( animdata.m_poseparams.data( ), + memcpy( &animdata.m_poseparams, m_flPoseParameter( ), sizeof( float ) * 24 ); - util::memcpy( animdata.m_animlayers.data( ), + memcpy( &animdata.m_animlayers, m_AnimOverlay( ).GetElements( ), sizeof( C_AnimationLayer ) * 13 ); - util::memcpy( animdata.m_bones, + memcpy( animdata.m_bones, m_CachedBoneData( ).GetElements( ), sizeof( matrix3x4 ) * m_CachedBoneData( ).GetSize( ) ); } @@ -525,17 +525,17 @@ void c_base_player::restore_anim_data( bool layers ) { int idx = ce( )->GetIndex( ); auto& animdata = sm_animdata[ idx ]; - util::memcpy( m_flPoseParameter( ), - animdata.m_poseparams.data( ), + memcpy( m_flPoseParameter( ), + &animdata.m_poseparams, sizeof( float ) * 24 ); if( layers ) { - util::memcpy( m_AnimOverlay( ).GetElements( ), - animdata.m_animlayers.data( ), + memcpy( m_AnimOverlay( ).GetElements( ), + &animdata.m_animlayers, sizeof( C_AnimationLayer ) * 13 ); } - util::memcpy( animdata.m_bones, + memcpy( animdata.m_bones, m_CachedBoneData( ).GetElements( ), sizeof( matrix3x4 ) * m_CachedBoneData( ).GetSize( ) ); } @@ -581,7 +581,7 @@ void c_base_player::do_ent_interpolation( bool reset ) { float update_delta = anim_data->m_simtime - anim_data->m_last_simtime; float update_lerp = std::clamp( update_delta - lerp, 0.f, 1.f ); - if( !update_delta ) + if( update_delta < TICK_INTERVAL( ) ) return; lerp = std::clamp( lerp, 0.f, update_delta ); diff --git a/internal_rewrite/ragebot_antiaim.cpp b/internal_rewrite/ragebot_antiaim.cpp index c9edafa..a80ecda 100644 --- a/internal_rewrite/ragebot_antiaim.cpp +++ b/internal_rewrite/ragebot_antiaim.cpp @@ -123,11 +123,8 @@ namespace features real_angle.x = pitch; } - - g_ctx.m_local->get_animstate( )->m_iLastClientSideAnimationUpdateFramecount -= 1; - + g_ctx.m_local->get_animstate( )->update( real_angle.y, real_angle.x ); - g_ctx.m_local->cache_anim_data( ); g_csgo.m_globals->m_curtime = backup_curtime; g_csgo.m_globals->m_frametime = backup_frametime; diff --git a/internal_rewrite/update_clientside_animation.cpp b/internal_rewrite/update_clientside_animation.cpp index e7889c1..5dc14e6 100644 --- a/internal_rewrite/update_clientside_animation.cpp +++ b/internal_rewrite/update_clientside_animation.cpp @@ -24,26 +24,20 @@ void __fastcall hooks::update_clientside_animation( void* ecx_, void* edx_ ) { if( last_spawntime != ent->m_flSpawnTime( ) ) last_spawntime = ent->m_flSpawnTime( ); - return old_func( ecx_, edx_ ); + old_func( ecx_, edx_ ); + ent->cache_anim_data( ); + + return; } last_update = g_csgo.m_globals->m_curtime; - float backup_curtime = g_csgo.m_globals->m_curtime; - float backup_frametime = g_csgo.m_globals->m_frametime; - - g_csgo.m_globals->m_curtime = g_ctx.pred_time( ); - g_csgo.m_globals->m_frametime = TICK_INTERVAL( ); - - ent->get_animstate( )->m_iLastClientSideAnimationUpdateFramecount = g_csgo.m_globals->m_framecount; - //ent->get_animstate( )->m_flLastClientSideAnimationUpdateTime = g_csgo.m_globals->m_curtime; - old_func( ecx_, edx_ ); - - g_csgo.m_globals->m_curtime = backup_curtime; - g_csgo.m_globals->m_frametime = backup_frametime; + if( g_cheat.m_lagmgr.get_choked( ) == 1 ) + ent->cache_anim_data( ); if( !first_update ) { - //*( byte* )( uintptr_t( ent ) + 0x270 ) = 0; + ent->restore_anim_data( true ); + ent->set_abs_angles( vec3_t( 0, ent->get_animstate( )->m_flGoalFeetYaw, 0 ) ); bool backup = ent->get_animstate( )->m_bOnGround; ent->get_animstate( )->m_bOnGround = false; -- cgit v1.2.3