From 7ccb819f867493f8ec202ea3b39c94c198c64584 Mon Sep 17 00:00:00 2001 From: JustSomePwner Date: Thu, 30 Aug 2018 14:01:54 +0200 Subject: first --- tf2/aim.h | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 tf2/aim.h (limited to 'tf2/aim.h') diff --git a/tf2/aim.h b/tf2/aim.h new file mode 100644 index 0000000..82e4943 --- /dev/null +++ b/tf2/aim.h @@ -0,0 +1,75 @@ +#pragma once +#include +#include + +#include "sdk.h" + +namespace features +{ + class c_legitbot { + public: + void operator()( float* x, float* y ) { + aimbot( x, y ); + } + + //call once per tick + void sample_angle_data( const vec3_t& angle ); + void triggerbot( user_cmd_t* cmd ); + + private: + struct aim_record_t { + vec3_t m_viewangles; + float m_time; + }; + + struct lag_record_t { + int m_tickcount{ }; + vec3_t m_position{ }; + matrix3x4 m_matrix[ 128 ]{ }; + + bool is_valid( ); + }; + class c_lagcomp { + public: + friend class c_legitbot; + using lag_deque_t = std::deque< lag_record_t >; + + lag_record_t* find_best_record( int ent_index ); + vec3_t get_backtracked_position( int ent_index ); + auto& get_records( int ent_index ) { + return m_data[ ent_index ]; + } + + void store( ); + void operator()( user_cmd_t* cmd ); + + private: + bool backtrack_entity( int ent_index ); + bool can_backtrack_entity( int ent_index ); + void store_player( int ent_index ); + + lag_deque_t m_data[ 65 ]; + user_cmd_t* m_cmd; + }; + + vec2_t angle_to_pixels( const vec3_t& angle ); + vec3_t pixels_to_angle( const vec2_t& pixel ); + void aimbot( float* x, float* y ); + void assist( c_base_player* player, float* x, float* y ); + void aim_at_target( c_base_player*, float*, float* ); + + bool update_settings( ); + float get_avg_delta( ); + int get_aim_target( float fov = 0.f ); + + private: + float m_deltatime{ }; + float m_curtime{ }; + bool m_aiming{ }; + + std::deque< aim_record_t > m_angle_samples; + + public: + c_lagcomp m_lagcomp; + }; +} \ No newline at end of file -- cgit v1.2.3