Fix some backtrack aimbot performance issues
This commit is contained in:
parent
d63ef2753f
commit
713e601117
@ -123,6 +123,7 @@
|
||||
<List width="150">
|
||||
<AutoVariable width="fill" target="backtrack.enabled" label="Enable backtracking" tooltip="Allow hitting enemies where they were in the past."/>
|
||||
<AutoVariable width="fill" target="aimbot.backtrack" label="Aim at backtracking" tooltip="Aim at backtrack ticks."/>
|
||||
<AutoVariable width="fill" target="aimbot.backtrack.only-last-tick" label="Aim at only the last tick" tooltip="Aim at only the last backtrack tick. !DISABLING THIS MAY CAUSE LAG!"/>
|
||||
<AutoVariable width="fill" target="misc.ping-reducer.enable" label="Ping reducer" tooltip="Try to reduce your ping to the number set below."/>
|
||||
<AutoVariable width="fill" target="misc.ping-reducer.target" label="Target ping"/>
|
||||
<AutoVariable width="fill" target="backtrack.latency" label="Fake latency" tooltip="Amount of fake latency." min="0" max="1000" step="25"/>
|
||||
@ -140,7 +141,7 @@
|
||||
</LabeledObject>
|
||||
</List>
|
||||
</Box>
|
||||
<Box padding="12 6 6 6" width="content" height="content" name="Sandvich aimbot" x="340" y="220">
|
||||
<Box padding="12 6 6 6" width="content" height="content" name="Sandvich aimbot" x="340" y="230">
|
||||
<List width="150">
|
||||
<AutoVariable width="fill" target="sandwichaim.enable" label="Enable Sandvich aimbot"/>
|
||||
<AutoVariable width="fill" target="sandwichaim.aimkey" label="Aimkey"/>
|
||||
|
@ -61,6 +61,7 @@ static settings::Boolean auto_zoom{ "aimbot.auto.zoom", "0" };
|
||||
static settings::Boolean auto_unzoom{ "aimbot.auto.unzoom", "0" };
|
||||
|
||||
static settings::Boolean backtrackAimbot{ "aimbot.backtrack", "0" };
|
||||
static settings::Boolean backtrackLastTickOnly("aimbot.backtrack.only-last-tick", "true");
|
||||
static bool force_backtrack_aimbot = false;
|
||||
static settings::Boolean backtrackVischeckAll{ "aimbot.backtrack.vischeck-all", "0" };
|
||||
|
||||
@ -175,6 +176,27 @@ bool shouldBacktrack(CachedEntity *ent)
|
||||
return true;
|
||||
}
|
||||
|
||||
// Reduce Backtrack lag by checking if the ticks hitboxes are within a reasonable FOV range
|
||||
bool validateTickFOV(tf2::backtrack::BacktrackData &tick)
|
||||
{
|
||||
if (fov)
|
||||
{
|
||||
bool valid_fov = false;
|
||||
for (auto &hitbox : tick.hitboxes)
|
||||
{
|
||||
float score = GetFov(g_pLocalPlayer->v_OrigViewangles, g_pLocalPlayer->v_Eye, hitbox.center);
|
||||
// Check if the FOV is within a 2.0f threshhold
|
||||
if (score < fov + 2.0f)
|
||||
{
|
||||
valid_fov = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return valid_fov;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Am I holding Hitman's Heatmaker ?
|
||||
static bool CarryingHeatmaker()
|
||||
{
|
||||
@ -514,10 +536,19 @@ CachedEntity *RetrieveBestTarget(bool aimkey_state)
|
||||
{
|
||||
if (shouldBacktrack(target_last))
|
||||
{
|
||||
auto good_ticks = hacks::tf2::backtrack::getGoodTicks(target_last);
|
||||
if (good_ticks)
|
||||
for (auto &bt_tick : *good_ticks)
|
||||
auto good_ticks_tmp = hacks::tf2::backtrack::getGoodTicks(target_last);
|
||||
if (good_ticks_tmp)
|
||||
{
|
||||
auto good_ticks = *good_ticks_tmp;
|
||||
if (backtrackLastTickOnly)
|
||||
{
|
||||
good_ticks.clear();
|
||||
good_ticks.push_back(good_ticks_tmp->back());
|
||||
}
|
||||
for (auto &bt_tick : good_ticks)
|
||||
{
|
||||
if (!validateTickFOV(bt_tick))
|
||||
continue;
|
||||
hacks::tf2::backtrack::MoveToTick(bt_tick);
|
||||
if (IsTargetStateGood(target_last))
|
||||
return target_last;
|
||||
@ -525,6 +556,7 @@ CachedEntity *RetrieveBestTarget(bool aimkey_state)
|
||||
hacks::tf2::backtrack::RestoreEntity(target_last->m_IDX);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check if previous target is still good
|
||||
else if (IsTargetStateGood(target_last))
|
||||
@ -551,10 +583,19 @@ CachedEntity *RetrieveBestTarget(bool aimkey_state)
|
||||
static std::optional<hacks::tf2::backtrack::BacktrackData> temp_bt_tick = std::nullopt;
|
||||
if (shouldBacktrack(ent))
|
||||
{
|
||||
auto good_ticks = tf2::backtrack::getGoodTicks(ent);
|
||||
if (good_ticks)
|
||||
for (auto &bt_tick : *good_ticks)
|
||||
auto good_ticks_tmp = tf2::backtrack::getGoodTicks(ent);
|
||||
if (good_ticks_tmp)
|
||||
{
|
||||
auto good_ticks = *good_ticks_tmp;
|
||||
if (backtrackLastTickOnly)
|
||||
{
|
||||
good_ticks.clear();
|
||||
good_ticks.push_back(good_ticks_tmp->back());
|
||||
}
|
||||
for (auto &bt_tick : good_ticks)
|
||||
{
|
||||
if (!validateTickFOV(bt_tick))
|
||||
continue;
|
||||
hacks::tf2::backtrack::MoveToTick(bt_tick);
|
||||
if (IsTargetStateGood(ent))
|
||||
{
|
||||
@ -565,6 +606,7 @@ CachedEntity *RetrieveBestTarget(bool aimkey_state)
|
||||
hacks::tf2::backtrack::RestoreEntity(ent->m_IDX);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
isTargetGood = IsTargetStateGood(ent);
|
||||
if (isTargetGood)
|
||||
|
Reference in New Issue
Block a user