Автокликер Clickermann :: Форум
		Основной раздел => Общие вопросы => Topic started by: Dominik on August 20, 2018, 08:47:44 PM
		
			
			- 
				Всем доброго вечера. 
 Я только начал разбираться , то бишь,полный дилетант )
 Если кто-то может,помогите написать лёгенький скрипт.
 Суть скрипта :
 В определенной области экрана  появляется маленькая картинка(всего 50 вариантов этой картинки ,меня устроит только 6 из них ) . Когда появляется  любой из 6 вариантов   который меня устраивает , курсор должен нажать в точку "А" ,затем нажать в точку "Б"  ,после этого  нажать в точку "C" . Пауза 3 минуты и все по новой   бесконечное количество раз .
 Если появляется картинка ,которая  меня не устраивает ,то запустить все заново спустя минуту бесконечное количество раз.
 Заранее огромное спасибо откликнувшимся людям .
 
- 
				Сохрани этот скрипт в папку. Создай в этой папке папку Image. В неё помести скриншоты для поиска твоих картинок. Размер должен быть не более 50х50. Формат BMP 24bit
 В функции IF_PICTURE_IN укажи область поиска твоих картинок.
 Скрипт автоматически получает имена всех картинок из папки Image и в цикле проверяет их на совпадение с тем что на экране.
 
 GETFILELIST($a_im, "Image\*.bmp") // Получаем имена картинок из паки Image
 WHILE(1) // бесконечный цикл
 GETSCREEN
 FOR($i=0,$i<ARRSIZE($a_im))
 IF_PICTURE_IN (0,0, 500,500, STRCONCAT("Image\",$a_im[$i]), -1, 100) // поиск в области 0,0, 500,500
 LCLICK(100,100) // три клика
 WAITMS(500)
 LCLICK(100,100)
 WAITMS(500)
 LCLICK(100,100)
 WAIT(180) // Пауза на 3 мин
 $i=9999 // завершаем цикл
 ELSe
 WAITMS(50)
 END_IF
 END_CYC
 IF($i!10000) // Одна минута паузы если не было совпадений
 WAIT(60)
 END_IF
 END_CYC
- 
				Одна минута паузы, если не было совпадений, будет выполняться всегда. Даже если совпадения были.Потому как вы забываете что цикл FOR наращивает переменную в конце. А это значит что на выходе из цикла $i=10000.
			
- 
				Сохрани этот скрипт в папку. Создай в этой папке папку Image. В неё помести скриншоты для поиска твоих картинок. Размер должен быть не более 50х50. Формат BMP 24bit
 В функции IF_PICTURE_IN укажи область поиска твоих картинок.
 Скрипт автоматически получает имена всех картинок из папки Image и в цикле проверяет их на совпадение с тем что на экране.
 
 GETFILELIST($a_im, "Image\*.bmp") // Получаем имена картинок из паки Image
 WHILE(1) // бесконечный цикл
 GETSCREEN
 FOR($i=0,$i<ARRSIZE($a_im))
 IF_PICTURE_IN (0,0, 500,500, $a_im[$i], -1, 100) // поиск в области 0,0, 500,500
 LCLICK(100,100) // три клика
 WAITMS(500)
 LCLICK(100,100)
 WAITMS(500)
 LCLICK(100,100)
 WAIT(180) // Пауза на 3 мин
 $i=9999 // завершаем цикл
 ELSe
 WAITMS(50)
 END_IF
 END_CYC
 IF($i!9999) // Одна минута паузы если не было совпадений
 WAIT(60)
 END_IF
 END_CYC
 
 
 Oraven ,добрый день ,большое спасибо за ответ .
 У меня задача немного усложнилась ,добавились еще проверки ,так как я  вообще слабо  разбираюсь  ,я написал простой но громоздкий код.
 Как я и говорил ,задача заключается в следующем (опишу так подробно как смогу):
 В определенной области экрана  есть столбец маленьких картинок,всего в столбце пять картинок , в верхней позиции  появляется новая картинка каждые 3 минуты и она сдвигает остальные картинки по позиции вниз , то бишь , та которая была пятой пропадает   ,на ее место становится та , которая была на четвертой позиции и так далее .Всего отдельных картинок  около 50  есть  и они появляются рандомно,меня устраивает  6 из 50 .то бишь , чтобы любая из этих 6 была на первом месте .
 Приведу пример визуально
 Картинка 1
 Картинка 2
 Картинка 3
 Картинка 4
 Картинка 5
 
 ПРОХОДИТ  3 МИНУТЫ
 
 Картинка 6
 Картинка 1
 Картинка 2
 Картинка 3
 картинка 4
 
 Проходит 3 минуты
 
 Моя картинка
 Картинка 6
 Картинка 1
 Картинка 2
 Картинка 3
 
 И так далее .все продолжает сдвигаться дальше .
 
 
 Раньше ,надо было просто после появления моей картинки  нажать мышкой в 3-х места поочередно  .В место А ,место Б и место С .
 Сейчас немного усложнилось ,когда я вник в суть.
 Сейчас надо проверить ,чтобы моей картинки не было на позиции  номер 2 .то бишь ,  у меня может появится 2 картинки подряд , в  таком случае мне не надо нажимать в эти места .
 То бишь надо сканировать  первое место появление картинки на наличие моей , а второе место появление на отсутствие моей
 Правильное условие такого
 1 картинка - на этой позиции  есть моя картинка ,любая из 6.
 2 картинка - а тут  находится любая картинка кроме  любой моей из 6 .
 3картинка
 4картинка
 5картинка
 
 Такой сценарий не ведет к нажатию
 Моя картинка 2
 Моя картинка 1
 1 картинка
 2 картинка
 3 картинка
 
Плюс ,добавилась проблема  , даже если все условия выше  соблюдены , и я нажимаю на кнопку ,  то на кнопку можно нажать  повторно уже через 3 секунды ,а этого мне не надо . На появление одной моей картинки  .надо всего одно нажатие. Можно поставить паузу подсчитанную по времени после нажатия , но проблема в том,что там  может идти зависание на +- 10 секунд и со временем эта пауза пропустит круг и собьется.
 В голову мне пришел вариант проверки ,то бишь , если  все условия выше соблюдены , проходит наш цикл  и  новый не начинается , пока моя картинку, которая на позиции один не  станет на позицию два .
 Моя картинка1- (программа нашла мою картинку)
 Картинка 1-(программа проверила что нету  на второй позиции моей картинки и нажимает на кнопки)
 Картинка 2
 картинка 3
 Картинка 4
 
 После этого , она начинает проверять  2 позицию на наличие "моей  картинки1"  бесконечное число раз по кругу , пока  картинка не переместится.
 
 Картинка7
 Моя картинка 1 ( программа увидела ,что картинка переместилась  и она запускает весь комплекс сначала )
 Картинка 1
 Картинка 2
 Картинка 3
 
 При этом хочу заметить , если бы  произошло смещение  вот так ,то нажатия бы не должно было произойти
 
 Моя картинка 2
 Моя картина 1( программа увидела ,что моя картинка стала с первого на второе место и запустило все заного )(Но после анализа увидела , что две мои картинки идут подряд и  нажатие не произошло)
 Картинка 1
 Картинка 2
 Картинка 3
 
 
ниже приведу мой код , который построен с более легких пример этого форума  и очень громоздкий. Все более менее  работает ,но происходят сбои , и проблема с перемещением картинки с первой позиции на вторую после нажатия я не решил , а поставил ожидание в 170 секунд.   Как написать все проще и чтобы работало как часы ) Справочник к программе почитал ,нашел "or" но не знаю , подходит ли он к картинкам.
 PS  Пожалуйста,когда будете писать код или исправлять , закоментите  в коде  места , которые помогут мне поглубже вникнуть в суть .
 В коде  при проверке картинок добавил случайные клики по экрану , чтобы  видеть какие части кода исполняются и понимать , что все работает .
 WAITMS(500) 
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,353, 653,402, "1.bmp" )
 IF_PICTURE_IN (557,393, 653,433, "1.bmp" )
 LCLICK(557,393)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "2.bmp" )
 LCLICK(557,353)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "3.bmp" )
 LCLICK(390,493)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "4.bmp" )
 LCLICK(836, 800)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "5.bmp" )
 LCLICK(836, 800)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "6.bmp" )
 LCLICK(836, 800)
 WAITMS(300)
 ELSE
 WAIT(1000)
 LCLICK(836, 800)
 WAITMS(1000)
 LCLICK(836, 800)
 WAITMS(1000)
 LCLICK(1214, 796)
 WAITMS(1000)
 LCLICK(1214, 796)
 WAITMS(1000)
 LCLICK(1329, 980)
 WAITMS(170000)
 END_IF
 END_IF
 END_IF
 END_IF
 END_IF
 END_IF
 Else
 LCLICK(557,393) /////////
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,353, 653,402, "2.bmp")
 IF_PICTURE_IN (557,393, 653,433, "1.bmp" )
 LCLICK(557,393)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "2.bmp" )
 LCLICK(557,353)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "3.bmp" )
 LCLICK(390,493)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "4.bmp" )
 LCLICK(836, 800)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "5.bmp" )
 LCLICK(836, 800)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "6.bmp" )
 LCLICK(836, 800)
 WAITMS(300)
 ELSE
 WAIT(1000)
 LCLICK(836, 800)
 WAITMS(1000)
 LCLICK(836, 800)
 WAITMS(1000)
 LCLICK(1214, 796)
 WAITMS(1000)
 LCLICK(1214, 796)
 WAITMS(1000)
 LCLICK(1329, 980)
 WAITMS(170000)
 END_IF
 END_IF
 END_IF
 END_IF
 END_IF
 END_IF
 Else
 LCLICK(836, 800) /////
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,353, 653,402, "3.bmp")
 IF_PICTURE_IN (557,393, 653,433, "1.bmp" )
 LCLICK(557,393)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "2.bmp" )
 LCLICK(557,353)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "3.bmp" )
 LCLICK(390,493)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "4.bmp" )
 LCLICK(836, 800)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "5.bmp" )
 LCLICK(836, 800)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "6.bmp" )
 LCLICK(836, 800)
 WAITMS(300)
 ELSE
 WAIT(1000)
 LCLICK(836, 800)
 WAITMS(1000)
 LCLICK(836, 800)
 WAITMS(1000)
 LCLICK(1214, 796)
 WAITMS(1000)
 LCLICK(1214, 796)
 WAITMS(1000)
 LCLICK(1329, 980)
 WAITMS(170000)
 END_IF
 END_IF
 END_IF
 END_IF
 END_IF
 END_IF
 Else
 LCLICK(557,393)  ////////
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,353, 653,402, "4.bmp")
 IF_PICTURE_IN (557,393, 653,433, "1.bmp" )
 LCLICK(557,393)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "2.bmp" )
 LCLICK(557,353)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "3.bmp" )
 LCLICK(390,493)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "4.bmp" )
 LCLICK(836, 800)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "5.bmp" )
 LCLICK(836, 800)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "6.bmp" )
 LCLICK(836, 800)
 WAITMS(300)
 ELSE
 WAIT(1000)
 LCLICK(836, 800)
 WAITMS(1000)
 LCLICK(836, 800)
 WAITMS(1000)
 LCLICK(1214, 796)
 WAITMS(1000)
 LCLICK(1214, 796)
 WAITMS(1000)
 LCLICK(1329, 980)
 WAITMS(170000)
 END_IF
 END_IF
 END_IF
 END_IF
 END_IF
 END_IF
 Else
 LCLICK(836, 800) //////////
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,353, 653,402, "5.bmp")
 IF_PICTURE_IN (557,393, 653,433, "1.bmp" )
 LCLICK(557,393)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "2.bmp" )
 LCLICK(557,353)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "3.bmp" )
 LCLICK(390,493)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "4.bmp" )
 LCLICK(836, 800)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "5.bmp" )
 LCLICK(836, 800)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "6.bmp" )
 LCLICK(836, 800)
 WAITMS(300)
 ELSE
 WAIT(1000)
 LCLICK(836, 800)
 WAITMS(1000)
 LCLICK(836, 800)
 WAITMS(1000)
 LCLICK(1214, 796)
 WAITMS(1000)
 LCLICK(1214, 796)
 WAITMS(1000)
 LCLICK(1329, 980)
 WAITMS(170000)
 END_IF
 END_IF
 END_IF
 END_IF
 END_IF
 END_IF
 Else
 LCLICK(557,393) ///////////
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,353, 653,402, "6.bmp")
 IF_PICTURE_IN (557,393, 653,433, "1.bmp" )
 LCLICK(557,393)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "2.bmp" )
 LCLICK(557,353)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "3.bmp" )
 LCLICK(390,493)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "4.bmp" )
 LCLICK(836, 800)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "5.bmp" )
 LCLICK(836, 800)
 WAITMS(300)
 ELSE
 GETSCREEN
 COLORMODE(6)
 IF_PICTURE_IN (557,393, 653,433, "6.bmp" )
 LCLICK(836, 800)
 WAITMS(300)
 ELSE
 WAIT(1000)
 LCLICK(836, 800)
 WAITMS(1000)
 LCLICK(836, 800)
 WAITMS(1000)
 LCLICK(1214, 796)
 WAITMS(1000)
 LCLICK(1214, 796)
 WAITMS(1000)
 LCLICK(1329, 980)
 WAITMS(170000)
 END_IF
 END_IF
 END_IF
 END_IF
 END_IF
 END_IF
 Else
 LCLICK(645, 753)
 WAITMS(10000)   //////
 
 END_IF
 END_IF
 END_IF
 END_IF
 END_IF
 END_IF
 
 Всем заранее спасибо за помощь !)
 
