diff options
| -rw-r--r-- | internal_rewrite/c_base_player.cpp | 4 | ||||
| -rw-r--r-- | internal_rewrite/c_base_player.hpp | 1 | ||||
| -rw-r--r-- | internal_rewrite/context.hpp | 1 | ||||
| -rw-r--r-- | internal_rewrite/create_move.cpp | 21 | ||||
| -rw-r--r-- | internal_rewrite/hooks.cpp | 7 | ||||
| -rw-r--r-- | internal_rewrite/hooks.hpp | 3 | ||||
| -rw-r--r-- | internal_rewrite/internal_rewrite.vcxproj | 1 | ||||
| -rw-r--r-- | internal_rewrite/internal_rewrite.vcxproj.filters | 3 | ||||
| -rw-r--r-- | internal_rewrite/packet_start.cpp | 23 | ||||
| -rw-r--r-- | internal_rewrite/ragebot.cpp | 11 | ||||
| -rw-r--r-- | internal_rewrite/ragebot.hpp | 1 | ||||
| -rw-r--r-- | internal_rewrite/ragebot_antiaim.cpp | 2 | ||||
| -rw-r--r-- | internal_rewrite/ragebot_lagcomp.cpp | 6 |
13 files changed, 70 insertions, 14 deletions
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 @@ <ClCompile Include="on_screen_size_changed.cpp" />
<ClCompile Include="override_mouse_input.cpp" />
<ClCompile Include="override_view.cpp" />
+ <ClCompile Include="packet_start.cpp" />
<ClCompile Include="paint_traverse.cpp" />
<ClCompile Include="player_manager.cpp" />
<ClCompile Include="play_sound.cpp" />
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 @@ <ClCompile Include="csm_shadows.cpp">
<Filter>hooks</Filter>
</ClCompile>
+ <ClCompile Include="packet_start.cpp">
+ <Filter>hooks</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="factory.hpp">
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;
|
