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


; ============================================================
; МАКРОС КОМПЕНСАЦИИ ОТДАЧИ AK-47 (RUST)
; Для мыши Ardor Gaming (PAW3395) — работает на любом DPI
; Активация: зажатая левая кнопка мыши
; Безопасен на community серверах
; ============================================================

#NoEnv
#Persistent
#SingleInstance, Force
SendMode, Input
SetWorkingDir, %A_ScriptDir%

; Настройка скорости работы макроса
SetBatchLines, -1

; Горячая клавиша включения/выключения (по умолчанию F5)
F5::
    Toggle := !Toggle
    If (Toggle)
        TrayTip, Макрос, ВКЛЮЧЕН (компенсация отдачи), 1
    Else
        TrayTip, Макрос, ВЫКЛЮЧЕН, 1
Return

; Основной цикл — срабатывает при зажатой ЛКМ
~LButton::
    If !Toggle
        Return

    ; Сброс счётчика выстрелов
    shots := 0
    start := A_TickCount

    ; Цикл пока зажата кнопка
    While GetKeyState("LButton", "P")
    {
        ; Небольшая задержка чтобы не перегружать процессор
        Sleep, 10

        ; Каждые ~130 мс (скорострельность AK) — делаем компенсацию
        If (A_TickCount - start) > (shots * 130 + 30)
        {
            ; === ВЕРТИКАЛЬНАЯ КОМПЕНСАЦИЯ ===
            ; Значение 6 — для 800 DPI и чувствительности 0.4 в игре
            ; Если макрос слишком сильно дёргает вниз — уменьши цифру
            ; Если пули уходят вверх — увеличь
            DllCall("mouse_event", "uint", 0x0001, "int", 0, "int", 6, "uint", 0, "int", 0)

            ; === ГОРИЗОНТАЛЬНАЯ КОМПЕНСАЦИЯ (рандомный разброс) ===
            ; Имитация естественного разброса, чтобы не палиться
            Random, side, -2, 2
            DllCall("mouse_event", "uint", 0x0001, "int", side, "int", 0, "uint", 0, "int", 0)

            ; Увеличиваем счётчик выстрелов
            shots++
        }
    }
Return

; Остановка макроса по Escape (аварийно)
Esc::ExitApp