summaryrefslogtreecommitdiff
path: root/cheat/internal_rewrite/ragebot_resolver.cpp
diff options
context:
space:
mode:
authornavewindre <boneyaard@gmail.com>2018-12-04 19:56:23 +0100
committernavewindre <boneyaard@gmail.com>2018-12-04 19:56:23 +0100
commit009f264c3d98f742bec9aaeaafe86d66ad5116a5 (patch)
tree0f928ae839867e117a694cd84c2dcfcf419d330b /cheat/internal_rewrite/ragebot_resolver.cpp
parenta7e0ce1fb433a3f1ba34b92b084a2c5e8baf4dfe (diff)
dadffsad
Diffstat (limited to 'cheat/internal_rewrite/ragebot_resolver.cpp')
-rw-r--r--cheat/internal_rewrite/ragebot_resolver.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/cheat/internal_rewrite/ragebot_resolver.cpp b/cheat/internal_rewrite/ragebot_resolver.cpp
index 78a6718..e562dd6 100644
--- a/cheat/internal_rewrite/ragebot_resolver.cpp
+++ b/cheat/internal_rewrite/ragebot_resolver.cpp
@@ -49,15 +49,25 @@ namespace features
if( !( ent->m_fFlags( ) & FL_ONGROUND ) || ( ent->get_anim_velocity( ).length2d( ) > 0.1f && !ent->is_fakewalking( ) ) )
return -1;
+ if( g_ctx.m_past_origins.empty( ) )
+ return -1; // sanity check
+
int ret_dir = -1;
float cur_damage = 0.f;
vec3_t enemy_pos = ent->m_vecOrigin( );
enemy_pos.z = ent->get_hitbox_pos( 0 ).z;
+ auto nci = g_csgo.m_engine( )->GetNetChannelInfo( );
+ float out_latency = nci->GetLatency( 0 );
+ auto enemy_ping = ent->get_ping( ) * 0.001f;
+
+ auto delay_ticks = std::clamp< int >( TIME_TO_TICKS( enemy_ping + out_latency ), 0, g_ctx.m_past_origins.size( ) - 1 );
+ vec3_t delayed_pos = g_ctx.m_past_origins.at( delay_ticks );
+
vec3_t local_pos = g_ctx.m_local->get_eye_pos( );
local_pos -= g_ctx.m_local->m_vecOrigin( );
- local_pos += g_ctx.m_last_origin;
+ local_pos += delayed_pos;
vec3_t aim_angle = math::vector_angles(
enemy_pos,