- 
				Если тебе пофиг - каким будет работающий код, то копируй просто то, что тебе дают. Если ты хочешь разобраться сам, то в том, что тебе дают, именно тебе сейчас разобраться будет не просто. Разберись сначала вот в этом:
 GETSCREEN // Делает скрин экрана и помещает его в буфер для анализа
 COLORMODE(6) // Применение цветокоррекции для скрина (упрощение цветов)
 IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100) // Ищет картинку на скрине, который в буфере. "file" - название картинки. "bmp" - расширение файла. "0,0, $_xmax,$_ymax" - координаты поиска картинки.
 // Здесь действия, которые нужно сделать, если картинка найдена
 else
 // Здесь действия, которые нужно сделать, если картинка не найдена
 END_IF
- 
				Если тебе пофиг - каким будет работающий код, то копируй просто то, что тебе дают. Если ты хочешь разобраться сам, то в том, что тебе дают, именно тебе сейчас разобраться будет не просто. Разберись сначала вот в этом:
 GETSCREEN // Делает скрин экрана и помещает его в буфер для анализа
 COLORMODE(6) // Применение цветокоррекции для скрина (упрощение цветов)
 IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100) // Ищет картинку на скрине, который в буфере. "file" - название картинки. "bmp" - расширение файла. "0,0, $_xmax,$_ymax" - координаты поиска картинки.
 // Здесь действия, которые нужно сделать, если картинка найдена
 else
 // Здесь действия, которые нужно сделать, если картинка не найдена
 END_IF
 Мужик , при всем моем уважении . Тебе не кажется ,   если я написал весь код через if .... else  ... end_if  То я это уже давно понял ,и смысл такого совета от тебя?
 Я прошу помощи в оптимизации , так как это можно сделать при помощи других команд и сократить число строк в раз 10 .Так же не знаю как сделать  отрицание  ,если это возможно ,  я пробовал отрицание сделать так же через IF , но там получалось 600 строк  и даже более . Код работал , но в каких-то местах происходили сбои  периодически . Ты вообще смотрел мой код , что посоветовал мне разобраться в If .....else .....end_if ?
 
