Добрый вечер!
В ходе разработки скрипта возникла ошибка: Error: "Until" statement with no matching "Do" statement.
Проверил данный участок, причину проблемы не нашёл. Подскажите, пожалуйста, в чём проблема!
Спасибо!
P.S. Задача функции - поиск изображения по трём заданным точкам. Причём есть два варианта данной комбинации. Пример вызова:
Здесь: переменная (массив из 2 эл-в), в которой будут храниться найденные координаты, первый вариант трёх точек, границы зоны поиска (право, верх, лево, низ), второй вариант трёх точек.
В ходе разработки скрипта возникла ошибка: Error: "Until" statement with no matching "Do" statement.
Проверил данный участок, причину проблемы не нашёл. Подскажите, пожалуйста, в чём проблема!
Код:
Func _search_coord_by_3_or_3(ByRef $name_ico, $relevant_color, $control_color_1, $control_color_2, $coord_left, $coord_top, $coord_right, $coord_bottom, $_x, $_y, $dopusk, $relevant_color_2, $control_color_2_1, $control_color_2_2)
Do
$coord_menu_search_icon = PixelSearch($coord_left, $coord_top, $coord_right, $coord_bottom, $relevant_color, $dopusk)
If Not @error Then
If (PixelGetColor($coord_menu_search_icon[0] + $_x, $coord_menu_search_icon[1]) == $control_color_1) Then
If (PixelGetColor($coord_menu_search_icon[0], $coord_menu_search_icon[1] + $_y) == $control_color_2) Then
$name_ico[0] = $coord_menu_search_icon[0]
$name_ico[1] = $coord_menu_search_icon[1]
EndIf
EndIf
Else
$coord_menu_search_icon = PixelSearch($coord_left, $coord_top, $coord_right, $coord_bottom, $relevant_color_2, $dopusk)
If Not @error Then
If (PixelGetColor($coord_menu_search_icon[0] + $_x, $coord_menu_search_icon[1]) == $control_color_2_1) Then
If (PixelGetColor($coord_menu_search_icon[0], $coord_menu_search_icon[1] + $_y) == $control_color_2_2) Then
$name_ico[0] = $coord_menu_search_icon[0]
$name_ico[1] = $coord_menu_search_icon[1]
EndIf
EndIf
Else
If ($coord_left < $coord_right) Then
$coord_left = $coord_left + 1
Else
If ($coord_top < $coord_bottom) Then
$coord_top = $coord_top + 1
Else
MsgBox(0, "", "Fatal Error. Заданный пиксель не найден!", 5)
EndIf
EndIf
EndIf
Until ((Not @error) Or ($coord_top = $coord_bottom))
If ($coord_top = $coord_bottom) Then
MsgBox(0, "Always bad", "Пиксель не найдён.)
EndIf
EndFunc
Спасибо!
P.S. Задача функции - поиск изображения по трём заданным точкам. Причём есть два варианта данной комбинации. Пример вызова:
Код:
_search_coord_by_3_or_3($coord_menu_PB, 0xB1B31C, 0xFCFFFF, 0xC7EB62, 260, 10, 1980, 1200, -11, -15, 0, 0x640300, 0xE9FFFF, 0xC4D1F9)
Здесь: переменная (массив из 2 эл-в), в которой будут храниться найденные координаты, первый вариант трёх точек, границы зоны поиска (право, верх, лево, низ), второй вариант трёх точек.