From 7cd2571c16edf9d6b442a0093ed0d9fb2d2ba1d1 Mon Sep 17 00:00:00 2001 From: navewindre Date: Mon, 26 Nov 2018 13:43:26 +0100 Subject: dffsd --- internal_rewrite/c_base_player.cpp | 4 +--- internal_rewrite/c_base_player.hpp | 1 + internal_rewrite/context.hpp | 1 + internal_rewrite/create_move.cpp | 21 ++++++++++++++++----- internal_rewrite/hooks.cpp | 7 +++++++ internal_rewrite/hooks.hpp | 3 +++ internal_rewrite/internal_rewrite.vcxproj | 1 + internal_rewrite/internal_rewrite.vcxproj.filters | 3 +++ internal_rewrite/packet_start.cpp | 23 +++++++++++++++++++++++ internal_rewrite/ragebot.cpp | 11 +++++++++++ internal_rewrite/ragebot.hpp | 1 + internal_rewrite/ragebot_antiaim.cpp | 2 -- internal_rewrite/ragebot_lagcomp.cpp | 6 ++---- 13 files changed, 70 insertions(+), 14 deletions(-) create mode 100644 internal_rewrite/packet_start.cpp diff --git a/internal_rewrite/c_base_player.cpp b/internal_rewrite/c_base_player.cpp index a4cdb7e..11882ea 100644 --- a/internal_rewrite/c_base_player.cpp +++ b/internal_rewrite/c_base_player.cpp @@ -846,9 +846,6 @@ void c_base_player::fix_animations( bool reset, bool resolver_change ) { feet_yaw += 360.f; get_animstate( )->m_flGoalFeetYaw = get_animstate( )->m_flCurrentFeetYaw = feet_yaw; - - m_flPoseParameter( )[ BODY_YAW ] = std::clamp( ( lby_delta + 180.f ) / 360.f, 0.f, 1.f ); - m_flPoseParameter( )[ LEAN_YAW ] = std::clamp( ( lby_delta + 180.f ) / 360.f, 0.f, 1.f ); } get_animstate( )->m_flFeetYawRate = 0.f; @@ -919,6 +916,7 @@ void c_base_player::fix_animations( bool reset, bool resolver_change ) { get_animstate( )->m_flStopToFullRunningFraction = fraction; } + sm_animdata[ idx ].m_last_animtime = get_animstate( )->m_flLastClientSideAnimationUpdateTime; get_animstate( )->update( eye_angles.y, eye_angles.x ); m_AnimOverlay( ).GetElements( )[ 6 ].m_flPrevCycle = m_AnimOverlay( ).GetElements( )[ 6 ].m_flCycle; diff --git a/internal_rewrite/c_base_player.hpp b/internal_rewrite/c_base_player.hpp index 876b65b..30bafde 100644 --- a/internal_rewrite/c_base_player.hpp +++ b/internal_rewrite/c_base_player.hpp @@ -243,6 +243,7 @@ struct ent_animdata_t { float m_adjust_rate; float m_adjust_cycle; bool m_is_stopping; + float m_last_animtime; }; class c_base_player { diff --git a/internal_rewrite/context.hpp b/internal_rewrite/context.hpp index 03af09f..27f1a42 100644 --- a/internal_rewrite/context.hpp +++ b/internal_rewrite/context.hpp @@ -75,6 +75,7 @@ public: int m_last_shot; std::array< shot_data_t, 128 > m_shot_data; + std::vector< int > m_cmd_numbers; private: std::deque< user_cmd_t > m_snapshot; }; diff --git a/internal_rewrite/create_move.cpp b/internal_rewrite/create_move.cpp index 1defc78..097c7f4 100644 --- a/internal_rewrite/create_move.cpp +++ b/internal_rewrite/create_move.cpp @@ -42,9 +42,6 @@ bool __fastcall hooks::create_move( void* ecx_, void* edx_, float input_sample_f is_switching_weapon = true; } - //g_csgo.m_input( )->CreateMove( sequence_number, input_sample_time, active ); - - if( ret ) g_csgo.m_engine( )->SetViewAngles( ucmd->m_viewangles ); @@ -111,10 +108,24 @@ bool __fastcall hooks::create_move( void* ecx_, void* edx_, float input_sample_f g_ctx.on_cmove_end( ucmd ); auto cl = g_csgo.m_global_state->get_client_state( ); - if( !g_cheat.m_lagmgr.get_state( ) ) - cl->m_last_acknowledged_cmd; + if( g_cheat.m_lagmgr.get_state( ) ) { + //g_ctx.m_cmd_numbers.push_back( ucmd->m_cmd_nr ); + } + else { + /*int choked = cl->m_netchannel->m_nChokedPackets; + printf( "choked: %d\n", choked ); + + cl->m_netchannel->m_nChokedPackets = 0; + + send_datagram_o( cl->m_netchannel, 0, 0 ); + + cl->m_netchannel->m_nOutSequenceNr--; + cl->m_netchannel->m_nChokedPackets = choked;*/ + } g_cheat.m_ragebot.m_antiaim->on_runcommand( ); + + } else { g_ctx.reset_shot_queue( ); diff --git a/internal_rewrite/hooks.cpp b/internal_rewrite/hooks.cpp index 3aedcb1..eb85de1 100644 --- a/internal_rewrite/hooks.cpp +++ b/internal_rewrite/hooks.cpp @@ -32,6 +32,7 @@ namespace hooks { decltype( &on_screen_size_changed ) on_screen_size_changed_o; decltype( &play_sound ) play_sound_o; decltype( &convar_getint ) convar_getint_o; + decltype( &packet_start ) packet_start_o; } hooks::c_netvar_proxy hooks::lby_proxy; @@ -80,6 +81,11 @@ bool hooks::commit( factory::c_csgo* instance ) { draw_model_execute_o = d->create_hook( &hooks::draw_model_execute, instance->m_model_render->get_old_function< void* >( 21 ) ); scene_end_o = d->create_hook( &hooks::scene_end, instance->m_render_view->get_old_function< void* >( 9 ) ); get_screen_size_o = d->create_hook( &hooks::get_screen_size, instance->m_surface->get_old_function< void* >( 44 ) ); + + //auto packet_start = pattern::first_code_match< void* >( instance->m_engine.dll( ), xors( "55 8B EC 8B 45 08 89 81 ? ? ? ? 8B 45 0C 89 81 ? ? ? ? 5D C2 08 00" ) ); + + //packet_start_o = d->create_hook( &::hooks::packet_start, packet_start ); + on_screen_size_changed_o = d->create_hook( &hooks::on_screen_size_changed, instance->m_surface->get_old_function< void* >( 116 ) ); play_sound_o = d->create_hook( &hooks::play_sound, instance->m_surface->get_old_function< void* >( 82 ) ); material_system_o = d->create_hook( &hooks::material_system, instance->m_mat_system->get_old_function< void* >( 21 ) ); @@ -89,6 +95,7 @@ bool hooks::commit( factory::c_csgo* instance ) { begin_lock_o = d->create_hook( &hooks::begin_lock, instance->m_mdl_cache->get_old_function< void* >( 33 ) ); end_lock_o = d->create_hook( &hooks::end_lock, instance->m_mdl_cache->get_old_function< void* >( 34 ) ); + auto update_clientside_anim = pattern::first_code_match< void* >( instance->m_chl.dll( ), xors( "55 8B EC 51 56 8B F1 80 BE ? ? ? ? ? 74 36" ) ); update_clientside_animation_o = d->create_hook( &hooks::update_clientside_animation, update_clientside_anim ); diff --git a/internal_rewrite/hooks.hpp b/internal_rewrite/hooks.hpp index 8911453..ab28545 100644 --- a/internal_rewrite/hooks.hpp +++ b/internal_rewrite/hooks.hpp @@ -99,6 +99,9 @@ namespace hooks void __fastcall play_sound( void* ecx_, void* edx_, const char* name ); extern decltype( &play_sound ) play_sound_o; + void __fastcall packet_start( void* ecx, void* edx, int in_seq, int out_ack ); + extern decltype( &packet_start ) packet_start_o; + int __fastcall cl_csm_shadows_get_int( void* ecx_, void* edx_ ); int __fastcall debug_show_spread_get_int( void* ecx_, void* edx_ ); int __fastcall net_showfragments_get_int( void* ecx_, void* edx_ ); diff --git a/internal_rewrite/internal_rewrite.vcxproj b/internal_rewrite/internal_rewrite.vcxproj index 728484c..e961825 100644 --- a/internal_rewrite/internal_rewrite.vcxproj +++ b/internal_rewrite/internal_rewrite.vcxproj @@ -430,6 +430,7 @@ + diff --git a/internal_rewrite/internal_rewrite.vcxproj.filters b/internal_rewrite/internal_rewrite.vcxproj.filters index 977cc39..a871845 100644 --- a/internal_rewrite/internal_rewrite.vcxproj.filters +++ b/internal_rewrite/internal_rewrite.vcxproj.filters @@ -265,6 +265,9 @@ hooks + + hooks + diff --git a/internal_rewrite/packet_start.cpp b/internal_rewrite/packet_start.cpp new file mode 100644 index 0000000..b3aa103 --- /dev/null +++ b/internal_rewrite/packet_start.cpp @@ -0,0 +1,23 @@ +#include "hooks.hpp" +#include "context.hpp" + +void __fastcall hooks::packet_start( void* ecx, void* edx, int in_seq, int out_ack ) { + if( !g_ctx.run_frame( ) || !g_ctx.m_local->is_valid( ) ) { + *( int* )( uintptr_t( ecx ) + 0x114 ) = in_seq; + *( int* )( uintptr_t( ecx ) + 0x4cb4 ) = out_ack; + } + + for( auto cmd_number = g_ctx.m_cmd_numbers.begin( ); cmd_number != g_ctx.m_cmd_numbers.end( ); ) { + if( *cmd_number == out_ack ) { + auto cl = ( uintptr_t )( ecx ); + + *( int* )( cl + 0x114 ) = in_seq; + *( int* )( cl + 0x4cb4 ) = out_ack; + + g_ctx.m_cmd_numbers.erase( cmd_number ); + return; + } + + cmd_number++; + } +} \ No newline at end of file diff --git a/internal_rewrite/ragebot.cpp b/internal_rewrite/ragebot.cpp index ac19504..4a85078 100644 --- a/internal_rewrite/ragebot.cpp +++ b/internal_rewrite/ragebot.cpp @@ -454,6 +454,17 @@ namespace features vec3_t vel = g_ctx.m_local->m_vecVelocity( ); float speed = vel.length2d( ); + if( g_settings.rage.active->m_auto_stop == 1 || g_settings.rage.active->m_auto_stop == 4 ) { + auto wep = g_ctx.m_local->get_weapon( ); + auto wep_info = wep->get_wpn_info( ); + + bool scoped = g_ctx.m_local->m_bIsScoped( ); + float max_vel = scoped ? wep_info->max_speed_alt : wep_info->max_speed; + + if( speed < max_vel / 3 ) + return; + } + if( speed < 0.1f ) { g_ctx.get_last_cmd( )->m_forwardmove = 0.f; g_ctx.get_last_cmd( )->m_sidemove = 0.f; diff --git a/internal_rewrite/ragebot.hpp b/internal_rewrite/ragebot.hpp index 2616ecf..7bc6c24 100644 --- a/internal_rewrite/ragebot.hpp +++ b/internal_rewrite/ragebot.hpp @@ -161,6 +161,7 @@ namespace features float m_animDuck{ }; int m_fFlags{ }; int m_animFlags{ }; + float m_lastAnimTime; vec3_t m_animVelocity{ }; vec3_t m_prevVelocity{ }; diff --git a/internal_rewrite/ragebot_antiaim.cpp b/internal_rewrite/ragebot_antiaim.cpp index efb225c..a58897e 100644 --- a/internal_rewrite/ragebot_antiaim.cpp +++ b/internal_rewrite/ragebot_antiaim.cpp @@ -636,8 +636,6 @@ namespace features g_ctx.get_last_cmd( )->m_sidemove = ndir.y * wishspeed; }; - //int ticks_to_update = g_settings.rage.break_lby( ) ? m_breaker.get_next_update( ) - 1 : g_settings.rage.fakewalk_ticks; - int ticks_to_stop; for( ticks_to_stop = 0; ticks_to_stop < 15; ++ticks_to_stop ) { if( velocity.length2d( ) < 0.1f ) diff --git a/internal_rewrite/ragebot_lagcomp.cpp b/internal_rewrite/ragebot_lagcomp.cpp index c166174..5014143 100644 --- a/internal_rewrite/ragebot_lagcomp.cpp +++ b/internal_rewrite/ragebot_lagcomp.cpp @@ -14,6 +14,7 @@ namespace features m_flSimulationTime = m_ent->m_flSimulationTime( ); m_flOldSimulationTime = m_ent->m_flOldSimulationTime( ); + m_lastAnimTime = m_ent->get_animdata( ).m_last_animtime; m_tickcount = TIME_TO_TICKS( m_flSimulationTime + util::get_lerptime( ) ); m_choked = m_ent->get_choked_ticks( ); @@ -120,9 +121,6 @@ namespace features m_state.m_flGoalFeetYaw = m_state.m_flCurrentFeetYaw = feet_yaw; - m_ent->m_flPoseParameter( )[ BODY_YAW ] = std::clamp( ( lby_delta + 180.f ) / 360.f, 0.f, 1.f ); - m_ent->m_flPoseParameter( )[ LEAN_YAW ] = std::clamp( ( lby_delta + 180.f ) / 360.f, 0.f, 1.f ); - float backup_duck = m_ent->m_flDuckAmount( ); float backup_duckspeed = m_ent->m_flDuckSpeed( ); @@ -131,7 +129,7 @@ namespace features m_ent->m_fFlags( ) = m_animFlags; - m_state.m_flLastClientSideAnimationUpdateTime = m_flOldSimulationTime; + m_state.m_flLastClientSideAnimationUpdateTime = m_lastAnimTime; m_state.update( m_ent->m_angEyeAngles( ).y, m_ent->m_angEyeAngles( ).x ); m_ent->m_fFlags( ) = m_fFlags; -- cgit v1.2.3