[GTA5RP⏰][СЕКУНДОМЕР ДЕМОРГАН]

sexysotka

Новичок
Автор темы
1
1
ТОКАРЬ - 1минута 8секунд
ШВЕЙКА - 1минута 28секунд

ГОРЯЧИЕ КЛАВИШИ:
F - Запуск / Пауза секундомера
R - Сброс на 00:00.000
Esc - Закрыть программу

ОСОБЕННОСТИ:
Формат времени: ММ:СС.ммм (минуты:секунды.миллисекунды)
Звуковой сигнал при 1 минуте (за 8 секунд до токаря)
Звуковой сигнал при 1 минуте 20 секунд (за 8 секунд до швейки)

ИСПОЛЬЗОВАНИЕ:
1) Запустите скрипт от администратора,
2) GTA5 в оконном режиме(с/без рамки),

ТРЕБОВАНИЯ:
Установленный AutoHotkey

Внешний вид: [01:28.000]
1761128413191.png

секундомер:
; Секундомер с горячими клавишами
; F - запуск/пауза, R - сброс

#SingleInstance Force
#Persistent

; Скачивание правого логотипа
rightLogoUrl := "https://cdn-icons-png.flaticon.com/512/8120/8120015.png"
rightLogoPath := A_Temp "\timer_right_logo.png"

; Скачиваем логотип если его нет
IfNotExist, %rightLogoPath%
{
    UrlDownloadToFile, %rightLogoUrl%, %rightLogoPath%
}

; Настройки GUI
Gui, +AlwaysOnTop -Caption +ToolWindow +LastFound
Gui, Color, 000000
Gui, Font, c00FF00 s24 bold, Consolas
Gui, Add, Text, vTimerText x10 y10 w180 h40 Center, 00:00.000
Gui, Add, Picture, vRightLogo x+10 y10 w40 h40, %rightLogoPath%
Gui, Show, x10 y10 NoActivate, TimerWindow

; Переменные таймера
isRunning := false
startTime := 0
elapsedTime := 0
minuteReached := false
minute20Reached := false

return

; Запуск/пауза по F
F::
    if (!isRunning) {
        ; Запуск таймера
        if (startTime = 0) {
            startTime := A_TickCount
        } else {
            ; Продолжение после паузы
            startTime := A_TickCount - elapsedTime
        }
        isRunning := true
        minuteReached := false
        minute20Reached := false
        SetTimer, UpdateTimer, 10
    } else {
        ; Пауза
        isRunning := false
        elapsedTime := A_TickCount - startTime
        SetTimer, UpdateTimer, Off
    }
return

; Сброс по R
R::
    isRunning := false
    startTime := 0
    elapsedTime := 0
    minuteReached := false
    minute20Reached := false
    SetTimer, UpdateTimer, Off
    GuiControl,, TimerText, 00:00.000
return

; Обновление отображения таймера
UpdateTimer:
    currentTime := A_TickCount - startTime
    
    ; Проверка на достижение 1 минуты
    if (currentTime >= 60000 && !minuteReached) {
        minuteReached := true
        SoundPlay, *64  ; Звук системного колокольчика
    }
    
    ; Проверка на достижение 1 минуты 20 секунд
    if (currentTime >= 80000 && !minute20Reached) {
        minute20Reached := true
        ; Альтернативный звук - бип
        Loop, 3 {
            SoundBeep, 800, 200
            Sleep, 100
        }
    }
    
    minutes := Floor(currentTime / 60000)
    seconds := Floor(Mod(currentTime, 60000) / 1000)
    milliseconds := Mod(currentTime, 1000)
    
    timeString := Format("{1:02d}:{2:02d}.{3:03d}", minutes, seconds, milliseconds)
    GuiControl,, TimerText, %timeString%
return

; Закрытие скрипта
Esc::
    GuiClose:
    ExitApp
return

; Перемещение окна мышью
GuiDrag:
    PostMessage, 0xA1, 2,,, A
return
 
  • Нравится
Реакции: grablov