Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: FarsH on January 05, 2014, 02:56:39 PM
-
Промучался часа 3 и не сдвинулся с точки. Итак задача :
1)На определенном месте ищет картинку (1), при нахождении щелкает на её центр, или хотя бы на неё, а потом :
2) выполняет действия : клики, пождение по экрану зажатой мышью
3) Опять На определенном месте ищет картинку (2) если находит то щелкает на её центр, или хотя бы на неё, а потом :
4)выполняет действия : клики, пождение по экрану зажатой мышью ( тоже самое,что и пункт 2)
5) Опять На определенном месте ищет картинку (3) и если не находит издает звук и щелкает мышью в точке нужной (постоянной)
6) Повторяется заново
Все я себе представляю в голове, но как говориться то ли дурак то ли лыжи не едут !
Не может найти ни картинку ( кстати хочу уточнить куда картинки ложить bmp ?) ни пиксель, вот простой мой код на пиксель, может я где что не понял:
[spoiler]LCLICK(1140,234) // 10062664
WAITMS(1000) // Так нужно )
GETSCREEN // скрин в оперативу
WAITMS(70)
IF_PIXEL_IN(1145,334, 9207629) // ищет пиксель
LCLICK(1145,334) // 16444855 ( клик по пикселю )
WAITMS(64)
LCLICK(1168,810) // 15985355 ( Тоже нужный клик)
ELSE // иначе
LOGWRITE ("больше одного") // занчит не нашел и нужно заного искать в другом месте
WAITMS(64)
IF_PIXEL_IN(1010,317, 9141312) // (если там не найдет то тут 100% есть пиксель)
WAITMS(64)
LCLICK(1010,317) // Щелк по найденому пикселю
END_IF
halt // ну и пока стоп, хотябы в этом разобраться
[/spoiler]
Конечно хотелось бы поиск по картинке, но там также найти не может...
-
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "textures\somefile.bmp"). Ищет картинку "somefile.bmp" находящуюся в папке "textures" в заданной области. ($x1, $y1) - координаты верхнего левого угла, ($x2, $y2) - координаты правого нижнего угла. Координаты найденной картинки записываются в переменные $_return1 - координата X , $_return2 - координата - Y
Пример:
GETSCREEN //снимок
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "textures\somefile.bmp") // ищет картинку
LCLICK($_return1, $_return2) // клик по картинке
// тут твои действия
END_IF
GETSCREEN //снимок
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "textures\somefile2.bmp") // ищет картинку
LCLICK($_return1, $_return2) // клик по картинке
// тут твои действия
END_IF
GETSCREEN //снимок
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "textures\somefile3.bmp") // ищет картинку
LCLICK($_return1, $_return2) // клик по картинке
// тут твои действия
ELSE // если не нашел
beep(90,200) // звук системного динамика
LCLICK($x1,$y1) // клик по координатам $x1,$y1
END_IF
IF_PIXEL_IN(1145,334, 9207629) // ищет пиксель
Не ищет пиксель. Для команды IF_PIXEL_IN задается область поиска, так же как для IF_PICTURE_IN.
Если нужно найти пиксель в конкретной точке, то для этого команда - PXL
getscreen
IF(PXL(1145,334) = 9207629)
LCLICK(1145,334)
END_IF
-
IF_PICTURE_IN ($x1, $y1, $x2, $y2, "textures\somefile.bmp"). Ищет картинку "somefile.bmp" находящуюся в папке "textures" в заданной области. ($x1, $y1) - координаты верхнего левого угла, ($x2, $y2) - координаты правого нижнего угла. Координаты найденной картинки записываются в переменные $_return1 - координата X , $_return2 - координата - Y
Не ищет пиксель. Для команды IF_PIXEL_IN задается область поиска, так же как для IF_PICTURE_IN.
Если нужно найти пиксель в конкретной точке, то для этого команда - PXL
getscreen
IF(PXL(1145,334) = 9207629)
LCLICK(1145,334)
END_IF
Про пиксель понял, да и в принципе мне все ясно, но похоже я что-то упускаю. Может привязка ? ( Alt+Q использую для привязки и для вставки точных координат пикселя и его цвета)
Ну не может он найти ни пиксель ни картинку в определенной области
Ну проще реально не куда, вот код всего на поиск 1 картинки или пикселя.
// Поиск пикселя
WAIT(1)
LCLICK(1538,37) // 16707776
WAIT(1)
getscreen
IF(PXL(1394,120) = 8616271)
LCLICK(1394,120)
LOGWRITE ("ПИКСЕЛЬ НАЙДЕН !")
ELSE
BEEP(800,200)
LOGWRITE ("НЕ НАЙДЕНО !")
END_IF
//////////////////////////////////////////////////////////////////////
// Поиск картинки
WAIT(1)
LCLICK(1538,37) // 16707776
WAIT(1)
getscreen
IF_PICTURE_IN (1332,72, 1579,530, "textures\4pik.bmp")
LCLICK($_return1, $_return2)
LOGWRITE ("КАРТИНКА НАШЛАСЬ !")
ELSE
BEEP(800,200)
LOGWRITE ("НЕ НАЙДЕНО !")
END_IF
-
Попробуй добавить ожидание пикселя/картинки
// Поиск пикселя
WAIT(1)
LCLICK(1538,37) // 16707776
WAIT(1)
//--------------------------------
//ожидание пикселя
$time = $_time_t + 10 // 10 сек
getscreen
while((PXL (1394,120) ! 8616271) & ($time > $_time_t))
WAITMS(100)
getscreen
end_cyc
//--------------------------------
IF(PXL(1394,120) = 8616271)
LCLICK(1394,120)
LOGWRITE ("ПИКСЕЛЬ НАЙДЕН !")
ELSE
BEEP(800,200)
LOGWRITE ("НЕ НАЙДЕНО !")
END_IF
//////////////////////////////////////////////////////////////////////
// Поиск картинки
WAIT(1)
LCLICK(1538,37) // 16707776
WAIT(1)
//--------------------------------
$check = 0
$time = $_time_t + 10 // 10 сек
while(($check = 0) & ($time > $_time_t))
getscreen
IF_PICTURE_IN (1332,72, 1579,530, "textures\4pik.bmp")
$check = 1
LCLICK($_return1, $_return2)
LOGWRITE ("КАРТИНКА НАШЛАСЬ !")
ELSE
WAITMS(100)
END_IF
end_cyc
if($check = 0)
BEEP(800,200)
LOGWRITE ("НЕ НАЙДЕНО !")
end_if
-
IF_PICTURE_IN (x, y, x2, y2, "file", [bgcolor], [currency])
Попробуй:
currency - необязательный параметр; точность поиска в процентах (1..99)
Т.е. если поставить вместо [currency] процент, например "80", то шанс нахождения картинки возрастет т.к. точность поиска уменьшено. Но производительность от этого пострадает (зависит от размеров площади поиска).