Untitled
unknown
plain_text
8 months ago
3.2 kB
5
Indexable
vec3_t RotatePoint(vec3_t EntityPos, vec3_t LocalPlayerPos, int posX, int posY, int sizeX, int sizeY, float angle, float zoom, bool* viewCheck)
{
float r_1, r_2;
float x_1, y_1;
r_1 = -(EntityPos.y - LocalPlayerPos.y);
r_2 = EntityPos.x - LocalPlayerPos.x;
float Yaw = -(angle - 90.0f);
float yawToRadian = Yaw * (float)(M_PI / 180.0F);
x_1 = (r_1 * cos(yawToRadian) - r_2 * sin(yawToRadian)) / 20;
y_1 = (r_1 * sin(yawToRadian) + r_2 * cos(yawToRadian)) / 20;
*viewCheck = y_1 < 0;
x_1 *= zoom;
y_1 *= zoom;
int sizX = sizeX / 2;
int sizY = sizeY / 2;
x_1 += sizX;
y_1 += sizY;
if (x_1 < 5)
x_1 = 5;
if (x_1 > sizeX - 5)
x_1 = sizeX - 5;
if (y_1 < 5)
y_1 = 5;
if (y_1 > sizeY - 5)
y_1 = sizeY - 5;
x_1 += posX;
y_1 += posY;
return vec3_t(x_1, y_1, 0);
}
float player_t::get_yaw() {
auto c = driver::read<uintptr_t>(sdk::module_base + offsets::camera_base);
if (!c) return 0.0f;
auto v = driver::read<Matrix4x4>(c + 0x11C);
float yaw = atan2(v._31, v._11) * (180.0f / M_PI);
if (yaw < 0.0f) {
yaw += 360.0f;
}
return yaw;
}
if (vars::radarshow) {
static float radarX = 46.0f;
static float radarY = 26.0f;
float radarWidth = 245.0f;
float radarHeight = 245.0f;
float radarAlpha = vars::radar_transparency / 100.0f;
float zoom = 1.0f; // Factor de zoom
float angle = local.get_yaw(); // Ángulo de visión del jugador local
float maxRange = 16000.0f; // Rango máximo en metros
ImU32 radarColor = IM_COL32(
static_cast<int>(SubTittleColor.Value.x * 255),
static_cast<int>(SubTittleColor.Value.y * 255),
static_cast<int>(SubTittleColor.Value.z * 255),
static_cast<int>(radarAlpha * 255)
);
ImGui::GetForegroundDrawList()->AddRectFilled(
ImVec2(radarX, radarY),
ImVec2(radarX + radarWidth, radarY + radarHeight),
radarColor
);
ImVec2 radarCenter = ImVec2(radarX + (radarWidth / 2), radarY + (radarHeight / 2));
auto local_pos = local.get_pos();
vec3_t localPlayerPos = vec3_t(local_pos.x, local_pos.y, local_pos.z);
for (int i = 0; i < sdk::player_count(); ++i) {
vec3_t playerPos = player.get_pos();
vec2_t screenPos;
if (sdk::w2s(playerPos, screenPos)) {
bool viewCheck;
vec3_t rotatedPos = sdk::RotatePoint(playerPos, localPlayerPos, radarX, radarY, radarWidth, radarHeight, angle, zoom, &viewCheck, maxRange);
ImGui::GetForegroundDrawList()->AddCircleFilled(ImVec2(rotatedPos.x, rotatedPos.y), 3.0f, IM_COL32(255, 0, 0, 255));
}
}
}Editor is loading...
Leave a Comment