; Основной скрипт GUI-приложения
#Persistent ; Поддержка постоянного выполнения скрипта
Gui, Font, Bold
Gui, Show, h100 w185, [BOT] Port GTA 5 RP
; Информационные метки
Gui, Add, Text, h20 vBoxCountText w240, Перенесенные ящики: 0
Gui, Add, Text, h20 vMoneyCountText w240, Заработано: 0$
Gui, Add, Text, h20 vStatusText w240, Статус: Ожидание...
Gui, +AlwaysOnTop +ToolWindow ; Включить всегда сверху и окно инструмента
; Инициализация количества ящиков и денег
boxCount := 0
moneyCount := 0
isHandling := false ; Флаг для обработки события
Return
GuiClose:
ExitApp
; Привязка клавиш
F5::
StartAutomation()
Return
F9:: ; Сбросить количество ящиков и денег
ResetCounts()
Return
F7:: ; Выключить скрипт
StopAutomation()
Return
StartAutomation()
{
global boxCount
global isHandling
global moneyCount
if (boxCount >= 10) ; Проверка, если ящиков достигнуто заданное количество
{
MsgBox, Достигнуто максимальное количество ящиков для автоматизации.
Return
}
Send, {RButton down}
UpdateStatus("Запущено")
ToolTip, Скрипт запущен, 0, 0, 1
Send, {w down}{Shift down}
Sleep, 500
ToolTip
SetTimer, PixelSearchTimer, 100 ; Запуск таймера поиска пикселя
}
ResetCounts()
{
global boxCount
global moneyCount
boxCount := 0
moneyCount := 0
GuiControl,, BoxCountText, Перенесенные ящики: %boxCount%
GuiControl,, MoneyCountText, Заработано: %moneyCount%$
UpdateStatus("Ожидание...")
}
StopAutomation()
{
Send, {RButton up}
SetTimer, PixelSearchTimer, Off ; Остановить таймер
UpdateStatus("Остановлено.")
ToolTip, Скрипт остановлен, 0, 0, 1
Sleep, 1000 ; Показываем тултип 1 секунду
ToolTip
}
PixelSearchTimer:
FindPixel()
Return
FindPixel()
{
global boxCount
global moneyCount
global isHandling
PixelSearch, x, y, 966, 487, 968, 489, 0x7ED321,, Fast RGB
if (!ErrorLevel && !isHandling) ; Проверка, найден ли пиксель и не обрабатывается ли событие
{
isHandling := true ; Устанавливаем флаг обработки
PerformAction() ; Выполнить действие при нахождении пикселя
Sleep, 1000 ; Ждем некоторое время, чтобы избежать повторного срабатывания
isHandling := false ; Сбрасываем флаг обработки
}
else if (ErrorLevel)
{
UpdateStatus("Ожидание пикселя...")
}
}
PerformAction()
{
global boxCount
global moneyCount
Send, e ; Эмулируем нажатие e
Send, {w down}{Shift down} ; Продолжаем удерживать w и Shift
boxCount++
moneyCount += 132
GuiControl,, BoxCountText, Перенесенные ящики: %boxCount%
GuiControl,, MoneyCountText, Заработано: %moneyCount%$
}
UpdateStatus(status)
{
GuiControl,, StatusText, Статус: %status%
}