Есть у меня такой вот кусок кода который прекрасно работает. Но возможно не правильный сам по себе. Как я его понимаю - PixelSearch запускает бесконечное число раз пока не будет найден искомый цвет пикселя в указанном прямоугольнике экрана. Переменная $i - подсчитывает сколько раз запускался PixelSearch. Использовал чтобы получше подобрать параметр оттенка цвета. Хотя наверно правильнее было бы засекать время поиска. Но на глаз и так сойдёт.
А вот такой же кусок кода но немного изменённый уже не хочет работать как надо. Цикл Do прерывается. Пиксель не находит. Хотя в коде выше $i не видел больше 27.
По идее если $i достигла 100, то должны произойти события указанные в IF. Они происходят единожды. И потом скрипт прерывается.
Спотыкается на следующих строчках кода, после приведённого цикла:
Выдаёт $aCoord ERROR. Что логично - массив не создался так как пиксель не нашёлся.
Подозреваю что я совершенно не правильно выхожу из цикла. Но этот @error это единственное что мне было понятно из справки. Пробовал уже менять это условие. Мол если первый элемент массива ничему не равен то такие-то действия. Но тут снова та же ошибка $aCoord ERROR. Возможно нужен другой цикл. То что в условие IF необходимо выполнить не больше 5 раз. Пробовал через for next делать. Не работает как надо.
Два дня уже убил на этот момент. Весь мозг сломал. Помогайте гуру AutoIt)))
Код:
$i = 0
Do
Local $aCoord = PixelSearch(365, 1115, 2420, 1160, 16298240, 20, 1)
$i=$i+1
Until @error = 0
MsgBox(0,0,$i)
А вот такой же кусок кода но немного изменённый уже не хочет работать как надо. Цикл Do прерывается. Пиксель не находит. Хотя в коде выше $i не видел больше 27.
Код:
$t = 0
$i = 0
Do
Local $aCoord = PixelSearch(365, 1115, 2420, 1160, 16298240, 20, 1)
$i = $i + 1
If $i >= 100 Then
MouseMove(100, 655 + $t, 5)
MouseClick("left", 100, 655 + $t, 1, 1)
$t = $t + 79
$i = 0
ContinueLoop
EndIf
Until @error = 0
По идее если $i достигла 100, то должны произойти события указанные в IF. Они происходят единожды. И потом скрипт прерывается.
Спотыкается на следующих строчках кода, после приведённого цикла:
Код:
MouseMove($aCoord[0], $aCoord[1], 5)
MouseClick("left", $aCoord[0], $aCoord[1], 1, 1)
Выдаёт $aCoord ERROR. Что логично - массив не создался так как пиксель не нашёлся.
Подозреваю что я совершенно не правильно выхожу из цикла. Но этот @error это единственное что мне было понятно из справки. Пробовал уже менять это условие. Мол если первый элемент массива ничему не равен то такие-то действия. Но тут снова та же ошибка $aCoord ERROR. Возможно нужен другой цикл. То что в условие IF необходимо выполнить не больше 5 раз. Пробовал через for next делать. Не работает как надо.
Два дня уже убил на этот момент. Весь мозг сломал. Помогайте гуру AutoIt)))