diff options
| author | navewindre <nw@moneybot.cc> | 2024-07-12 05:40:41 +0200 |
|---|---|---|
| committer | navewindre <nw@moneybot.cc> | 2024-07-12 05:40:41 +0200 |
| commit | 28f41cf689def99fb586bfca47b7e1786227a5a2 (patch) | |
| tree | 4a843c7785035ca548625ccf988ac924b8815f85 /src/csgo/hack_aim.cpp | |
| parent | 2ebf959ec02048c15323e1bbfc63faedcf5067b6 (diff) | |
base shit
Diffstat (limited to 'src/csgo/hack_aim.cpp')
| -rw-r--r-- | src/csgo/hack_aim.cpp | 110 |
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 |
