add: aimbot, smoothing, fov
This commit is contained in:
@@ -156,7 +156,7 @@ void DrawCircleFilled(int x, int y, int radius, RGBA* color) {
|
|||||||
ImGui::GetOverlayDrawList()->AddCircleFilled(ImVec2(x, y), radius, ImGui::ColorConvertFloat4ToU32(ImVec4(color->R / 255.0, color->G / 255.0, color->B / 255.0, color->A / 255.0)));
|
ImGui::GetOverlayDrawList()->AddCircleFilled(ImVec2(x, y), radius, ImGui::ColorConvertFloat4ToU32(ImVec4(color->R / 255.0, color->G / 255.0, color->B / 255.0, color->A / 255.0)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawCircle(int x, int y, int radius, RGBA* color, int segments) {
|
void DrawCircle(int x, int y, int radius, RGBA* color, int segments = 0) {
|
||||||
ImGui::GetOverlayDrawList()->AddCircle(ImVec2(x, y), radius, ImGui::ColorConvertFloat4ToU32(ImVec4(color->R / 255.0, color->G / 255.0, color->B / 255.0, color->A / 255.0)), segments);
|
ImGui::GetOverlayDrawList()->AddCircle(ImVec2(x, y), radius, ImGui::ColorConvertFloat4ToU32(ImVec4(color->R / 255.0, color->G / 255.0, color->B / 255.0, color->A / 255.0)), segments);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,10 @@ bool enemy_name = true;
|
|||||||
bool crosshair = true;
|
bool crosshair = true;
|
||||||
bool ImGui_Initialised = false;
|
bool ImGui_Initialised = false;
|
||||||
bool CreateConsole = false;
|
bool CreateConsole = false;
|
||||||
|
bool aimbot = true;
|
||||||
|
bool show_fov = true;
|
||||||
|
float aim_fov = 10.f;
|
||||||
|
float smooth = 75.f;
|
||||||
|
|
||||||
namespace OverlayWindow {
|
namespace OverlayWindow {
|
||||||
WNDCLASSEX WindowClass;
|
WNDCLASSEX WindowClass;
|
||||||
@@ -34,6 +38,31 @@ namespace DirectX9Interface {
|
|||||||
MSG Message = { NULL };
|
MSG Message = { NULL };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DoAimbot(Vector3 headpos, float factor, bool show_fov) {
|
||||||
|
float fov = (factor / ((30 - aim_fov) - factor)) * 100;
|
||||||
|
float aimX = headpos.x - Process::WindowWidth / 2;
|
||||||
|
float aimY = headpos.y - Process::WindowHeight / 2;
|
||||||
|
|
||||||
|
if (show_fov) {
|
||||||
|
RGBA White = { 255, 255, 255, 255 };
|
||||||
|
DrawCircle((int)headpos.x, (int)headpos.y, fov, &White);
|
||||||
|
}
|
||||||
|
if (!aimbot || ShowMenu)
|
||||||
|
return;
|
||||||
|
if (!GetAsyncKeyState(VK_HOME) && !GetAsyncKeyState(VK_LBUTTON))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (abs(aimX) < fov && abs(aimY) < fov) {
|
||||||
|
if (smooth == 0) {
|
||||||
|
aimX *= 4;
|
||||||
|
aimY *= 4;
|
||||||
|
}
|
||||||
|
aimX *= (100 - smooth) / 100;
|
||||||
|
aimY *= (100 - smooth) / 100;
|
||||||
|
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, aimX, aimY, 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Draw() {
|
void Draw() {
|
||||||
RGBA Cyan = { 0, 231, 255, 255 };
|
RGBA Cyan = { 0, 231, 255, 255 };
|
||||||
if (crosshair) DrawCircleFilled(Process::WindowWidth/2, Process::WindowHeight/2, 3, &Cyan);
|
if (crosshair) DrawCircleFilled(Process::WindowWidth/2, Process::WindowHeight/2, 3, &Cyan);
|
||||||
@@ -105,6 +134,15 @@ void Draw() {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Vector3 neckpos = GetBonePos(bonematrix_addr, BoneID::HEAD);
|
||||||
|
neckpos.z += 5.f;
|
||||||
|
neckpos.y -= 2.f;
|
||||||
|
Vector3 w2s_neckpos;
|
||||||
|
|
||||||
|
if (!WorldToScreen(neckpos, w2s_neckpos)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
DoAimbot(w2s_neckpos, sqrt(abs(w2s_headpos.x - w2s_neckpos.x) + abs(w2s_headpos.y - w2s_neckpos.y)), show_fov);
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
char ent_text[256];
|
char ent_text[256];
|
||||||
@@ -153,6 +191,13 @@ void DrawMenu() {
|
|||||||
ImGui::Checkbox("Healthbar##enemy", &enemy_esp_health_bar);
|
ImGui::Checkbox("Healthbar##enemy", &enemy_esp_health_bar);
|
||||||
ImGui::Checkbox("Name##enemy", &enemy_name);
|
ImGui::Checkbox("Name##enemy", &enemy_name);
|
||||||
|
|
||||||
|
ImGui::Separator();
|
||||||
|
ImGui::Checkbox("Aimbot", &aimbot);
|
||||||
|
ImGui::SameLine();
|
||||||
|
ImGui::Checkbox("Show FOV", &show_fov);
|
||||||
|
ImGui::SliderFloat("FOV", &aim_fov, 1.f, 30.f, "%1.f", 1.f);
|
||||||
|
ImGui::SliderFloat("Smoothing", &smooth, 0.f, 100.f, "%1.f", 1.f);
|
||||||
|
|
||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
if (ImGui::Button("Unhook")) {
|
if (ImGui::Button("Unhook")) {
|
||||||
Unhook = true;
|
Unhook = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user