Цитата(cirus @ 29.11.2016, 14:47)

В metka1 пишите что делать, когда нашлась картинка exit.
Вообще, надо весь код через gosub делать.
http://uopilot.tati.pro/index.php?title=Gosub 2й пример.
сделала , но ничего не работает (( вообще (( картинки ищет ,но не производит с ними ни единого действия
kod
set $path "C:\Users\Пользователь\Desktop\рисунки для пилота\" // путь к картинкам
set %image [1] bashya // имя изображения
set %image [2] bashnya_c_prava
set %image [3] bashnya_v_nizy
set %image [4] bashnya_v_verxy
set %image [5] bashnya_c_leva
set %image [6] bashnya_niz_pravo
set %image [7] verx_levo_ygol
set %image [8] basnya_verx_pravo
set #size size(%image) // всего картинок
hint Всего картинок #size
:metka
set $a 0
while $a = 0 // пока картинка не найдена
set #flag 0 // флаг что картинки найдены
for #i 1 #size 1 // цикл для поиска картинок
set $a findimage (1147, 32 1363, 249 ($path%image[#i].bmp) %arr 2 90 20 5 )
if $a > 0
set #x %arr [1 1] + 7
set #y %arr [1 2] + 7
break
end_if
set #flag 1 // картинки не найдены
end_for
if #flag = 1 // если ни одна из картинок не найдена
// ищем картинку EXIT2
set #b findimage (1154, 36 1359, 242 (C:\Users\Пользователь\Desktop\рисунки для пилота\EXIT2.bmp) %arr1 2 90 20 5)
if #b > 0 // если найдена EXIT2
for #i 1 #size 1 // снова перебираем картинки
set $a findimage (1147, 32 1363, 249 ($path%image[#i].bmp) %arr 2 90 20 5 )
if $a > 0
set #flag 0 // картинка найдена
break // прервать поиск
end_if
end_for
if #flag = 1 // если картинки не найдены
log Картинка Exit2 найдена
goto metka1
else // иначе
goto metka // переход к метке, т.е. к началу скрипта
end_if
end_if
end_if
end_while
while 1 = 1 // бесконечный цикл
set $p findcolor(1154, 36 1359, 242 56831 %arr 2) // PERS
if $p > 0
set #x1 %arr [1 1]
set #y1 %arr [1 2]
wait 1s
if #x1 < #x
Send_down {right}
wait 200
Send_up {right}
wait 1s
end_if
if #x1 > #x
Send_down {left}
wait 200
Send_up {left}
wait 1s
end_if
if #y1 < #y
Send_down {down}
wait 200
Send_up {down}
wait 1s
end_if
if #y1 > #y
Send_down {up}
wait 200
Send_up {up}
wait 1s
end_if
set #x2 #x - #x1 // разница координат #x и #x1
set #x2 abs(#x2) // модуль числа, чтобы разница не была отрицательной
set #y2 #y - #y1 // разница координат #y и #y1
set #y2 abs(#y2) // модуль числа
set #const 7 // подобрать нужное значение
if #x2 < #const and #y2 < #const // проверка что перс у нужной точки
break
end_if
if #x = #x1 and #y = #y1 // проверка дошёл перс до нужных координат или нет
break // если дошёл, выход из цикла
end_if
end_if
end_while
wait 3000 // ждать 3 секунды
goto metka
: metka1
set $a 0
while $a = 0 // пока картинка не найдена
for #i 1 #size 1 // цикл для поиска картинок
set $a findimage (1154, 36 1359, 242 (C:\Users\Пользователь\Desktop\рисунки для пилота\EXIT2.bmp) %arr 2 90 20 5)
if $a > 0
set #x %arr [1 1] + 7
set #y %arr [1 2] + 6
break
end_if
end_for
if $a = 0
left 634, 46
wait 6s
move 634, 46
wait 3s
move 641, 92
wait 3s
Send_down {down}
wait 800
Send_up {down}
wait 1500
goto metka //--------------------------------------------
end_if
end_while
while 1 = 1 // бесконечный цикл
set $p findcolor(1154, 36 1359, 242 56831 %arr 2) // PERS
if $p > 0
set #x1 %arr [1 1]
set #y1 %arr [1 2]
wait 1s
if #x1 < #x
Send_down {right}
wait 200
Send_up {right}
wait 1s
end_if
if #x1 > #x
Send_down {left}
wait 200
Send_up {left}
wait 1s
end_if
if #y1 < #y
Send_down {down}
wait 200
Send_up {down}
wait 1s
end_if
if #y1 > #y
Send_down {up}
wait 200
Send_up {up}
wait 1s
end_if
set #x2 #x - #x1 // разница координат #x и #x1
set #x2 abs(#x2) // модуль числа, чтобы разница не была отрицательной
set #y2 #y - #y1 // разница координат #y и #y1
set #y2 abs(#y2) // модуль числа
set #const 10 // подобрать нужное значение
if #x2 < #const and #y2 < #const // проверка что перс у нужной точки
break
end_if
if #x = #x1 and #y = #y1 // проверка дошёл перс до нужных координат или нет
// координаты, скорее всего, не совпадут, лучше сравнивать разницу координат с какой-то константой
break // если дошёл, выход из цикла
end_if
end_if
end_while
wait 6000 // ждать 3 секунды
goto metka
попробую всё переписать сначала с gotsub , хотя не понимаю зачем ,ведь у меня по сути всего 2 подпрограммы в исходнике ?