summaryrefslogtreecommitdiff
path: root/src/csgo/hack_aim.cpp
diff options
context:
space:
mode:
authornavewindre <nw@moneybot.cc>2024-07-12 05:40:41 +0200
committernavewindre <nw@moneybot.cc>2024-07-12 05:40:41 +0200
commit28f41cf689def99fb586bfca47b7e1786227a5a2 (patch)
tree4a843c7785035ca548625ccf988ac924b8815f85 /src/csgo/hack_aim.cpp
parent2ebf959ec02048c15323e1bbfc63faedcf5067b6 (diff)
base shit
Diffstat (limited to 'src/csgo/hack_aim.cpp')
-rw-r--r--src/csgo/hack_aim.cpp110
1 files changed, 0 insertions, 110 deletions
diff --git a/src/csgo/hack_aim.cpp b/src/csgo/hack_aim.cpp
deleted file mode 100644
index 9c95bdf..0000000
--- a/src/csgo/hack_aim.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-#include "hack.h"
-
-#include "convar.h"
-#include "netvar.h"
-
-SETTING<bool>& aim_active = *settings.find<bool>( "aim_active"fnv );
-
-bool aim_check_player( CSGOPLAYER player, CSGO* p ) {
- if( !player )
- return true; // if no player
- if( player.get_clientclass().index != CCSPlayer )
- return true; // if not player
- CSGOPLAYER local = p->read<U32>( localplayer_ptr );
- if( player.base == local )
- return true; // if player is you
- if( player.m_iTeamNum() == local.m_iTeamNum() )
- return true;
- if( player.m_bDormant() )
- return true; // dormant
- if( player.m_lifeState() )
- return true;
- if( !player.m_bSpottedByMask() )
- return true;
- return false;
-}
-
-#define aim_fov 10.f
-#define aim_reset( ) { \
- m_pitch = m_yaw = 0.022f; \
- convar_set( p, pitch_ptr, m_pitch ); \
- convar_set( p, yaw_ptr, m_yaw ); \
- return; \
-}
-
-F32 calc_dist( VEC3 v, F32 distance ) {
- F32 sqr1 = sinf( v.x * M_PI / 180.f ) * distance;
- F32 sqr2 = sinf( v.y * M_PI / 180.f ) * distance;
- return sqrtf(
- ( sqr1 * sqr1 ) + ( sqr2 * sqr2 )
- );
-}
-
-void hack_run_aim( CSGO* p ) {
- if( !aim_active )
- return;
-
- F32 m_pitch, m_yaw;
-
- CSGOPLAYER local = p->read<U32>( localplayer_ptr );
- if( local.m_iHealth( ) < 1 || !local )
- aim_reset();
-
- CSGOENTITY wep = CSGOENTITY::from_list(
- ( ( local.m_hActiveWeapon() & 0xFFF ) - 1 )
- );
-
- if( !wep.is_weapon( ) )
- aim_reset();
-
- F32 lowest_dist{ aim_fov };
- U32 closest{ };
- for( U32 index{}; index <= 64; ++index ) {
- CSGOPLAYER player = CSGOENTITY::from_list( index );
-
- if( aim_check_player( player, p ) )
- continue;
-
- VEC3 local_pos = local.m_vecOrigin( ) + local.m_vecViewOffset( );
- VEC3 local_view = p->read<VEC3>( clientstate_ptr + 0x4d90 );
- // could replace this magic number with pattern, but is it worth it ?
- VEC3 target_pos;
- if( wep.get_clientclass( ).index == CWeaponAWP )
- target_pos = player.get_bone_pos( 6 );
- else
- target_pos = player.get_bone_pos( 8 );
- VEC3 target_ang = vector_angles( local_pos, target_pos );
-
- //F32 distance = ( local_view - target_ang ).clamp().length2d(); // non-dynamic
- F32 distance = calc_dist(
- ( local_view - target_ang ),
- local_pos.dist_to( target_pos )
- );
-
- if( distance > lowest_dist )
- continue;
-
- lowest_dist = distance;
- closest = player;
- }
-
- if( !closest )
- aim_reset();
-
- // change this to change strength. this is the minimum allowed by the game.
- const F32 min_sens = 0.0001f;
- F32 factor = ( lowest_dist / aim_fov );
- if( factor > 1.f )
- factor = 1.f;
-
- // change this for how aggressively the aim 'comes on'.
- // lower values = less assist on outer edge of fov, more on inner.
- factor = pow( factor, 3.f );
-
-
- m_pitch = min_sens + ( 0.022f - min_sens ) * factor,
- m_yaw = min_sens + ( 0.022f - min_sens ) * factor;
-
- convar_set( p, pitch_ptr, m_pitch );
- convar_set( p, yaw_ptr, m_yaw );
-} \ No newline at end of file