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


#Requires AutoHotkey v2.0
#SingleInstance Force

; --- Настройки интерфейса ---
MyGui := Gui("+AlwaysOnTop -MaximizeBox", "Pro Clicker v2.0")
MyGui.BackColor := "121212" 
MyGui.SetFont("s10 cWhite", "Segoe UI")

MyGui.Add("Text", "Center w200", "СОСТОЯНИЕ:")

; Добавили h30, чтобы текст не обрезался снизу
StatusLabel := MyGui.Add("Text", "Center w200 h30 cRed", "ВЫКЛЮЧЕН")
StatusLabel.SetFont("s14 Bold")

MyGui.Add("Text", "w180", "Интервал цикла (мс):")
EditInterval := MyGui.Add("Edit", "w180 Background212121 cWhite", "100")

MyGui.Add("Text", "w180", "Зажим кнопки (мс):")
EditHold := MyGui.Add("Edit", "w180 Background212121 cWhite", "70")

MyGui.SetFont("s8 cGray") 
MyGui.Add("Text", "w180", "Клавиша активации: F2")

MyGui.Show("w220")



; --- Логика кликера ---
Toggled := false

F2:: {
    global Toggled := !Toggled
    
    if Toggled {
        ; Обновляем визуализацию
        StatusLabel.Value := "АКТИВЕН"
        StatusLabel.Opt("cGreen")
        SoundBeep(750, 150)
        
        ; Берем значения из полей ввода
        Interval := IsNumber(EditInterval.Value) ? Number(EditInterval.Value) : 100
        SetTimer(ClickLoop, Interval)
    } else {
        StatusLabel.Value := "ВЫКЛЮЧЕН"
        StatusLabel.Opt("cRed")
        SoundBeep(500, 150)
        SetTimer(ClickLoop, 0)
    }
}

ClickLoop() {
    if !Toggled
        return
    
    HoldTime := IsNumber(EditHold.Value) ? Number(EditHold.Value) : 70
    
    Click("Down")
    Sleep(HoldTime)
    Click("Up")
}

; Закрытие скрипта при закрытии окна
MyGui.OnEvent("Close", (*) => ExitApp())