Цитата(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 подпрограммы в исходнике ?