Fix isBacktrackEnabled

This commit is contained in:
TotallyNotElite 2018-08-11 13:36:33 +02:00
parent 9b8cb223a8
commit 77dcc3d44f
5 changed files with 26 additions and 30 deletions

View File

@ -40,7 +40,6 @@ void Run();
void Draw(); void Draw();
void AddLatencyToNetchan(INetChannel *, float); void AddLatencyToNetchan(INetChannel *, float);
void UpdateIncomingSequences(); void UpdateIncomingSequences();
bool shouldBacktrack();
extern int lastincomingsequencenumber; extern int lastincomingsequencenumber;
extern int BestTick; extern int BestTick;
extern int iBestTarget; extern int iBestTarget;
@ -60,7 +59,7 @@ typedef boost::circular_buffer_space_optimized<CIncomingSequence> circular_buf;
extern circular_buf sequences; extern circular_buf sequences;
extern BacktrackData headPositions[32][66]; extern BacktrackData headPositions[32][66];
bool isBacktrackEnabled(); extern bool isBacktrackEnabled;
float getLatency(); float getLatency();
int getTicks(); int getTicks();
bool ValidTick(BacktrackData &i, CachedEntity *ent); bool ValidTick(BacktrackData &i, CachedEntity *ent);

View File

@ -91,7 +91,7 @@ AimbotCalculatedData_s calculated_data_array[2048]{};
#define IsMelee GetWeaponMode() == weapon_melee #define IsMelee GetWeaponMode() == weapon_melee
bool BacktrackAimbot() bool BacktrackAimbot()
{ {
if (!hacks::shared::backtrack::isBacktrackEnabled() || !*backtrackAimbot) if (!hacks::shared::backtrack::isBacktrackEnabled || !*backtrackAimbot)
return false; return false;
if (aimkey && !aimkey.isKeyDown()) if (aimkey && !aimkey.isKeyDown())
return true; return true;

View File

@ -45,9 +45,9 @@ int ClosestDistanceHitbox(CachedEntity *target,
{ {
int closest = -1; int closest = -1;
float closest_dist = 0.0f, dist = 0.0f; 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); dist = g_pLocalPlayer->v_Eye.DistTo(btd.hitboxes.at(i).center);
else else
dist = g_pLocalPlayer->v_Eye.DistTo( dist = g_pLocalPlayer->v_Eye.DistTo(
@ -67,7 +67,7 @@ bool unifiedCanBackstab(Vector &vecAngle, Vector min, Vector max,
// Get melee range // Get melee range
float meleeRange = re::C_TFWeaponBaseMelee::GetSwingRange(RAW_ENT(LOCAL_W)); float meleeRange = re::C_TFWeaponBaseMelee::GetSwingRange(RAW_ENT(LOCAL_W));
if (fabsf(vecAngle.y - 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; return false;
if (!min.x && !max.x) if (!min.x && !max.x)
return false; return false;
@ -104,9 +104,8 @@ bool unifiedCanBackstab(Vector &vecAngle, Vector min, Vector max,
forward.z = -sp; forward.z = -sp;
forward = forward * meleeRange + head; forward = forward * meleeRange + head;
Vector hit;
// Check if we our line is within the targets hitbox // 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 true;
return false; return false;
} }
@ -122,7 +121,7 @@ void CreateMove()
if (!CanShoot()) if (!CanShoot())
return; return;
CachedEntity *besttarget = nullptr; CachedEntity *besttarget = nullptr;
if (!backtrack::isBacktrackEnabled()) if (!backtrack::isBacktrackEnabled)
{ {
for (int i = 0; i < g_IEngine->GetMaxClients(); i++) for (int i = 0; i < g_IEngine->GetMaxClients(); i++)
{ {
@ -173,7 +172,7 @@ void CreateMove()
{ {
hacks::shared::anti_anti_aim::resolveEnt(besttarget->m_IDX); hacks::shared::anti_anti_aim::resolveEnt(besttarget->m_IDX);
Vector angle = NET_VECTOR(RAW_ENT(LOCAL_E), netvar.m_angEyeAngles); 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) for (angle.y = -180.0f; angle.y < 180.0f; angle.y += 10.0f)
{ {

View File

@ -22,10 +22,12 @@ namespace hacks::shared::backtrack
{ {
void EmptyBacktrackData(BacktrackData &i); void EmptyBacktrackData(BacktrackData &i);
std::pair<int, int> getBestEntBestTick(); std::pair<int, int> getBestEntBestTick();
bool shouldBacktrack();
BacktrackData headPositions[32][66]{}; BacktrackData headPositions[32][66]{};
int highesttick[32]{}; int highesttick[32]{};
int lastincomingsequencenumber = 0; int lastincomingsequencenumber = 0;
static bool shouldDrawBt; bool isBacktrackEnabled;
circular_buf sequences{ 2048 }; circular_buf sequences{ 2048 };
void UpdateIncomingSequences() void UpdateIncomingSequences()
@ -71,19 +73,16 @@ int BestTick = 0;
int iBestTarget = -1; int iBestTarget = -1;
void Run() void Run()
{ {
if (!enable) if (!shouldBacktrack())
{
isBacktrackEnabled = false;
return; return;
}
isBacktrackEnabled = true;
if (CE_BAD(LOCAL_E)) if (CE_BAD(LOCAL_E))
return; return;
if (!shouldBacktrack())
{
shouldDrawBt = false;
return;
}
shouldDrawBt = true;
CUserCmd *cmd = current_user_cmd; CUserCmd *cmd = current_user_cmd;
float bestFov = 99999; float bestFov = 99999;
@ -151,12 +150,10 @@ void Run()
void Draw() void Draw()
{ {
#if ENABLE_VISUALS #if ENABLE_VISUALS
if (!enable) if (!isBacktrackEnabled)
return; return;
if (!draw_bt) if (!draw_bt)
return; return;
if (!shouldDrawBt)
return;
for (int i = 0; i < g_IEngine->GetMaxClients(); i++) for (int i = 0; i < g_IEngine->GetMaxClients(); i++)
{ {
CachedEntity *ent = ENTITY(i); CachedEntity *ent = ENTITY(i);
@ -192,10 +189,16 @@ void Draw()
#endif #endif
} }
// Internal only, use isBacktrackEnabled var instead
bool shouldBacktrack() bool shouldBacktrack()
{ {
if (!*enable)
return false;
CachedEntity *wep = g_pLocalPlayer->weapon();
if (CE_BAD(wep))
return false;
int slot = int slot =
re::C_BaseCombatWeapon::GetSlot(RAW_ENT(g_pLocalPlayer->weapon())); re::C_BaseCombatWeapon::GetSlot(RAW_ENT(wep));
switch ((int) slots) switch ((int) slots)
{ {
case 0: case 0:
@ -229,11 +232,6 @@ bool shouldBacktrack()
return false; return false;
} }
bool isBacktrackEnabled()
{
return *enable;
}
float getLatency() float getLatency()
{ {
return *latency; return *latency;
@ -293,7 +291,7 @@ std::pair<int, int> getBestEntBestTick()
} }
else else
{ {
float bestFov = 0.0f; float bestFov = 100.0f;
for (int i = 0; i < g_IEngine->GetMaxClients(); i++) for (int i = 0; i < g_IEngine->GetMaxClients(); i++)
{ {
CachedEntity *tar = ENTITY(i); CachedEntity *tar = ENTITY(i);

View File

@ -109,7 +109,7 @@ void CreateMove()
CachedEntity *ent = FindEntInSight(EffectiveTargetingRange()); CachedEntity *ent = FindEntInSight(EffectiveTargetingRange());
// Check if can backtrack, shoot if we can // Check if can backtrack, shoot if we can
if (!CanBacktrack() || hacks::shared::backtrack::isBacktrackEnabled()) if (!CanBacktrack() || hacks::shared::backtrack::isBacktrackEnabled)
return; return;
// Check if dormant or null to prevent crashes // Check if dormant or null to prevent crashes