Загрузка данных


-- Альтернативный рабочий скрипт (исправлен)
-- Если не работает, проверь, поддерживает ли эксплойт библиотеку Drawing и функцию mousemoverel

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UIS = game:GetService("UserInputService")
local Camera = workspace.CurrentCamera
local LP = Players.LocalPlayer

-- Проверка наличия Drawing (в некоторых эксплойтах она в глобальной таблице)
local Drawing = Drawing or (syn and syn.Drawing) or (getgenv and getgenv().Drawing) or (getrenv and getrenv().Drawing)
if not Drawing then
    warn("Drawing не найдена! ESP не будет работать.")
end

-- Проверка mousemoverel (иногда называется mousemoverel или mouse_move)
local moveMouse = mousemoverel or (syn and syn.mousemoverel) or (getgenv and getgenv().mousemoverel) or (getrenv and getrenv().mousemoverel)

local aimEnabled = false
local espEnabled = false
local espObjects = {}

-- Функция создания ESP
local function createESP(player)
    if not Drawing then return end
    local box = Drawing.new("Square")
    box.Thickness = 2
    box.Color = Color3.fromRGB(255, 0, 0)
    box.Transparency = 0.5
    box.Filled = false
    box.Visible = false

    local label = Drawing.new("Text")
    label.Color = Color3.fromRGB(255, 0, 0)
    label.Size = 14
    label.Center = true
    label.Outline = true
    label.OutlineColor = Color3.fromRGB(0, 0, 0)
    label.Visible = false

    espObjects[player] = { box = box, label = label }
end

local function removeESP(player)
    local obj = espObjects[player]
    if obj then
        obj.box:Remove()
        obj.label:Remove()
        espObjects[player] = nil
    end
end

-- Обновление ESP
local function updateESP()
    if not espEnabled then
        for _, obj in pairs(espObjects) do
            obj.box.Visible = false
            obj.label.Visible = false
        end
        return
    end

    for _, player in pairs(Players:GetPlayers()) do
        if player == LP then continue end
        local character = player.Character
        if not character or not character.PrimaryPart then
            local obj = espObjects[player]
            if obj then
                obj.box.Visible = false
                obj.label.Visible = false
            end
            continue
        end

        local obj = espObjects[player]
        if not obj then
            createESP(player)
            obj = espObjects[player]
        end

        local root = character.PrimaryPart
        local screenPos, onScreen = Camera:WorldToScreenPoint(root.Position)
        if not onScreen then
            obj.box.Visible = false
            obj.label.Visible = false
            continue
        end

        local dist = (Camera.CFrame.Position - root.Position).Magnitude
        local size = math.clamp(200 / dist * 3, 20, 150)
        local half = size / 2
        local x, y = screenPos.X, screenPos.Y - size * 0.8

        obj.box.Position = Vector2.new(x - half, y - half)
        obj.box.Size = Vector2.new(size, size * 1.5)
        obj.box.Visible = true

        local health = 100
        local humanoid = character:FindFirstChild("Humanoid")
        if humanoid then
            health = math.floor(humanoid.Health)
        end

        obj.label.Text = player.Name .. " [" .. health .. " HP]"
        obj.label.Position = Vector2.new(x, y - size * 0.9 - 20)
        obj.label.Visible = true
    end

    for player, _ in pairs(espObjects) do
        if not player.Parent then
            removeESP(player)
        end
    end
end

-- Аим на ближайшего
local function aimAtNearest()
    local closestDist = math.huge
    local closestHead = nil

    for _, player in pairs(Players:GetPlayers()) do
        if player == LP then continue end
        local character = player.Character
        if not character then continue end
        local head = character:FindFirstChild("Head")
        if not head then continue end

        local dist = (head.Position - Camera.CFrame.Position).Magnitude
        if dist < closestDist then
            closestDist = dist
            closestHead = head
        end
    end

    if closestHead then
        local screenPos, onScreen = Camera:WorldToScreenPoint(closestHead.Position)
        if onScreen and moveMouse then
            -- Перемещаем мышь
            local currentMouse = UIS:GetMouseLocation()
            local deltaX = screenPos.X - currentMouse.X
            local deltaY = screenPos.Y - currentMouse.Y
            moveMouse(deltaX, deltaY)
        elseif onScreen and not moveMouse then
            -- Альтернативный способ через mouse.Move (если есть)
            local mouse = LP:GetMouse()
            if mouse and mouse.Move then
                mouse.Move(screenPos.X, screenPos.Y)
            else
                warn("Не удалось переместить мышь! Нет mousemoverel или mouse.Move.")
            end
        end

        -- Вывод HP в консоль
        local humanoid = closestHead.Parent:FindFirstChild("Humanoid")
        if humanoid then
            print("Цель: " .. (closestHead.Parent.Name or "Unknown") .. " | HP: " .. math.floor(humanoid.Health))
        end
    end
end

-- Обработка клавиш
UIS.InputBegan:Connect(function(input, gameProcessed)
    if gameProcessed then return end

    if input.KeyCode == Enum.KeyCode.B then
        aimEnabled = not aimEnabled
        if aimEnabled then
            print("[AIM] ON")
        else
            print("[AIM] OFF")
        end
    end

    if input.KeyCode == Enum.KeyCode.N then
        espEnabled = not espEnabled
        if espEnabled then
            print("[ESP] ON (Red)")
            for _, player in pairs(Players:GetPlayers()) do
                if player ~= LP then
                    createESP(player)
                end
            end
        else
            print("[ESP] OFF")
            for player, _ in pairs(espObjects) do
                removeESP(player)
            end
        end
    end
end)

-- Обновление каждый кадр
RunService.RenderStepped:Connect(function()
    if aimEnabled then
        aimAtNearest()
    end
    updateESP()
end)

-- При добавлении/удалении игроков
Players.PlayerAdded:Connect(function(player)
    if espEnabled and player ~= LP then
        createESP(player)
    end
end)
Players.PlayerRemoving:Connect(removeESP)

print("Скрипт загружен. B - AIM, N - ESP.")