//comment your shit paste
-
Автор темы
- #1
Вообще хз что и почему не работает... Чекнул оффсеты, чекнул код, но так ничего и не нашел...
Сам код (да это самый обычный паблик код)
Структура и пару вызовов
Ну и вызывается в cm хуке, как и должно.
Буду благодарен и век не забуду если поможите)
Сам код (да это самый обычный паблик код)
Код:
void CLegitBot::BacktrackRun()
{
int bestTargetIndex = -1;
float bestFov = FLT_MAX;
CBaseEntity* local = I::ClientEntList->GetClientEntity(I::Engine->GetLocalPlayer());
player_info_t info;
for (int i = 0; i < I::Engine->GetMaxClients(); i++)
{
auto entity = I::ClientEntList->GetClientEntity(i);
if (!entity || !local)
continue;
if (entity == local)
continue;
if (!I::Engine->GetPlayerInfo(i, &info))
continue;
if (entity->GetDormant())
continue;
if (entity->GetTeam() == local->GetTeam())
continue;
if (entity->EntityIsAlive())
{
float simtime = entity->GetSimulationTime();
Vector hitboxPos = entity->GetBonePosition(0);
headPositions[i][G::UserCmd->command_number % 13] = backtrackData{ simtime, hitboxPos };
Vector ViewDir = AngleVector(G::UserCmd->viewangles + (local->GetPunch() * 2.f));
float FOVDistance = DistancePointToLine(hitboxPos, local->GetEyePosition(), ViewDir);
if (bestFov > FOVDistance)
{
bestFov = FOVDistance;
bestTargetIndex = i;
}
}
}
float bestTargetSimTime;
if (bestTargetIndex != -1)
{
float tempFloat = FLT_MAX;
Vector ViewDir = AngleVector(G::UserCmd->viewangles + (local->GetPunch() * 2.f));
for (int t = 0; t <= 12; ++t)
{
float tempFOVDistance = DistancePointToLine(headPositions[bestTargetIndex][t].hitboxPos, local->GetEyePosition(), ViewDir);
if (tempFloat > tempFOVDistance && headPositions[bestTargetIndex][t].simtime > I::Globals->curtime - 1)
{
tempFloat = tempFOVDistance;
bestTargetSimTime = headPositions[bestTargetIndex][t].simtime;
}
}
if (G::UserCmd->buttons & IN_ATTACK)
{
G::UserCmd->tick_count = TIME_TO_TICKS(bestTargetSimTime);
}
}
}
Код:
Vector AngleVector(QAngle meme)
{
auto sy = sin(meme.y / 180.f * static_cast<float>(3.141592654f));
auto cy = cos(meme.y / 180.f * static_cast<float>(3.141592654f));
auto sp = sin(meme.x / 180.f * static_cast<float>(3.141592654f));
auto cp = cos(meme.x / 180.f* static_cast<float>(3.141592654f));
return Vector(cp*cy, cp*sy, -sp);
}
float DistancePointToLine(Vector Point, Vector LineOrigin, Vector Dir)
{
auto PointDir = Point - LineOrigin;
auto TempOffset = PointDir.Dot(Dir) / (Dir.x*Dir.x + Dir.y*Dir.y + Dir.z*Dir.z);
if (TempOffset < 0.000001f)
return FLT_MAX;
auto PerpendicularPoint = LineOrigin + (Dir * TempOffset);
return (Point - PerpendicularPoint).Length();
}
struct backtrackData {
float simtime;
Vector hitboxPos;
};
Код:
if (Vars.Legitbot.Aimbot.Backtrack)
E::LegitBot->BacktrackRun();