- 
				То бишь надо сканировать  первое место появление картинки на наличие моей , а второе место появление на отсутствие моей 
 
 
 Вот твой код, только оптимизированный:
 SUB(check_pic, $x1, $y1, $x2, $y2) //подпрограмма поиска всех картинок. входные параметры координат поиска $x1, $y1, $x2, $y2
 GETSCREEN
 COLORMODE(6)
 
 FOR($a=1,$a<7)  //перебираем 6 картинок с названиями файлов типа 1.bmp - 6.bmp
 IF_PICTURE_IN ($x1, $y1, $x2, $y2, STRCONCAT ($a, ".bmp")
 $a = 999   // если нашли, выходим из цикла
 END_аIF
 END_CYC
 IF($a = 1000)    // тут пишем флаг присутствия картинки
 $check_pic = 1  // если мы выскочили из цикла и $a = 1000, картинка найдена
 print("картинка №",$a," найдена в координатах ",$x1,",", $y1,",", $x2,",", $y2 )
 ELSE
 $check_pic = 0  // если перебрали все картинки и $a = 7, картинка не найдена
 print("картинки нет в координатах ",$x1,",", $y1,",", $x2,",", $y2 )
 END_IF
 
 END_SUB
 
 
 // основной код
 
 WAITMS(500)
 
 check_pic(557,353, 653,402) //смотрим наличие картинки сверху
 
 IF($check_pic = 1)   //если она там есть
 
 check_pic(557,393, 653,433)  // смотрим наличие картинки ниже
 
 IF($check_pic = 0)   //если ее там нет, действуем
 print("действуем")
 WAIT(1000) //1000 секунд??? это ж 16 минут!!!
 LCLICK(836, 800)
 WAIT(1)
 LCLICK(836, 800)
 WAIT(1)
 LCLICK(1214, 796)
 WAIT(1)
 LCLICK(1214, 796)
 WAIT(1)
 LCLICK(1329, 980)
 WAIT(170)
 else
 //если она там есть
 //какието действия и ожидание
 WAIT(10)
 END_IF
 
 else
 //если ее там нет
 //какието действия и ожидание
 WAIT(10)
 
 END_IF
- 
				      END_аIF
 Опечатка в 8 строке.
- 
				То бишь надо сканировать  первое место появление картинки на наличие моей , а второе место появление на отсутствие моей 
 
 
 Вот твой код, только оптимизированный:
 SUB(check_pic, $x1, $y1, $x2, $y2) //подпрограмма поиска всех картинок. входные параметры координат поиска $x1, $y1, $x2, $y2
 GETSCREEN
 COLORMODE(6)
 
 FOR($a=1,$a<7)  //перебираем 6 картинок с названиями файлов типа 1.bmp - 6.bmp
 IF_PICTURE_IN ($x1, $y1, $x2, $y2, STRCONCAT ($a, ".bmp")
 $a = 999   // если нашли, выходим из цикла
 END_аIF
 END_CYC
 IF($a = 1000)    // тут пишем флаг присутствия картинки
 $check_pic = 1  // если мы выскочили из цикла и $a = 1000, картинка найдена
 print("картинка №",$a," найдена в координатах ",$x1,",", $y1,",", $x2,",", $y2 )
 ELSE
 $check_pic = 0  // если перебрали все картинки и $a = 7, картинка не найдена
 print("картинки нет в координатах ",$x1,",", $y1,",", $x2,",", $y2 )
 END_IF
 
 END_SUB
 
 
 // основной код
 
 WAITMS(500)
 
 check_pic(557,353, 653,402) //смотрим наличие картинки сверху
 
 IF($check_pic = 1)   //если она там есть
 
 check_pic(557,393, 653,433)  // смотрим наличие картинки ниже
 
 IF($check_pic = 0)   //если ее там нет, действуем
 print("действуем")
 WAIT(1000) //1000 секунд??? это ж 16 минут!!!
 LCLICK(836, 800)
 WAIT(1)
 LCLICK(836, 800)
 WAIT(1)
 LCLICK(1214, 796)
 WAIT(1)
 LCLICK(1214, 796)
 WAIT(1)
 LCLICK(1329, 980)
 WAIT(170)
 else
 //если она там есть
 //какието действия и ожидание
 WAIT(10)
 END_IF
 
 else
 //если ее там нет
 //какието действия и ожидание
 WAIT(10)
 
 END_IF
 Большое спасибо.  Так же спасибо за подробные разъяснения в коде!!! :)
- 
				То бишь надо сканировать  первое место появление картинки на наличие моей , а второе место появление на отсутствие моей 
 
 
 Вот твой код, только оптимизированный:
 SUB(check_pic, $x1, $y1, $x2, $y2) //подпрограмма поиска всех картинок. входные параметры координат поиска $x1, $y1, $x2, $y2
 GETSCREEN
 COLORMODE(6)
 
 FOR($a=1,$a<7)  //перебираем 6 картинок с названиями файлов типа 1.bmp - 6.bmp
 IF_PICTURE_IN ($x1, $y1, $x2, $y2, STRCONCAT ($a, ".bmp")
 $a = 999   // если нашли, выходим из цикла
 END_аIF
 END_CYC
 IF($a = 1000)    // тут пишем флаг присутствия картинки
 $check_pic = 1  // если мы выскочили из цикла и $a = 1000, картинка найдена
 print("картинка №",$a," найдена в координатах ",$x1,",", $y1,",", $x2,",", $y2 )
 ELSE
 $check_pic = 0  // если перебрали все картинки и $a = 7, картинка не найдена
 print("картинки нет в координатах ",$x1,",", $y1,",", $x2,",", $y2 )
 END_IF
 
 END_SUB
 
 
 // основной код
 
 WAITMS(500)
 
 check_pic(557,353, 653,402) //смотрим наличие картинки сверху
 
 IF($check_pic = 1)   //если она там есть
 
 check_pic(557,393, 653,433)  // смотрим наличие картинки ниже
 
 IF($check_pic = 0)   //если ее там нет, действуем
 print("действуем")
 WAIT(1000) //1000 секунд??? это ж 16 минут!!!
 LCLICK(836, 800)
 WAIT(1)
 LCLICK(836, 800)
 WAIT(1)
 LCLICK(1214, 796)
 WAIT(1)
 LCLICK(1214, 796)
 WAIT(1)
 LCLICK(1329, 980)
 WAIT(170)
 else
 //если она там есть
 //какието действия и ожидание
 WAIT(10)
 END_IF
 
 else
 //если ее там нет
 //какието действия и ожидание
 WAIT(10)
 
 END_IF
 
 Шестая строка, в конце не хватает скобки.
 IF_PICTURE_IN ($x1, $y1, $x2, $y2, STRCONCAT ($a, ".bmp"))
- 
				Просьба к автору темы.
 Дайте теме вразумительное название. Вот как в таких темах ориентироваться?