Вот исправленный блок для мини-игры. Основные изменения: добавлены координаты клика (чтобы кликать в центр экрана, а не где попало), SendEvent (для гарантированной регистрации кликов в игре) и проверка цвета перед кликами (чтобы не кликать лишний раз, когда кнопка уже исчезла).
; ---------- МИНИ-ИГРА: БЫСТРЫЕ КЛИКИ (Click Fast) ----------
if bite {
; Координаты клика - центр экрана (подбери под свое разрешение)
; Для 1920x1080 это примерно 960, 540
clickX := A_ScreenWidth // 2
clickY := A_ScreenHeight // 2
miss := 0
; Пока активен режим 2 и не было 5 промахов подряд
while (mode = 2 && miss < 5) {
; ПРОВЕРКА: есть ли еще красная кнопка на экране?
if !PixelSearch(&bx, &by, BX1, BY1, BX2, BY2, BiteColor, BiteTol) {
; Кнопки нет - выходим из цикла кликов
break
}
; Быстрые клики ЛКМ в центр экрана
Loop 15 {
; Проверяем, не исчезла ли кнопка во время кликов
if !PixelSearch(&bx, &by, BX1, BY1, BX2, BY2, BiteColor, BiteTol)
break 2 ; Выход из обоих циклов сразу
; Используем SendEvent для надежности (игры часто не видят обычный Click)
SendEvent "{Click " clickX " " clickY "}"
Sleep ClickDelay
}
; После серии кликов проверяем, осталась ли кнопка
if PixelSearch(&bx, &by, BX1, BY1, BX2, BY2, BiteColor, BiteTol) {
miss := 0 ; Кнопка еще есть - продолжаем кликать
} else {
miss++ ; Кнопка пропала - возможно, мы поймали рыбу
}
}
; Ожидание после поимки (если нужно)
waited := 0
while (mode = 2 && waited < AfterCatch) {
Sleep 100
waited += 100
}
if (mode = 2)
CheckRod()
}
Что исправлено и почему:
1.
Добавлены координаты клика (clickX, clickY) — теперь клики идут в центр экрана, где обычно находится зона мини-игры, а не в текущую позицию курсора.
2.
SendEvent вместо Click — многие игры (особенно Roblox) не регистрируют стандартный Click от AutoHotkey. SendEvent эмулирует нажатие более "железно".
3.
Проверка цвета ПЕРЕД кликами — в твоем коде сначала шли 10 кликов, а потом проверка. Если кнопка исчезла на 3-м клике, скрипт делал 7 лишних кликов. Теперь проверка идет перед каждой серией.
4.
Break 2 — если во время кликов кнопка пропала, скрипт сразу выходит из всех циклов, а не продолжает кликать впустую.
5.
Увеличено количество кликов до 15 за серию (можешь поменять обратно на 10, если будет слишком быстро).
Если клики все еще не регистрируются:
Замени строку SendEvent "{Click...}" на:
MouseClick "left", clickX, clickY, 1, 0
или на низкоуровневый вариант:
DllCall("mouse_event", "UInt", 0x02, "UInt", 0, "UInt", 0, "UInt", 0, "UPtr", 0) ; Left Down
Sleep 10
DllCall("mouse_event", "UInt", 0x04, "UInt", 0, "UInt", 0, "UInt", 0, "UPtr", 0) ; Left Up
-----
0.493977 ₽ · /balance_help