summaryrefslogtreecommitdiff
path: root/internal_rewrite
diff options
context:
space:
mode:
Diffstat (limited to 'internal_rewrite')
-rw-r--r--internal_rewrite/context.cpp4
-rw-r--r--internal_rewrite/create_move.cpp4
-rw-r--r--internal_rewrite/lag_mgr.cpp43
-rw-r--r--internal_rewrite/lag_mgr.hpp2
-rw-r--r--internal_rewrite/ragebot.cpp31
-rw-r--r--internal_rewrite/ragebot.hpp3
-rw-r--r--internal_rewrite/ragebot_antiaim.cpp63
-rw-r--r--internal_rewrite/run_command.cpp2
-rw-r--r--internal_rewrite/ui_dropdown_item.h2
-rw-r--r--internal_rewrite/update_clientside_animation.cpp55
10 files changed, 127 insertions, 82 deletions
diff --git a/internal_rewrite/context.cpp b/internal_rewrite/context.cpp
index 9ec1f62..26af64c 100644
--- a/internal_rewrite/context.cpp
+++ b/internal_rewrite/context.cpp
@@ -27,10 +27,10 @@ void c_context::on_cmove_end( user_cmd_t* cmd ) {
}
else {
m_last_realangle = cmd->m_viewangles;
- m_last_realangle.x = m_last_fakeangle.x;
+ //m_last_realangle.x = m_last_fakeangle.x;
}
- if( !g_cheat.m_lagmgr.get_choked( ) ) {
+ if( g_cheat.m_lagmgr.get_choked( ) == 1 ) {
m_thirdperson_angle = m_last_realangle;
}
diff --git a/internal_rewrite/create_move.cpp b/internal_rewrite/create_move.cpp
index 47232fa..c2959d0 100644
--- a/internal_rewrite/create_move.cpp
+++ b/internal_rewrite/create_move.cpp
@@ -101,8 +101,12 @@ bool __fastcall hooks::create_move( void* ecx_, void* edx_, float input_sample_f
g_cheat.m_lagmgr.set_state( true );
}
+ vec3_t real_angle = g_ctx.m_thirdperson_angle;
+
g_cheat.m_lagmgr.on_cmove_end( );
g_ctx.on_cmove_end( ucmd );
+
+ g_cheat.m_ragebot.m_antiaim->on_runcommand( );
}
else {
g_ctx.reset_shot_queue( );
diff --git a/internal_rewrite/lag_mgr.cpp b/internal_rewrite/lag_mgr.cpp
index 17dc194..ce6d37f 100644
--- a/internal_rewrite/lag_mgr.cpp
+++ b/internal_rewrite/lag_mgr.cpp
@@ -12,7 +12,7 @@ namespace features
}
}
- bool c_lagmgr::predict_position( ) {
+ bool c_lagmgr::predict_position( float dist ) {
vec3_t local_pos = g_ctx.m_local->get_eye_pos( );
auto i = util::get_closest_player( );
@@ -100,17 +100,24 @@ namespace features
}
}
- bool send = false;
+ bool send = true;
static bool was_onground{ };
- if( !settings.in_move ) {
- send = true;
+ if( settings.in_move && ( g_ctx.m_local->m_fFlags( ) & FL_ONGROUND ) && g_ctx.m_local->m_vecVelocity( ).length2d( ) > 0.1f ) {
+ send = false;
}
if( settings.on_peek ) {
static int choke_ticks = 0;
- bool predicted = predict_position( );
- if( !predicted )
+
+ bool peeking = predict_position( 20.f + g_ctx.m_local->m_vecVelocity( ) * TICK_INTERVAL( ) * 2.f );
+ bool predicted = predict_position( 20.f );
+
+ if( !peeking && predicted ) {
+ choke_ticks = 0;
+ send = true;
+ }
+ else if( !predicted )
choke_ticks = settings.ticks;
if( choke_ticks ) {
@@ -123,23 +130,35 @@ namespace features
}
if( settings.avoid_ground ) {
- if( !was_onground && g_ctx.m_local->m_fFlags( ) & FL_ONGROUND ) {
- send = false;
+ static int choked = 0;
+
+ if( !was_onground && ( g_ctx.m_local->m_fFlags( ) & FL_ONGROUND ) ) {
+ choked = settings.ticks;
}
+
+ if( choked )
+ send = !--choked;
}
if( settings.jump_reset ) {
- if( was_onground && !( g_ctx.m_local->m_fFlags( ) & FL_ONGROUND ) ) {
- send = get_choked( ) > 0;
+ if( settings.avoid_ground ) {
+ if( was_onground && !( g_ctx.m_local->m_fFlags( ) & FL_ONGROUND ) ) {
+ send = get_choked( ) > 0;
+ }
+ }
+ else {
+ if( !was_onground && ( g_ctx.m_local->m_fFlags( ) & FL_ONGROUND ) ) {
+ send = get_choked( ) > 0;
+ }
}
}
- was_onground = g_ctx.m_local->m_fFlags( ) & FL_ONGROUND;
+ was_onground = ( g_ctx.m_local->m_fFlags( ) & FL_ONGROUND );
if( ( m_cmd->m_buttons & IN_ATTACK ) && g_ctx.m_local->can_attack( ) &&
!settings.in_attack ) {
if( !weapon->is_grenade( ) || ( weapon->is_grenade( ) && weapon->m_fThrowTime( ) < TICK_INTERVAL( ) ) ) {
- send = true;
+ send = get_choked( ) > 0;
}
}
diff --git a/internal_rewrite/lag_mgr.hpp b/internal_rewrite/lag_mgr.hpp
index 4f64c24..d495210 100644
--- a/internal_rewrite/lag_mgr.hpp
+++ b/internal_rewrite/lag_mgr.hpp
@@ -52,7 +52,7 @@ namespace features
private:
void on_antiaim( );
- bool predict_position( );
+ bool predict_position( float dist );
void fakelag( );
user_cmd_t* m_cmd{ };
diff --git a/internal_rewrite/ragebot.cpp b/internal_rewrite/ragebot.cpp
index 9e02f1b..28dae0a 100644
--- a/internal_rewrite/ragebot.cpp
+++ b/internal_rewrite/ragebot.cpp
@@ -814,12 +814,19 @@ namespace features
if( g_settings.rage.active->m_auto_stop( ) == 2 )
quick_stop( m_cmd );
+ else if( g_settings.rage.active->m_auto_stop( ) == 3 ) {
+ m_antiaim->run_fakewalk( );
+ }
+
if( !util::hitchance( it, aim_ang,
g_settings.rage.active->m_hitchance, hitbox ) ) {
- if( g_settings.rage.active->m_auto_stop( ) == 1 )
+ if( g_settings.rage.active->m_auto_stop( ) == 1 || g_settings.rage.active->m_auto_stop( ) == 4 )
quick_stop( m_cmd );
+ if( g_settings.rage.active->m_auto_stop( ) == 4 && g_cheat.m_lagmgr.get_choked( ) < 10 && !m_antiaim->is_fakewalking( ) )
+ g_cheat.m_lagmgr.set_state( false );
+
if( g_settings.rage.auto_scope( ) && g_ctx.m_local->get_weapon( )->is_sniper( ) ) {
if( !g_ctx.m_local->m_bIsScoped( ) ) {
m_cmd->m_buttons |= IN_ATTACK2;
@@ -901,12 +908,13 @@ namespace features
m_cmd->m_viewangles = angles;
}
- if( g_settings.rage.silent == 2 ) {
- g_cheat.m_lagmgr.set_state( g_cheat.m_lagmgr.get_choked( ) && !g_settings.rage.fakelag.in_attack && !m_antiaim->is_fakewalking( ) );
- }
+ //if( g_settings.rage.silent == 2 ) {
+ // if( !m_antiaim->is_fakewalking( ) )
+ // g_cheat.m_lagmgr.set_state( g_cheat.m_lagmgr.get_choked( ) );
+ //}
if( g_settings.rage.silent == 1 && !m_antiaim->is_fakewalking( ) ) {
- if( weapon->m_iItemDefinitionIndex( ) != WEAPON_R8REVOLVER )
+ //if( weapon->m_iItemDefinitionIndex( ) != WEAPON_R8REVOLVER )
g_cheat.m_lagmgr.set_state( !g_cheat.m_lagmgr.get_sent( ) );
}
@@ -1074,15 +1082,22 @@ namespace features
bool is_zeus = wep->m_iItemDefinitionIndex( ) == WEAPON_TASER;
if( m_target != -1 && !m_antiaim->is_fakewalking( ) )
- if( g_settings.rage.active->m_auto_stop == 2 && can_hit_target( m_target, &t, is_zeus ) )
+ if( g_settings.rage.active->m_auto_stop == 2 && can_hit_target( m_target, &t, is_zeus ) ) {
quick_stop( m_cmd );
+ }
+ else if( g_settings.rage.active->m_auto_stop == 3 && can_hit_target( m_target, &t, is_zeus ) ) {
+ m_antiaim->run_fakewalk( );
+ //if( !g_cheat.m_lagmgr.get_choked( ) || g_cheat.m_lagmgr.get_state( ) )
+ m_cmd->m_viewangles.y = m_antiaim->get_yaw( );
+ }
return;
}
// do not
- if( g_settings.rage.silent == 2 && !g_cheat.m_lagmgr.get_choked( ) && !m_antiaim->is_fakewalking( ) && !is_revolver ) {
- g_cheat.m_lagmgr.set_state( false );
+ if( g_settings.rage.silent == 2 && !g_cheat.m_lagmgr.get_choked( ) && !is_revolver ) {
+ if( !m_antiaim->is_fakewalking( ) )
+ g_cheat.m_lagmgr.set_state( false );
return;
}
diff --git a/internal_rewrite/ragebot.hpp b/internal_rewrite/ragebot.hpp
index 83b960f..8a7e856 100644
--- a/internal_rewrite/ragebot.hpp
+++ b/internal_rewrite/ragebot.hpp
@@ -117,10 +117,11 @@ namespace features
bool run_freestanding( int player = -1 );
bool run_edge_dtc( );
- void run_fakewalk( );
+
public:
bool is_fakewalking( ) const { return m_is_fakewalking; }
+ void run_fakewalk( );
bool is_edging( ) const { return m_is_edging; }
float get_yaw( bool no_jitter = false );
diff --git a/internal_rewrite/ragebot_antiaim.cpp b/internal_rewrite/ragebot_antiaim.cpp
index f172285..d8ada3c 100644
--- a/internal_rewrite/ragebot_antiaim.cpp
+++ b/internal_rewrite/ragebot_antiaim.cpp
@@ -87,14 +87,55 @@ namespace features
void c_ragebot::c_lby_breaker::update_animstate( ) {
+ if( !g_settings.rage.anti_aim( ) )
+ return;
+
+ if( !g_ctx.m_local->get_animstate( ) )
+ return;
+
auto cl = g_csgo.m_global_state->get_client_state( );
if( !cl )
return;
- if( g_cheat.m_lagmgr.get_choked( ) )
+ if( g_cheat.m_lagmgr.get_choked( ) != 1 )
return;
- bool moving = g_ctx.m_local->get_animstate( )->m_velocity >= 0.1f && g_ctx.m_local->get_animstate( )->m_bOnGround;
+ 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( );
+
+ vec3_t real_angle = g_ctx.m_thirdperson_angle;
+
+ float pitch;
+ if( g_ctx.m_local->get_animstate( )->m_bInHitGroundAnimation && ( g_ctx.m_local->m_fFlags( ) & FL_ONGROUND ) ) {
+ bool dist = g_settings.rage.enabled( ) && g_settings.rage.selection_type( ) == 1;
+ int target = util::get_closest_player( dist );
+
+ if( target != -1 ) {
+ auto t = g_csgo.m_entlist( )->GetClientEntity( target );
+
+ pitch = math::vector_angles( g_ctx.m_local->m_vecOrigin( ), t->m_vecOrigin( ) ).x;
+ }
+ else
+ pitch = -10.f;
+
+ 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;
+
+ if( g_ctx.m_local->get_animstate( )->m_velocity < 0.1f )
+ g_ctx.m_local->get_animstate( )->m_velocity = 0.f;
+
+ bool moving = g_ctx.m_local->get_animstate( )->m_velocity > 0.1f && g_ctx.m_local->get_animstate( )->m_bOnGround;
float time = g_ctx.pred_time( );
if( moving ) {
@@ -172,14 +213,14 @@ namespace features
}
if( std::abs( offset ) < 105 ) {
- int min_tick = g_cheat.m_ragebot.m_antiaim->is_fakewalking( ) ? g_settings.rage.fakewalk_ticks( ) + 1 : 4;
- if( update_ticks < min_tick && update_ticks > 2 ) {
+ int min_tick = g_cheat.m_ragebot.m_antiaim->is_fakewalking( ) ? g_settings.rage.fakewalk_ticks( ) + 2 : 4;
+ if( update_ticks < min_tick && update_ticks >= 1 ) {
*angles = break_angle + ( offset < 0 ? 105 : -105 );
return;
}
}
- if( breaking && update_ticks < 3 ) {
+ if( breaking && update_ticks < 1 ) {
*angles = break_angle;
if( !freestanding ) {
last_angle = break_angle;
@@ -234,7 +275,7 @@ namespace features
if( !g_settings.rage.edge_dtc_normal )
return false;
- if( !( g_ctx.m_local->m_fFlags( ) & FL_ONGROUND ) )
+ if( !g_ctx.m_local->get_animstate( )->m_bOnGround )
return false;
if( g_settings.rage.edge_dtc_normal == 1 ) {
@@ -350,7 +391,7 @@ namespace features
if( !g_settings.rage.edge_detection )
return false;
- if( !( g_ctx.m_local->m_fFlags( ) & FL_ONGROUND ) )
+ if( !g_ctx.m_local->get_animstate( )->m_bOnGround )
return false;
bool is_fake = g_cheat.m_lagmgr.get_state( );
@@ -457,7 +498,7 @@ namespace features
if( !g_ctx.m_local->get_weapon( ) )
return;
- bool in_move = !( m_cmd->m_buttons & IN_FORWARD ) && !( m_cmd->m_buttons & IN_BACK ) && !( m_cmd->m_buttons & IN_LEFT ) && !( m_cmd->m_buttons & IN_RIGHT );
+ bool in_move = ( m_cmd->m_buttons & IN_FORWARD ) || ( m_cmd->m_buttons & IN_BACK ) || ( m_cmd->m_buttons & IN_LEFT ) || ( m_cmd->m_buttons & IN_RIGHT );
if( !m_cmd->m_sidemove && !m_cmd->m_forwardmove && !g_ctx.m_local->m_vecVelocity( ) && !in_move )
return;
@@ -552,10 +593,6 @@ namespace features
g_cheat.m_lagmgr.set_state( false );
}
- if( !g_ctx.m_local->m_vecVelocity( ).length2d( ) && !g_cheat.m_lagmgr.get_sent( ) && choked > max_ticks ) {
- g_cheat.m_lagmgr.set_state( true );
- }
-
if( ticks_to_stop > ticks_left - 1 || !choked ) {
quick_stop( );
}
@@ -595,7 +632,7 @@ namespace features
int setting = fake ? g_settings.rage.fake_yaw : g_settings.rage.real_yaw;
int jitter = fake ? g_settings.rage.fake_yaw_jitter : g_settings.rage.real_yaw_jitter;
int add = fake ? g_settings.rage.fake_yaw_add : g_settings.rage.real_yaw_add;
- if( !( g_ctx.m_local->m_fFlags( ) & FL_ONGROUND ) ) {
+ if( !g_ctx.m_local->get_animstate( )->m_bOnGround ) {
if( !fake && g_settings.rage.air_yaw( ) ) {
setting = g_settings.rage.air_yaw;
jitter = g_settings.rage.air_yaw_jitter;
diff --git a/internal_rewrite/run_command.cpp b/internal_rewrite/run_command.cpp
index 9761960..d8df083 100644
--- a/internal_rewrite/run_command.cpp
+++ b/internal_rewrite/run_command.cpp
@@ -4,7 +4,7 @@
void __fastcall hooks::run_command( void* ecx_, void* edx_, IClientEntity* entity, user_cmd_t* ucmd, IMoveHelper* move_helper ) {
if( !g_csgo.m_panic && g_settings.rage.anti_aim( ) && entity == g_ctx.m_local->ce( ) ) {
- g_cheat.m_ragebot.m_antiaim->on_runcommand( );
+
}
run_command_o( ecx_, edx_, entity, ucmd, move_helper );
diff --git a/internal_rewrite/ui_dropdown_item.h b/internal_rewrite/ui_dropdown_item.h
index aa3d41e..f3b3606 100644
--- a/internal_rewrite/ui_dropdown_item.h
+++ b/internal_rewrite/ui_dropdown_item.h
@@ -70,6 +70,8 @@ namespace ui
static std::vector< dropdown_item_t< > > auto_stop = {
{ xors( "none" ), 0 },
{ xors( "hitchance" ), 1 },
+ { xors( "hitchance + lag" ), 4 },
+ { xors( "slide" ), 3 },
{ xors( "full" ), 2 }
};
diff --git a/internal_rewrite/update_clientside_animation.cpp b/internal_rewrite/update_clientside_animation.cpp
index d61916a..e7889c1 100644
--- a/internal_rewrite/update_clientside_animation.cpp
+++ b/internal_rewrite/update_clientside_animation.cpp
@@ -8,7 +8,7 @@ void __fastcall hooks::update_clientside_animation( void* ecx_, void* edx_ ) {
auto old_func = update_clientside_animation_o;
if( ecx_ != g_ctx.m_local )
- return old_func( ecx_, edx_ );
+ return old_func( ecx_, 0 );
auto ent = ( c_base_player* )( ecx_ );
@@ -27,53 +27,20 @@ void __fastcall hooks::update_clientside_animation( void* ecx_, void* edx_ ) {
return old_func( ecx_, edx_ );
}
- *( byte* )( uintptr_t( ent ) + 0x270 ) = 1;
- if( !g_cheat.m_lagmgr.get_choked( ) || g_cheat.m_lagmgr.get_sent( ) > 1 || first_update ) {
- vec3_t backup;
- g_csgo.m_prediction( )->GetLocalViewAngles( backup );
-
-
- float backup_curtime = g_csgo.m_globals->m_curtime;
- float backup_frametime = g_csgo.m_globals->m_frametime;
-
- last_update = backup_curtime;
-
- g_csgo.m_globals->m_curtime = g_ctx.pred_time( );
- g_csgo.m_globals->m_frametime = TICK_INTERVAL( );
-
- if( g_csgo.m_globals->m_curtime != ent->get_animstate( )->m_flLastClientSideAnimationUpdateTime ) {
- last_update = backup_curtime;
-
- vec3_t real_angle = g_ctx.m_thirdperson_angle;
+ last_update = g_csgo.m_globals->m_curtime;
- float pitch;
- if( g_ctx.m_local->get_animstate( )->m_bInHitGroundAnimation && ( g_ctx.m_local->m_fFlags( ) & FL_ONGROUND ) ) {
- bool dist = g_settings.rage.enabled( ) && g_settings.rage.selection_type( ) == 1;
- int target = util::get_closest_player( dist );
+ float backup_curtime = g_csgo.m_globals->m_curtime;
+ float backup_frametime = g_csgo.m_globals->m_frametime;
- if( target != -1 ) {
- auto t = g_csgo.m_entlist( )->GetClientEntity( target );
+ g_csgo.m_globals->m_curtime = g_ctx.pred_time( );
+ g_csgo.m_globals->m_frametime = TICK_INTERVAL( );
- pitch = math::vector_angles( ent->m_vecOrigin( ), t->m_vecOrigin( ) ).x;
- }
- else
- pitch = -10.f;
-
- real_angle.x = pitch;
- }
-
- ent->get_animstate( )->update( real_angle.y, real_angle.x );
- old_func( ecx_, edx_ );
-
- ent->cache_anim_data( );
- }
-
- g_csgo.m_prediction( )->SetLocalViewAngles( backup );
- g_csgo.m_globals->m_curtime = backup_curtime;
- g_csgo.m_globals->m_frametime = backup_frametime;
- }
+ 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_ );
- ent->restore_anim_data( true );
+ g_csgo.m_globals->m_curtime = backup_curtime;
+ g_csgo.m_globals->m_frametime = backup_frametime;
if( !first_update ) {
//*( byte* )( uintptr_t( ent ) + 0x270 ) = 0;