From 321fd73c262835f6c920f7d947abc1e311b71948 Mon Sep 17 00:00:00 2001 From: Stephen Date: Wed, 22 Mar 2023 01:34:13 -0400 Subject: [PATCH] Projectile fixes --- include/hacks/Aimbot.hpp | 2 +- src/hacks/Aimbot.cpp | 19 ++++++++----------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/include/hacks/Aimbot.hpp b/include/hacks/Aimbot.hpp index c45fea48..781e60f6 100644 --- a/include/hacks/Aimbot.hpp +++ b/include/hacks/Aimbot.hpp @@ -18,7 +18,7 @@ extern settings::Boolean ignore_cloak; extern unsigned last_target_ignore_timer; // Used to store aimbot data to prevent calculating it again // Functions used to calculate aimbot data, and if already calculated use it -Vector PredictEntity(CachedEntity *entity, Vector *init_vel = nullptr); +Vector PredictEntity(CachedEntity *entity); // Functions called by other functions for when certian game calls are run void Reset(); diff --git a/src/hacks/Aimbot.cpp b/src/hacks/Aimbot.cpp index b36bb795..68eb8e8b 100644 --- a/src/hacks/Aimbot.cpp +++ b/src/hacks/Aimbot.cpp @@ -1172,8 +1172,7 @@ bool Aim(CachedEntity *entity) return true; // Get angles from eye to target - Vector og_pos; - Vector is_it_good = PredictEntity(entity, &og_pos); + Vector is_it_good = PredictEntity(entity); if (!projectileAimbotRequired) if (!IsEntityVectorVisible(entity, is_it_good, true, MASK_SHOT_HULL, nullptr, true)) return false; @@ -1187,7 +1186,7 @@ bool Aim(CachedEntity *entity) if (grav_comp) { const QAngle &angl = VectorToQAngle(angles); - Vector end_targ = og_pos; + Vector end_targ = is_it_good; Vector fwd, right, up; AngleVectors3(angl, &fwd, &right, &up); // I have no clue why this is 200.0f, No where in the SDK explains this. @@ -1198,7 +1197,7 @@ bool Aim(CachedEntity *entity) float alongvel = std::sqrt(vel.x * vel.x + vel.y * vel.y); fwd *= alongvel; const float gravity = cur_proj_grav * g_ICvar->FindVar("sv_gravity")->GetFloat() * -1.0f; - const float maxTime = 1.2f; + const float maxTime = 1.5f; const float timeStep = maxTime * 0.01f; Vector curr_pos = orig; trace_t ptr_trace; @@ -1212,11 +1211,11 @@ bool Aim(CachedEntity *entity) if (!didProjectileHit(last_pos, curr_pos, entity, projectileHitboxSize(LOCAL_W->m_iClassID()), true, &ptr_trace) || (IClientEntity *) ptr_trace.m_pEnt == rawest_ent) break; } - Vector original = ptr_trace.endpos; - if (!didProjectileHit(ptr_trace.endpos, end_targ, entity, projectileHitboxSize(LOCAL_W->m_iClassID()), true, &ptr_trace)) + if (!didProjectileHit(end_targ, ptr_trace.endpos, entity, projectileHitboxSize(LOCAL_W->m_iClassID()), true, &ptr_trace)) + return false; + Vector ent_check = entity->m_vecOrigin(); + if (!didProjectileHit(ent_check, ptr_trace.endpos, entity, projectileHitboxSize(LOCAL_W->m_iClassID()), true)) return false; - if(100.0f < (ptr_trace.endpos - original).Length()) - return false; } else if (!didProjectileHit(orig, is_it_good, entity, projectileHitboxSize(LOCAL_W->m_iClassID()), grav_comp)) return false; @@ -1345,7 +1344,7 @@ void DoAutoshoot(CachedEntity *target_entity) } // Grab a vector for a specific ent -Vector PredictEntity(CachedEntity *entity, Vector *init_vel) +Vector PredictEntity(CachedEntity *entity) { // Pull out predicted data Vector &result = cd.aim_position; @@ -1369,8 +1368,6 @@ Vector PredictEntity(CachedEntity *entity, Vector *init_vel) // Don't use the intial velocity compensated one in vischecks result = tmp_result.second; - if (init_vel) - *init_vel = tmp_result.first; } else {