от полый скрипт ...
SUB(sort_win)
   $siz = ARRSIZE($window)
   $srtcheck = 0
   FOR($a=$siz-2, $a > 0, -2)
      FOR($b=0, $b < $a, 2)
         IF($window[$b] > $window[$b+2])
            $srtcheck = 1
            $tmp = $window[$b]
            $tmp2 = $window[$b+1]
            $window[$b] = $window[$b+2]
            $window[$b+1] = $window[$b+3]
            $window[$b+2] = $tmp
            $window[$b+3] = $tmp2
         END_IF
      END_CYC
      IF($srtcheck = 0)
         $a = 0
      END_IF
   END_CYC
END_SUB
SUB(check_1)
    WAITMS(160)
    $ok = 0
    getscreen($x+50,$y-70, $x+200,$y-30)
    IF_PICTURE_IN($x+50,$y-70, $x+200,$y-30, "ne1.bmp")
        $ok = 1
    ELSE
        IF_PICTURE_IN($x+50,$y-70, $x+200,$y-30, "ne2.bmp")
            $ok = 1
        ELSE
            IF_PICTURE_IN($x+50,$y-70, $x+200,$y-30, "ne3.bmp")
                $ok = 1
            END_IF
        END_IF
    END_IF
 
END_SUB
 
SUB(action_1)
    lclick($x, $y+5)
END_SUB
 
SUB(action_2)
    lclick($x+50, $y-23)
END_SUB
 
SUB(find_501)
    IF_PICTURE_IN($x-10,$y-35, $x+34,$y, "501.bmp")
        lclick($x, $y-25)
        check_1()
        IF($ok)
            LOGWRITE("Найден не тот объект" )
            action_1()
            // добавляем неправильный объект в список
            $object = STRCONCAT(":", $x, ",", $y, ":")
            $bad_objects = STRCONCAT($bad_objects, $object)
        ELSE
            LOGWRITE(" подтверждён ")
            action_2()
        END_IF
    END_IF
    //MOVE($ox, $oy)
    WAITMS(5)
END_SUB
 
SUB(find_500)
    getscreen(1920,153, 2920,350)
    scanpicture($var, 1920,153, 2920,350, "500.bmp")
 
    while(arrsize($var) > 0)
        $y = arrpop($var)
        $x = arrpop($var)
 
        // проверяем на вхождение в список неправильных
        $object = STRCONCAT(":", $x, ",", $y, ":")
        $bad = 0
        $bad = STRPOS($bad_objects, $object)
        IF($bad = 0)
            find_501()
        END_IF
    end_cyc
END_SUB
 
$bad_objects = "" // сбрасываем список неправильных объектов когда нужно
find_500()
SUB(find_6)
   GETSCREEN($wx1,$wy1, $wx2,$wy2)
   IF_PICTURE_IN($wx1,$wy1, $wx2,$wy2, "6.bmp")
      LCLICK($_return1, $_return2)
      LCLICK($_return1+60, $_return2+9)
   END_IF
END_SUB
SUB(find_10)
   GETSCREEN(1267,569, 1705,782)
   IF_PICTURE_IN(1267,569, 1705,782, "10.bmp")
      LCLICK($_return1, $_return2)
      LCLICK($_return1+60, $_return2+9)
   END_IF
END_SUB
SUB(check_count)
   $ok = 0
   IF_PICTURE_IN($ox,$oy, $ox+48,$oy+48, "1.1.bmp")
      $ok = 1
   ELSE
      IF_PICTURE_IN($ox,$oy, $ox+48,$oy+48, "1.2.bmp", -1,40)
         $ok = 1
      END_IF
   END_IF
END_SUB
SUB(action)
   LCLICK($ox, $oy)
   WAITMS(20)
   LCLICK($ox+60, $oy+9)
END_SUB
SUB(find_object, $filename)
   UNDEFINE($object)
   //GETSCREEN($wx1,$wy1, $wx2,$wy2)
   SCANPICTURE($object, $wx1,$wy1, $wx2,$wy2, $filename)
   
   $object_size = ARRSIZE($object)
   FOR($i=0, $i < $object_size, 2)
      $ox = $object[$i]
      $oy = $object[$i+1]
      check_count()
      IF($ok)
         LOGWRITE("Найден объект ", $filename, " в окне № ", $w/2 + 1)
         action()
      ELSE
         LOGWRITE("НЕ подтверждён ", $filename, " Окно № ", $w/2 + 1)
      END_IF
      
      //MOVE($ox, $oy)
      WAITMS(5)
   END_CYC
END_SUB
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
UNDEFINE($window)
GETSCREEN
SCANPICTURE($window, 0,0, 1850,650, "main.bmp", -1,70)
$window_count = ARRSIZE($window)
LOGWRITE("Найдено окон: ", $window_count/2)
sort_win()
WHILE(1)
   FOR($w = 0, $w < $window_count, 2)
      $wx1 = $window[$w] + 28
      $wy1 = $window[$w+1] + 24
      $wx2 = $window[$w] + 302
      $wy2 = $window[$w+1] + 140
      
      find_object("1.bmp")
      find_object("3.bmp")
      find_object("4.bmp")
      find_object("7p.bmp")
      find_500()
      find_6()
      find_100()
   END_CYC
   WAITMS(3)
END_CYC
HALT