; ============================================================
; МАКРОС КОМПЕНСАЦИИ ОТДАЧИ 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