Untitled

 avatar
unknown
plain_text
a month ago
3.2 kB
3
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