summaryrefslogtreecommitdiff
path: root/internal_rewrite
diff options
context:
space:
mode:
Diffstat (limited to 'internal_rewrite')
-rw-r--r--internal_rewrite/c_base_player.cpp4
-rw-r--r--internal_rewrite/c_base_player.hpp1
-rw-r--r--internal_rewrite/context.hpp1
-rw-r--r--internal_rewrite/create_move.cpp21
-rw-r--r--internal_rewrite/hooks.cpp7
-rw-r--r--internal_rewrite/hooks.hpp3
-rw-r--r--internal_rewrite/internal_rewrite.vcxproj1
-rw-r--r--internal_rewrite/internal_rewrite.vcxproj.filters3
-rw-r--r--internal_rewrite/packet_start.cpp23
-rw-r--r--internal_rewrite/ragebot.cpp11
-rw-r--r--internal_rewrite/ragebot.hpp1
-rw-r--r--internal_rewrite/ragebot_antiaim.cpp2
-rw-r--r--internal_rewrite/ragebot_lagcomp.cpp6
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;