From 77dcc3d44f33e36843d3452ae123433fcc3d0463 Mon Sep 17 00:00:00 2001 From: TotallyNotElite <1yourexperiment@protonmail.com> Date: Sat, 11 Aug 2018 13:36:33 +0200 Subject: [PATCH 1/2] Fix isBacktrackEnabled --- include/hacks/Backtrack.hpp | 3 +-- src/hacks/Aimbot.cpp | 2 +- src/hacks/AutoBackstab.cpp | 13 ++++++------- src/hacks/Backtrack.cpp | 36 +++++++++++++++++------------------- src/hacks/Trigger.cpp | 2 +- 5 files changed, 26 insertions(+), 30 deletions(-) diff --git a/include/hacks/Backtrack.hpp b/include/hacks/Backtrack.hpp index 343a69ba..fb39f395 100644 --- a/include/hacks/Backtrack.hpp +++ b/include/hacks/Backtrack.hpp @@ -40,7 +40,6 @@ void Run(); void Draw(); void AddLatencyToNetchan(INetChannel *, float); void UpdateIncomingSequences(); -bool shouldBacktrack(); extern int lastincomingsequencenumber; extern int BestTick; extern int iBestTarget; @@ -60,7 +59,7 @@ typedef boost::circular_buffer_space_optimized circular_buf; extern circular_buf sequences; extern BacktrackData headPositions[32][66]; -bool isBacktrackEnabled(); +extern bool isBacktrackEnabled; float getLatency(); int getTicks(); bool ValidTick(BacktrackData &i, CachedEntity *ent); diff --git a/src/hacks/Aimbot.cpp b/src/hacks/Aimbot.cpp index 60d09e13..aaa23ad1 100644 --- a/src/hacks/Aimbot.cpp +++ b/src/hacks/Aimbot.cpp @@ -91,7 +91,7 @@ AimbotCalculatedData_s calculated_data_array[2048]{}; #define IsMelee GetWeaponMode() == weapon_melee bool BacktrackAimbot() { - if (!hacks::shared::backtrack::isBacktrackEnabled() || !*backtrackAimbot) + if (!hacks::shared::backtrack::isBacktrackEnabled || !*backtrackAimbot) return false; if (aimkey && !aimkey.isKeyDown()) return true; diff --git a/src/hacks/AutoBackstab.cpp b/src/hacks/AutoBackstab.cpp index f68fd3f9..89c966b2 100644 --- a/src/hacks/AutoBackstab.cpp +++ b/src/hacks/AutoBackstab.cpp @@ -45,9 +45,9 @@ int ClosestDistanceHitbox(CachedEntity *target, { int closest = -1; float closest_dist = 0.0f, dist = 0.0f; - for (int i = spine_0; i < spine_3; i++) + for (int i = pelvis; i < lowerArm_R; i++) { - if (hacks::shared::backtrack::isBacktrackEnabled()) + if (hacks::shared::backtrack::isBacktrackEnabled) dist = g_pLocalPlayer->v_Eye.DistTo(btd.hitboxes.at(i).center); else dist = g_pLocalPlayer->v_Eye.DistTo( @@ -67,7 +67,7 @@ bool unifiedCanBackstab(Vector &vecAngle, Vector min, Vector max, // Get melee range float meleeRange = re::C_TFWeaponBaseMelee::GetSwingRange(RAW_ENT(LOCAL_W)); if (fabsf(vecAngle.y - - NET_VECTOR(RAW_ENT(besttarget), netvar.m_angEyeAngles).y) >= 50) + NET_VECTOR(RAW_ENT(besttarget), netvar.m_angEyeAngles).y) >= 60.0f) return false; if (!min.x && !max.x) return false; @@ -104,9 +104,8 @@ bool unifiedCanBackstab(Vector &vecAngle, Vector min, Vector max, forward.z = -sp; forward = forward * meleeRange + head; - Vector hit; // Check if we our line is within the targets hitbox - if (hacks::shared::triggerbot::CheckLineBox(minz, maxz, head, forward, hit)) + if (LineIntersectsBox(minz, maxz, head, forward)) return true; return false; } @@ -122,7 +121,7 @@ void CreateMove() if (!CanShoot()) return; CachedEntity *besttarget = nullptr; - if (!backtrack::isBacktrackEnabled()) + if (!backtrack::isBacktrackEnabled) { for (int i = 0; i < g_IEngine->GetMaxClients(); i++) { @@ -173,7 +172,7 @@ void CreateMove() { hacks::shared::anti_anti_aim::resolveEnt(besttarget->m_IDX); Vector angle = NET_VECTOR(RAW_ENT(LOCAL_E), netvar.m_angEyeAngles); - if (!backtrack::isBacktrackEnabled()) + if (!backtrack::isBacktrackEnabled) { for (angle.y = -180.0f; angle.y < 180.0f; angle.y += 10.0f) { diff --git a/src/hacks/Backtrack.cpp b/src/hacks/Backtrack.cpp index 8d18fc7f..d3387b4f 100644 --- a/src/hacks/Backtrack.cpp +++ b/src/hacks/Backtrack.cpp @@ -22,10 +22,12 @@ namespace hacks::shared::backtrack { void EmptyBacktrackData(BacktrackData &i); std::pair getBestEntBestTick(); +bool shouldBacktrack(); + BacktrackData headPositions[32][66]{}; int highesttick[32]{}; int lastincomingsequencenumber = 0; -static bool shouldDrawBt; +bool isBacktrackEnabled; circular_buf sequences{ 2048 }; void UpdateIncomingSequences() @@ -71,19 +73,16 @@ int BestTick = 0; int iBestTarget = -1; void Run() { - if (!enable) + if (!shouldBacktrack()) + { + isBacktrackEnabled = false; return; + } + isBacktrackEnabled = true; if (CE_BAD(LOCAL_E)) return; - if (!shouldBacktrack()) - { - shouldDrawBt = false; - return; - } - shouldDrawBt = true; - CUserCmd *cmd = current_user_cmd; float bestFov = 99999; @@ -151,12 +150,10 @@ void Run() void Draw() { #if ENABLE_VISUALS - if (!enable) + if (!isBacktrackEnabled) return; if (!draw_bt) return; - if (!shouldDrawBt) - return; for (int i = 0; i < g_IEngine->GetMaxClients(); i++) { CachedEntity *ent = ENTITY(i); @@ -192,10 +189,16 @@ void Draw() #endif } +// Internal only, use isBacktrackEnabled var instead bool shouldBacktrack() { + if (!*enable) + return false; + CachedEntity *wep = g_pLocalPlayer->weapon(); + if (CE_BAD(wep)) + return false; int slot = - re::C_BaseCombatWeapon::GetSlot(RAW_ENT(g_pLocalPlayer->weapon())); + re::C_BaseCombatWeapon::GetSlot(RAW_ENT(wep)); switch ((int) slots) { case 0: @@ -229,11 +232,6 @@ bool shouldBacktrack() return false; } -bool isBacktrackEnabled() -{ - return *enable; -} - float getLatency() { return *latency; @@ -293,7 +291,7 @@ std::pair getBestEntBestTick() } else { - float bestFov = 0.0f; + float bestFov = 100.0f; for (int i = 0; i < g_IEngine->GetMaxClients(); i++) { CachedEntity *tar = ENTITY(i); diff --git a/src/hacks/Trigger.cpp b/src/hacks/Trigger.cpp index 4988eb25..25d696c5 100644 --- a/src/hacks/Trigger.cpp +++ b/src/hacks/Trigger.cpp @@ -109,7 +109,7 @@ void CreateMove() CachedEntity *ent = FindEntInSight(EffectiveTargetingRange()); // Check if can backtrack, shoot if we can - if (!CanBacktrack() || hacks::shared::backtrack::isBacktrackEnabled()) + if (!CanBacktrack() || hacks::shared::backtrack::isBacktrackEnabled) return; // Check if dormant or null to prevent crashes From 2fa43fe72f418609e793bb453abbe8171422b81a Mon Sep 17 00:00:00 2001 From: TotallyNotElite <1yourexperiment@protonmail.com> Date: Sat, 11 Aug 2018 18:30:50 +0200 Subject: [PATCH 2/2] Disable latency when backtrack disabled --- src/hacks/AutoBackstab.cpp | 3 ++- src/hacks/Backtrack.cpp | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/hacks/AutoBackstab.cpp b/src/hacks/AutoBackstab.cpp index 89c966b2..38ee2fcf 100644 --- a/src/hacks/AutoBackstab.cpp +++ b/src/hacks/AutoBackstab.cpp @@ -104,8 +104,9 @@ bool unifiedCanBackstab(Vector &vecAngle, Vector min, Vector max, forward.z = -sp; forward = forward * meleeRange + head; + Vector hit; // Check if we our line is within the targets hitbox - if (LineIntersectsBox(minz, maxz, head, forward)) + if (hacks::shared::triggerbot::CheckLineBox(minz, maxz, head, forward, hit)) return true; return false; } diff --git a/src/hacks/Backtrack.cpp b/src/hacks/Backtrack.cpp index d3387b4f..b7b01a7a 100644 --- a/src/hacks/Backtrack.cpp +++ b/src/hacks/Backtrack.cpp @@ -27,7 +27,7 @@ bool shouldBacktrack(); BacktrackData headPositions[32][66]{}; int highesttick[32]{}; int lastincomingsequencenumber = 0; -bool isBacktrackEnabled; +bool isBacktrackEnabled = false; circular_buf sequences{ 2048 }; void UpdateIncomingSequences() @@ -50,6 +50,8 @@ void UpdateIncomingSequences() } void AddLatencyToNetchan(INetChannel *ch, float Latency) { + if (!isBacktrackEnabled) + return; if (Latency > 200.0f) Latency -= ch->GetLatency(MAX_FLOWS); for (auto &seq : sequences)