Загрузка данных
#Requires AutoHotkey v2.0
#SingleInstance Force
CoordMode "Mouse", "Screen"
CoordMode "Pixel", "Screen"
SetMouseDelay 10
SendMode "Event"
; ==================== НАСТРОЙКИ (1920x1080) ====================
; --- Заброс: жёлтая зона x1.5 ---
; Координаты области, где появляется жёлтый текст/пузырь x1.5
ZX1 := 1200, ZY1 := 360, ZX2 := 1370, ZY2 := 440
BubbleColor := 0xFFE45A ; жёлтый цвет
ColorTol := 20 ; допуск цвета
MaxHold := 2500 ; макс. время удержания ЛКМ, мс
; --- Поклёвка: красная кнопка STOP ---
; Координаты области, где появляется красная кнопка STOP
BX1 := 1390, BY1 := 930, BX2 := 1475, BY2 := 960
BiteColor := 0xE8333F ; красный цвет
BiteTol := 30
; --- Мини-игра: клики ---
ClickX := 960 ; X центра экрана (пустая область)
ClickY := 540 ; Y центра экрана
ClickDelay := 15 ; задержка между кликами, мс
ClickCount := 20 ; сколько кликов за один цикл
MaxClickTime := 15000 ; макс. время мини-игры, мс
; --- Паузы ---
AfterCatch := 1500 ; пауза после поимки, мс
CastWait := 30000 ; макс. ожидание поклёвки, мс
; ==================================================================
mode := 0
casting := false
; --- GUI ---
myGui := Gui("+AlwaysOnTop", "Auto Fishing v2")
myGui.SetFont("s10")
myGui.Add("Text", , "Режим:")
rAfk := myGui.Add("Radio", , "1. АФК (ESC каждую минуту)")
rFish := myGui.Add("Radio", , "2. Авто-рыбалка")
bStop := myGui.Add("Button", "w120", "Выключить")
status := myGui.Add("Text", "w360 cGray", "Статус: выключено")
myGui.Add("Text", "w360", "F1 - АФК | F2 - Рыбалка | F3 - Стоп | F11 - Выход")
rAfk.OnEvent("Click", (*) => SetMode(1))
rFish.OnEvent("Click", (*) => SetMode(2))
bStop.OnEvent("Click", (*) => SetMode(0))
myGui.OnEvent("Close", (*) => ExitApp())
myGui.Show()
SetMode(m) {
global mode
mode := m
Click "Up"
SetTimer(PressEsc, m = 1 ? 60000 : 0)
rAfk.Value := (m = 1)
rFish.Value := (m = 2)
status.Text := "Статус: " . (m = 0 ? "выключено" : m = 1 ? "АФК работает" : "Авто-рыбалка работает")
if (m = 2)
SetTimer(AutoFishing, -50)
}
; --- АФК ---
PressEsc() {
Send "{Esc}"
Sleep 2000
Send "{Esc}"
}
; --- АВТО-РЫБАЛКА ---
AutoFishing() {
global casting, mode
global ZX1, ZY1, ZX2, ZY2, BubbleColor, ColorTol, MaxHold
global BX1, BY1, BX2, BY2, BiteColor, BiteTol
global ClickX, ClickY, ClickDelay, ClickCount, MaxClickTime
global AfterCatch, CastWait
if casting
return
casting := true
while mode = 2 {
; ===== ШАГ 1: Заброс удочки =====
status.Text := "Статус: Заброс..."
Click "Down"
start := A_TickCount
; Ждём жёлтую зону x1.5
while mode = 2 && (A_TickCount - start < MaxHold) {
if PixelSearch(&px, &py, ZX1, ZY1, ZX2, ZY2, BubbleColor, ColorTol)
break
Sleep 5
}
Click "Up"
Sleep 300
; ===== ШАГ 2: Ожидание поклёвки =====
status.Text := "Статус: Ожидание поклёвки..."
bite := false
waitStart := A_TickCount
while mode = 2 && (A_TickCount - waitStart < CastWait) {
if PixelSearch(&bx, &by, BX1, BY1, BX2, BY2, BiteColor, BiteTol) {
bite := true
break
}
Sleep 50
}
; ===== ШАГ 3: Мини-игра (быстрые клики) =====
if bite {
status.Text := "Статус: Мини-игра! Кликаем..."
clickStart := A_TickCount
while mode = 2 && (A_TickCount - clickStart < MaxClickTime) {
; Проверяем, не закончилась ли мини-игра
if !PixelSearch(&bx, &by, BX1, BY1, BX2, BY2, BiteColor, BiteTol) {
; Кнопка исчезла - игра окончена
break
}
; Быстрые клики в центр экрана
Loop ClickCount {
MouseMove ClickX, ClickY
Click
Sleep ClickDelay
}
}
status.Text := "Статус: Рыба поймана!"
Sleep AfterCatch
} else {
status.Text := "Статус: Поклёвки не было, перезаброс..."
Sleep 500
}
}
Click "Up"
casting := false
status.Text := "Статус: выключено"
}
; ==================== ГОРЯЧИЕ КЛАВИШИ ====================
F1::SetMode(1)
F2::SetMode(2)
F3::SetMode(0)
F11::ExitApp