После обьяснений как и чего работает в кликере переделал свой скрипт://Гнев Богов
// Чистка почты и продажа лута в магазине
$x = 728
$y = 375
$x2 = 695
$y2 = 284
$c1 = 4079426
$c2 = 592154
$c3 = 1399552
$x3 = 490
$x4 = 580
$y3 = 262
$y4 = 268
mag1:
LCLICK(863,81)
GOSUB(WAIT_MA)
sl1:
getscreen
if_pixel_in($x3, $y3, $x4, $y4, $c1, $c2, $c3)
LCLICK($x2,$y2)
WAITMS(RND(300,500))
LCLICK($x,$y)
GOSUB(WAIT_MA)
GOTO(sl1)
end_if
sl2:
getscreen
if_pixel_in($x3, $y3+50, $x4, $y4+50, $c1, $c2, $c3)
LCLICK($x2,$y2+50)
WAITMS(RND(300,500))
LCLICK($x,$y)
GOSUB(WAIT_MA)
GOTO(sl2)
end_if
sl3:
getscreen
if_pixel_in($x3, $y3+100, $x4, $y4+100, $c1, $c2, $c3)
LCLICK($x2,$y2+100)
WAITMS(RND(300,500))
LCLICK($x,$y)
GOSUB(WAIT_MA)
GOTO(sl3)
end_if
sl4:
getscreen
if_pixel_in($x3, $y3+150, $x4, $y4+150, $c1, $c2, $c3)
LCLICK($x2,$y2+150)
WAITMS(RND(300,500))
LCLICK($x,$y)
GOSUB(WAIT_MA)
GOTO(sl4)
end_if
sl5:
getscreen
if_pixel_in($x3, $y3+200, $x4, $y4+200, $c1, $c2, $c3)
LCLICK($x2,$y2+200)
WAITMS(RND(300,500))
LCLICK($x,$y)
GOSUB(WAIT_MA)
GOTO(sl5)
end_if
sl6:
getscreen
if_pixel_in($x3, $y3+250, $x4, $y4+250, $c1, $c2, $c3)
LCLICK($x2,$y2+250)
WAITMS(RND(300,500))
LCLICK($x,$y)
GOSUB(WAIT_MA)
GOTO(sl6)
end_if
sl7:
getscreen
if_pixel_in($x3, $y3+300, $x4, $y4+300, $c1, $c2, $c3)
LCLICK($x2,$y2+300)
WAITMS(RND(300,500))
LCLICK($x,$y)
GOSUB(WAIT_MA)
GOTO(sl7)
end_if
TRAYSAY ("на почту") // сделал просто что бы видеть что что то происходит. работаю в оконном режиме. сам в это время занимаюсь другими делами.
ht1:
getscreen
if_pixel_in($x3, $y3+300, $x4, $y4+300, 11438, 9437313, 9456128)
TRAYSAY("всё забито")
SOUND("pause.wav")
HALT
end_if
LCLICK(929,81)
WAIT(RND(12,14))
po:
GETSCREEN
if_pixel_in(883, 301, 892, 306, 11982062)
goto(ch)
else
TRAYSAY("писем нет")
goto(F)
end_if
ch:
LCLICK(968,305)
WAITMS(4500)
LCLICK(911,558)
WAITMS(110)
LCLICK(911,558)
WAITMS(RND(600,1000))
LCLICK(729,377)
GOSUB (WAIT_PO)
LCLICK(916,308)
WAITMS(RND(600,1000))
LCLICK(1063,535)
WAITMS(RND(1000,2000))
LCLICK(738,494)
GOSUB (WAIT_PO)
GETSCREEN
//Проверка в трёх местах ячеек рюкзака в почте.
IF_PICTURE_IN(445,320,710,532, "1.bmp")
goto(po)
end_if
GETSCREEN
IF_PICTURE_IN(445,320,710,532, "2.bmp")
goto(po)
end_if
GETSCREEN
IF_PICTURE_IN(445,320,710,532, "3.bmp")
goto(po)
else
TRAYSAY("мест нет, продаю")
goto(mag1)
END_IF
F:
LCLICK(863,81)
GOSUB(WAIT_MA)
GETSCREEN
IF_PICTURE_IN(419,546,468,598, "4.bmp")
goto(mag1)
end_if
HALT
//задержки на обновление страницы
SUB(WAIT_MA)
$break = 0
WHILE($break = 0)
WAIT(4)
GETSCREEN
IF(PXL(722, 287) = 1919430)
$break = 1
END_IF
END_CYC
END_SUB
SUB(WAIT_PO)
$break = 0
WHILE($break = 0)
WAIT(4)
GETSCREEN
IF(PXL(841, 375) = 4078899)
$break = 1
END_IF
END_CYC
END_SUB
Что можете посоветовать изменить? И если есть что переделать, то как?
В частности у меня вопрос по проверке в трёх местах ячеек рюкзака в почте. Пока реализовал так но!
Там всего 20 ячеек. Сделал один снимок и по нему сделал сравнение. Оказалось что во всех ячейках рисунок разный, хоть и не заметно глазу. Пытался сделать с колормод, но всё равно сравнение подходит только к той ячейке кот скриншотил. Может я чего не то делал.... Вот как реализовать поиск пустых ячеек, без сравнения с картинкой? Сделал скрины на всякий... ячейки могут разные заняты быть.