Untitled
unknown
c_cpp
9 months ago
4.9 kB
3
Indexable
if (settings::visualsSettings::enableEsp) {
auto draw = ImGui::GetForegroundDrawList();
for (size_t i = 0; i < playersData.size(); ++i) {
esp_t esp(sdk::client_info_base + (i * offsets::BO6::player::size));
const auto& player = playersData[i];
auto sizeOfPlayersData = playersData.size();
std::vector<Scoreboard> scoreboardBuffer(sizeOfPlayersData);
const auto& scoreboard = scoreboardBuffer[i];
if (player.health <= 0) {
continue;
}
if ((!settings::reddot && player.teamId == localPlayer.teamId) || player.isDead || scoreboard.status == 2 ||
(settings::visualsSettings::legitEsp && !player.isVisible)) {
continue;
}
vec2_t screen;
vec3_t pos = player.position;
if (w2s(pos, screen, player)) {
auto dist = units_to_m(localPlayer.position.distance_to(player.position));
if (dist > 1.0f && dist < settings::visualsSettings::maxespdist) {
vec2_t screenHead;
vec3_t headPos = pos;
headPos.z += 66.f;
if (w2s(headPos, screenHead, player)) {
float height = screen.y - screenHead.y;
float width = height * 0.25f;
ImVec2 boxUpperLeft(screenHead.x - width, screenHead.y);
ImVec2 boxLowerRight(screenHead.x + width, screen.y);
VisualParams params = CalculateVisualParams(dist, settings::visualsSettings::maxespdist, CLOSE_DISTANCE, 0.1f, 2.5f);
if (settings::visualsSettings::boxes) {
vec2_t headScreen, feetScreen;
vec3_t headPos = pos;
headPos.z += 66.f;
vec3_t feetPos = pos;
if (espw2s(headPos, headScreen) && espw2s(feetPos, feetScreen)) {
float height = abs(headScreen.y - feetScreen.y);
float width = height * 0.65f;
if (height > 0 && width > 0) {
ImU32 boxColor = player.isVisible
? ImGui::GetColorU32(ImVec4(settings::visualsSettings::boxColorVisible[0],
settings::visualsSettings::boxColorVisible[1],
settings::visualsSettings::boxColorVisible[2],
params.alpha))
: ImGui::GetColorU32(ImVec4(settings::visualsSettings::boxColorNotVisible[0],
settings::visualsSettings::boxColorNotVisible[1],
settings::visualsSettings::boxColorNotVisible[2],
params.alpha));
if (settings::boxStyles == 0) {
DrawBox(headScreen.x - width / 2, headScreen.y, width, height, player.isVisible, boxColor, settings::boxThickness, params);
}
else if (settings::boxStyles == 1) {
DrawPlayerCorneredBox(headScreen.x - width / 2, headScreen.y, width, height, player.isVisible, boxColor, settings::boxThickness, params);
}
}
}
}
if (settings::healthbars) {
DrawHealthBar(draw, player.health, 127.0f, boxUpperLeft, boxLowerRight, params);
}
if (settings::visualsSettings::nameesp) {
DrawPlayerName(draw, player.name, ImVec2(screenHead.x, boxUpperLeft.y + 10), params);
}
/*if (settings::visualsSettings::killsEsp) {
DrawPlayerKills(draw, player.scoreboard.kills, ImVec2(screenHead.x, boxLowerRight.y + 20), params);
}*/
if (settings::visualsSettings::distanceesp) {
DrawDistance(draw, dist, ImVec2(screen.x, screen.y - 20));
}
/// TODO: refactor for other games maybe.
if (settings::visualsSettings::boneesp) {
DrawBones(draw, player, i, params);
}
if (settings::visualsSettings::drawlines) {
ImVec2 startPoint = ImVec2(halfScreenWidth, settings::visualsSettings::linetype == 1 ? ref_def.height : halfScreenHeight);
ImVec2 endPoint = ImVec2(screen.x, screen.y);
DrawLines(draw, startPoint, endPoint, player.isVisible, params);
}
}
}
}
}
}Editor is loading...
Leave a Comment