Тема: AHK: Синтаксическая проблема PixelSearch
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
Top := 538
Bot := 907
x2 := 499
x2_Var := x2
x2_Var_Numer := 1
Loop
{
if x2_Var_Numer = 24
{
x2_Var = %x2%
x2_Var_Numer = 1
}
PixelSearch, Outx, Outy, x2_Var, Top, x2_Var, Bot, 0x0000FF,, fast ; red
if ErrorLevel = 1
{
PixelSearch,,, x2_Var, Top, x2_Var, Bot, 0xFF0000,, fast ; blue
if ErrorLevel = 0
MsgBox, Ура
}
if ErrorLevel = 0
{
if x2_Var_Numer < 24
{
x2_Var--
x2_Var_Numer++
}
}
sleep, 150
}
ReturnНапрочь не хочет искать синий цвет, хотя отсутствие красного цвета обнаруживает. Подскажите как обойти это недоразумение.
Пока нашел решение такое:
Loop
{
if x2_Var_Numer > 24
{
x2_Var = %x2% ; Установить координаты по X в начальное состояние
x2_Var_Numer = 1 ; Установить счетчик в исходное состояние (в начальные координаты, т.е. x2)
}
PixelSearch, Outx, Outy, x2_Var, Top, x2_Var, Bot, 0x0000FF,, fast ; red
if ErrorLevel = 1
{
PixelSearch,,, x2_Var, Top, x2_Var, Bot, 0xFF0000,, fast ; blue
if ErrorLevel = 0
MsgBox, Ура
}
x2_Var-- ; Отнять координаты, чтобы ось X сдвинулась влево
x2_Var_Numer++ ; Счетчик +1
sleep, 150
}
ReturnНо не понятно почему из-за ErrorLevel = 0 перестает работать корректно ErrorLevel = 1.
Добавлено:
Кстати, с Else все нормально работает!

