diff --git a/include/hacks/AntiAntiAim.hpp b/include/hacks/AntiAntiAim.hpp index d7ac11ce..d641db1f 100644 --- a/include/hacks/AntiAntiAim.hpp +++ b/include/hacks/AntiAntiAim.hpp @@ -3,10 +3,18 @@ */ #pragma once +#include +#include +#include +#include +#include +#include +#include namespace hacks::shared::anti_anti_aim { void createMove(); +void resolveEnt(int IDX, IClientEntity *entity = nullptr); -} \ No newline at end of file +} diff --git a/src/MiscTemporary.cpp b/src/MiscTemporary.cpp index 1c45f2d5..1509279d 100644 --- a/src/MiscTemporary.cpp +++ b/src/MiscTemporary.cpp @@ -16,8 +16,8 @@ int prevflowticks = 0; bool *bSendPackets{ nullptr }; -settings::Bool crypt_chat{ "chat.crypto", "false" }; +settings::Bool crypt_chat{ "chat.crypto", "true" }; settings::Bool clean_screenshots{ "visual.clean-screenshots", "false" }; settings::Bool nolerp{ "misc.no-lerp", "false" }; settings::Bool no_zoom{ "remove.scope", "false" }; -settings::Bool disable_visuals{ "visual.disable", "false" }; \ No newline at end of file +settings::Bool disable_visuals{ "visual.disable", "false" }; diff --git a/src/hacks/AntiAntiAim.cpp b/src/hacks/AntiAntiAim.cpp index c282e5c0..f1c33bc1 100644 --- a/src/hacks/AntiAntiAim.cpp +++ b/src/hacks/AntiAntiAim.cpp @@ -3,13 +3,6 @@ */ #include -#include -#include -#include -#include -#include -#include -#include static settings::Bool enable{ "anti-anti-aim.enable", "false" }; @@ -23,70 +16,74 @@ void hacks::shared::anti_anti_aim::createMove() IClientEntity *entity{ nullptr }; for (int i = 0; i < g_IEngine->GetMaxClients(); i++) { - if (i == g_IEngine->GetLocalPlayer()) - continue; - entity = g_IEntityList->GetClientEntity(i); - if (entity && !entity->IsDormant() && !NET_BYTE(entity, netvar.iLifeState)) - { - float quotat = 0; - float quotaf = 0; - if (!g_Settings.brute.choke[i].empty()) - for (auto it : g_Settings.brute.choke[i]) - { - if (it) - quotat++; - else - quotaf++; - } - float quota = quotat / quotaf; - Vector &angles = NET_VECTOR(entity, netvar.m_angEyeAngles); - static bool brutepitch = false; - if (g_Settings.brute.brutenum[i] > 5) - { - g_Settings.brute.brutenum[i] = 0; - brutepitch = !brutepitch; - } - angles.y = fmod(angles.y + 180.0f, 360.0f); - if (angles.y < 0) - angles.y += 360.0f; - angles.y -= 180.0f; - if (quota < 0.8f) - switch (g_Settings.brute.brutenum[i]) - { - case 0: - break; - case 1: - angles.y += 180.0f; - break; - case 2: - angles.y -= 90.0f; - break; - case 3: - angles.y += 90.0f; - break; - case 4: - angles.y -= 180.0f; - break; - case 5: - angles.y = 0.0f; - break; - } - if (brutepitch || quota < 0.8f) - switch (g_Settings.brute.brutenum[i] % 4) - { - case 0: - break; - case 1: - angles.x = -89.0f; - break; - case 2: - angles.x = 89.0f; - break; - case 3: - angles.x = 0.0f; - break; - } - } + resolveEnt(i, entity); } } +void hacks::shared::anti_anti_aim::resolveEnt(int IDX, IClientEntity *entity) +{ + if (IDX == g_IEngine->GetLocalPlayer()) + return; + entity = g_IEntityList->GetClientEntity(IDX); + if (entity && !entity->IsDormant() && !NET_BYTE(entity, netvar.iLifeState)) + { + float quotat = 0; + float quotaf = 0; + if (!g_Settings.brute.choke[IDX].empty()) + for (auto it : g_Settings.brute.choke[IDX]) + { + if (it) + quotat++; + else + quotaf++; + } + float quota = quotat / quotaf; + Vector &angles = NET_VECTOR(entity, netvar.m_angEyeAngles); + static bool brutepitch = false; + if (g_Settings.brute.brutenum[IDX] > 5) + { + g_Settings.brute.brutenum[IDX] = 0; + brutepitch = !brutepitch; + } + angles.y = fmod(angles.y + 180.0f, 360.0f); + if (angles.y < 0) + angles.y += 360.0f; + angles.y -= 180.0f; + if (quota < 0.8f) + switch (g_Settings.brute.brutenum[IDX]) + { + case 0: + break; + case 1: + angles.y += 180.0f; + break; + case 2: + angles.y -= 90.0f; + break; + case 3: + angles.y += 90.0f; + break; + case 4: + angles.y -= 180.0f; + break; + case 5: + angles.y = 0.0f; + break; + } + if (brutepitch || quota < 0.8f) + switch (g_Settings.brute.brutenum[IDX] % 4) + { + case 0: + break; + case 1: + angles.x = -89.0f; + break; + case 2: + angles.x = 89.0f; + break; + case 3: + angles.x = 0.0f; + break; + } + } +} diff --git a/src/hacks/AutoBackstab.cpp b/src/hacks/AutoBackstab.cpp index b98bb2b1..e766b7ab 100644 --- a/src/hacks/AutoBackstab.cpp +++ b/src/hacks/AutoBackstab.cpp @@ -10,6 +10,7 @@ #include "hacks/Backtrack.hpp" #include "hacks/Aimbot.hpp" #include "hacks/Trigger.hpp" +#include "hacks/AntiAntiAim.hpp" static settings::Bool enable{ "autobackstab.enable", "0" }; static settings::Bool silent{ "autobackstab.silent", "1" }; @@ -45,13 +46,6 @@ const Vector GetWorldSpaceCenter(CachedEntity *ent) return vWorldSpaceCenter; } -std::pair GetHitboxBounds(CachedEntity *it, int hitbox) -{ - std::pair result(it->hitboxes.GetHitbox(hitbox)->min, - it->hitboxes.GetHitbox(hitbox)->max); - return result; -} - void traceEntity(int *result_eindex, Vector *result_pos, QAngle angle, Vector loc, float meleeRange) { @@ -102,10 +96,9 @@ bool canBackstab(CachedEntity *tar, Vector angle, Vector loc, Vector hitboxLoc) } bool canBacktrackStab(hacks::shared::backtrack::BacktrackData &i, - Vector vecAngle, Vector loc, Vector hitboxLoc) + Vector vecAngle, Vector loc, Vector hitboxLoc, float targetAngle) { float meleeRange = re::C_TFWeaponBaseMelee::GetSwingRange(RAW_ENT(LOCAL_W)); - float targetAngle = i.viewangles; if (fabsf(vecAngle.y - targetAngle) >= 45) return false; if (loc.DistTo(hitboxLoc) > meleeRange) @@ -182,6 +175,7 @@ void CreateMove() } if (CE_GOOD(besttarget)) { + hacks::shared::anti_anti_aim::resolveEnt(besttarget->m_IDX); Vector angle = NET_VECTOR(RAW_ENT(LOCAL_E), netvar.m_angEyeAngles); if (!hacks::shared::backtrack::isBacktrackEnabled()) { @@ -242,7 +236,7 @@ void CreateMove() for (angle.y = -180.0f; angle.y < 180.0f; angle.y += 40.0f) { if (canBacktrackStab(i, angle, g_pLocalPlayer->v_Eye, - i.spine)) + i.spine, NET_VECTOR(RAW_ENT(besttarget), netvar.m_angEyeAngles).y)) { current_user_cmd->tick_count = i.tickcount; current_user_cmd->viewangles = angle;