4
« on: March 23, 2023, 02:45:19 PM »
Доброго времени суток!
Подскажите, пожалуйста, что я не так делаю.
Это мой первый опыт работы в кликере (Clickermann v4.13 x32), мне нужна программа, решающая маджонг.
Просмотрела мануалы по автокликеру, в этой теме был похожий вопрос (venedict).
Принцип работы: кликаю по костяшке, кликер делает ее снимок, и ищет похожую картинку. Работает очень через раз, находя либо 0 вариантов (почти всегда), либо вагон и маленькую тележку. Кликер настроен на игру в левой половине экрана.
проверялка $cLicer отключает режим поиска, когда кликаем по найденной картинке. Надеюсь, имеющихся комментариев хватит для понимания принципа работы программы.
Проверка большой картинки отключена, потому что и маленькая-то не находится.
Заранее спасибо.
// 15.03.2023
$cLicer=1
IF (ISKEYDOWN(1)=1) // запись координат клика
if($cLicer=1)
//включаем проверялку
$sx = $_xmouse
$sy = $_ymouse
GETSCREEN // получаем скриншот экрана
COLORMODE(3)
//картинка 20х30 для проверки и 9х9=($capt+1+$capt x $capt+1+$capt) для поиска
$capt=4 //размер картинки для поиска
SCREENSHOTFIX($sx-10,$sy-15, $sx+10,$sy+15, "cost20x30.bmp")
SCREENSHOTFIX($sx-$capt,$sy-$capt, $sx+$capt,$sy+$capt, "cost9x9.bmp")
//сообщим клик мыши
print(STRCONCAT("клик мыши ", $_xmouse," x ", $_ymouse))
//Задержка 0,2 секунды
WHILE(ISKEYDOWN(1)=1)
WAITMS(200)
END_CYC
GETSCREEN // получаем скриншот экрана с закрашенной костяшкой
COLORMODE(3)
//ищем маленькую картинку
undefine($ARR)
SCANPICTURE($ARR, 20,25, 1020,$_ymax-30, "cost9x9.bmp", -1, 20)
//SCANPXL($ARR, 20,25, $_xmax-20,$_ymax-30, $clr)
print(STRCONCAT(ARRSIZE($ARR)/2, " возможных координат"))
if (ARRSIZE($ARR)<10)
//отключаем проверялку
$cLicer=0
$size = ARRSIZE($ARR)
$number=1
FOR($i=0,$i<$size,2)
//перечислим найденные картинки
print(STRCONCAT($number, " ", $ARR[$i]+$capt," х ", $ARR[$i+1]+$capt))
//сделаем снимки для проверки
SCREENSHOTFIX($ARR[$i],$ARR[$i+1],$ARR[$i]+$capt*2,$ARR[$i+1]+$capt*2, STRCONCAT("scr_", $number, ".bmp"))
SCREENSHOTFIX($ARR[$i]-10+$capt,$ARR[$i+1]-15+$capt,$ARR[$i]+10+$capt,$ARR[$i+1]+15+$capt, STRCONCAT("scrBig_", $number, ".bmp"))
//проверим большой картиной
//IF_PICTURE_IN($ARR[$i]-10+capt,$ARR[$i+1]-15+capt,$ARR[$i]+10+capt,$ARR[$i+1]+15+capt, "cost20x30.bmp", -1, 50)
MOVE($ARR[$i]+$capt,$ARR[$i+1]+$capt)
//wait(3)
LCLICK($ARR[$i]+$capt,$ARR[$i+1]+$capt)
//$i=$size
//HALT
//END_IF
$number=$number+1
END_CYC
end_if
$cLicer=1
print(" ")
END_IF
END_IF