Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: Sania on January 09, 2017, 02:33:04 PM
-
подскажите пожалуйста почему у меня не срабатывает условие нападения на моба(находит,проходит все проверки,но вместо нападения выполняет else)
Скрин сделан как положено,через кликер,лежит в нужной папке,но такое ощущени что его не видит
GETSCREEN
IF_PIXEL_IN (145,480,366,680, 13237951) //находит моба(проверка)
GOSUB(ПРОВЕРКА2)
END_IF
SUB(ПРОВЕРКА2) //вторая проверка
GETSCREEN
IF_PIXEL_IN (0,0,$_xmax,$_ymax, 12962502)
GOSUB(ПРОВЕРКА3)
END_IF
SUB(ПРОВЕРКА3) // третья проверка
GETSCREEN
IF_PIXEL_IN (0,0,$_xmax,$_ymax, 7502388)
GOSUB(ПРОВЕРКА4)
END_IF
SUB(ПРОВЕРКА4) //четвёртая проверка,кликаем на него
GETSCREEN
IF_PIXEL_IN (0,0,$_xmax,$_ymax, 14212304)
LCLICK($_return1,$_return2)
GOSUB(ПРОВЕРКА5)
END_IF
SUB(ПРОВЕРКА5) // проверка совпадения уровня
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "DEVA.bmp",-1,100)
LCLICK(752,196) //нападение
ELSE
lclick(788,388)
WAIT(2)
END_IF
END_CYC
тю,сфотографировал другую область,получилось,всё пошло,странно. Тогда у меня другой вопрос,подскажите как правильно прописать ELSE (чтоб у меня получилось два условия-одно для цикла проверки цвета моба,в случае если моб прошёл все проверки,но оказалось что он не нужного мне уровня,чтоб я закрыл и листал дальше и второй ELSE для всех циклов проверок на случай когда нету нужно моба кликается одна точка )
-
эх и бред ты навертел. Этот код для версии 4.7 где еще GOSUB были. Все это написано не верно.
Вот верный код
GETSCREEN
IF_PIXEL_IN (145,480,366,680, 13237951) //находит моба(проверка)
IF_PIXEL_IN (0,0,$_xmax,$_ymax, 12962502) //вторая проверка
IF_PIXEL_IN (0,0,$_xmax,$_ymax, 7502388) // третья проверка
IF_PIXEL_IN (0,0,$_xmax,$_ymax, 14212304) //четвёртая проверка,кликаем на него
LCLICK($_return1,$_return2)
WAITMS(100)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "DEVA.bmp",-1,100) // проверка совпадения уровня
LCLICK(752,196) //нападение
WAITMS(100)
ELSE
lclick(788,388)
WAIT(2)
END_IF
END_IF
END_IF
END_IF
END_IF
WAITMS(50)
-
ааххаха)))а я так радовался что у меня получилось))) большое спасибо) только теперь я не могу второпать как построить поиск нескольких мобов,можно просто снизу прописатьь такой же блок с другим мобом,будет работать?
-
только все проверки нужно вести в координатах поиска моба 145,480,366,680, а не по всему монитору.
спасибо это уже знаю,столько инфы перелопатил) но как оказывается мало лопатил)
-
ааххаха)))а я так радовался что у меня получилось))) большое спасибо) только теперь я не могу второпать как построить поиск нескольких мобов,можно просто снизу прописатьь такой же блок с другим мобом,будет работать?
Можно конечно, пиши.
-
Можно конечно, пиши.
[/quote]
Спасибо за помощь)))
-
я дико извиняюсь) но у меня возникла непонятная проблема на ровном месте- при идентификации и "открытии" персонаж не распознаёт фото,я решил проверить через "гет пиксель" и его то же почему то пропускает,не видит,что это может быть?
wait(2)
lclick(785,372) //deva 7
GETSCREEN
IF_PIXEL_IN (182,506,321,682, 16770915)
IF_PIXEL_IN (182,506,321,682, 14276050)
IF_PIXEL_IN (145,466,321,682, 9861942)
IF_PIXEL_IN (145,466,321,682, 8739538)
LCLICK(239,596)
WAITMS(100)
GETSCREEN
COLORMODE(6)
IF_PIXEL_IN (636,213,636,213, 4394 )
LCLICK(555,450)
WAITMS(100)
ELSE
beep(500,1000)
WAIT(2)
END_IF
END_IF
END_IF
END_IF
END_IF
WAITMS(50)
-
После клика нет задержки
lclick(785,372) //deva 7
WAIT(1)
-
подскажите пожалуйста где ошибка,почему то когда убираю END_IF работает а с ним не хочет( задумка банальная- клик в одну точку,при нахождении совпадения,нападение
WAIT(2)
GETSCREEN
IF_PICTURE_IN(252,538,256,542,"ZAS.bmp")
LCLICK ($_return1,$_return2)
wait(2)
END_IF
GETSCREEN
IF_PICTURE_IN(231,574,251,594,"DEVA.bmp")
LCLICK (234,596)
wait(2)
END_IF
GETSCREEN
IF_PICTURE_IN (231,574,251,594,"DEVA2.bmp")
LCLICK ($_return1,$_return2)
wait(2)
END_IF
GETSCREEN
IF_PICTURE_IN(243,580,257,584,"BUY.bmp")
LCLICK ($_return1,$_return2)
wait(2)
END_IF
GETSCREEN
IF_PICTURE_IN (240,629,258,647,"UJAS.bmp") //NE RAB
LCLICK ($_return1,$_return2)
wait(2)
END_IF
WAIT(1)
LCLICK (789,376)
-
сттранно,как же так,ведь оно находило у мен именно тех что нужно,а остальных пролистывало,а так вообще не находит,ладно вечером буду еще думать,спасибо)
-
А что так удивляет. Сделай скрины одного и того же в разное время, наложи слоями в фотошопе и увидишь что они различаются.
-
А что так удивляет. Сделай скрины одного и того же в разное время, наложи слоями в фотошопе и увидишь что они различаются.
Ну этот этап"понимания" я уже прошёл, я понял что пиксели картинки(динамической) постоянно меняются, но в данном случае они меняются циклично, если я сделаю скрин то приблизительно до 12 секунд моб "станет в позицию" скрина. Я сделал задержку 12 с (у меня был колормод 6) а потом я решил поэкспериментировать и убрал колормод и фрагмент стал моментально находится! Я не понял как так, но проверив, крайне обрадовался, далее начал создавать несколько блоков под каждого моба и началась путаница! Если в верхнем блоке закрывают все end_if а в нижнем к примеру только один тогда скрипт работает! Но появляются лишние движения мышки(видимо накладываются блоки) а если закрываю как положенно все end_if то вообще никак не работает! Как так? Сейчас пойду полистаю примеры скриптов динамических игр
-
Если не хватает end_if, то условия нет совсем! Тело условия выполняется всегда как обычный код.
-
Ну этот этап"понимания" я уже прошёл, я понял что пиксели картинки(динамической) постоянно меняются, но в данном случае они меняются циклично, если я сделаю скрин то приблизительно до 12 секунд моб "станет в позицию" скрина. Я сделал задержку 12 с
Ничего не понятно. Анимация зацикленная и ты ищешь один из кадров? Где эти 12 сек в коде?
В твоём коде нет попытки найти кадр из анимации в течении 12 сек. И то это можно сделать если переключение кадров не слишком быстрое.
(у меня был колормод 6) а потом я решил поэкспериментировать и убрал колормод и фрагмент стал моментально находится!
Ты хоть картинки заготавливаешь в нужном колормоде?
-
да конечно,последнее время без колормода заготавливаю,не раз проверял всё работает. В этом скрипте я не писал задержку 12 сек,потому как я уже писал выше при колормоде 6 искало фрагмент у меня до 12-ти секунд,как только убрал колормод и так скринил стало находить фрагмент моментально(координаты задаю именно того места что скринил)почему так не понимаю,ведь моб "двигается" и пиксели меняются,как тогда скрипт так быстро находит.Мне нужно разобраться в самом принципе работе Иф_пикчер_ин,а пока я не могу сформулировать даже нормально вопрос,извини за беспокойство)
-
Ничего не понятно. Анимация зацикленная и ты ищешь один из кадров? Где эти 12 сек в коде?
В твоём коде нет попытки найти кадр из анимации в течении 12 сек. И то это можно сделать если переключение кадров не слишком быстрое.
вот я наконец то нашёл зерно проблемы и упорядочил. Сейчас скрипт работает но стоит мне поставить как положено второй "ЭНД_ИФ" в третьем блоке перестаёт работать! Более того!!! Если убираю в каждом блоке второй IF_PICTURE_IN("EXIT.bmp")то же перестаёт работать! Как так может быть?
GETSCREEN
IF_PICTURE_IN(252,538,256,542,"ZAS.bmp") //В ЛОКАЦИИ ЭТОТ МОБ
LCLICK ($_return1,$_return2)
wait(1)
GETSCREEN
IF_PICTURE_IN(497,184,734,219,"EXIT.bmp")
KEYPRESS(#ESC)
LCLICK()
wait(1)
ELSE
BEEP(500,1000)
WAIT(1)
END_IF
END_IF
GETSCREEN
IF_PICTURE_IN(243,580,257,584,"BUY.bmp")
LCLICK ($_return1,$_return2)
wait(1)
GETSCREEN
IF_PICTURE_IN(492,186,733,213,"EXIT.bmp")
KEYPRESS(#ESC)
LCLICK ()
wait(1)
ELSE
BEEP(500,1000)
WAIT(1)
END_IF
END_IF
GETSCREEN
IF_PICTURE_IN(240,629,258,647,"SCOR.bmp")
LCLICK (245,593)
wait(1)
GETSCREEN
IF_PICTURE_IN(492,186,733,213,"EXIT.bmp")
KEYPRESS(#ESC)
LCLICK ()
waitms(100)
ELSE
BEEP(500,1000)
END_IF //СТАВЛЮ ВТОРОЙ "ЭНД_ИФ" СРАЗУ ПЕРЕСТАЁТ РАБОТАТЬ
GETSCREEN
IF_PICTURE_IN (240,629,258,647,"UJAS.bmp")
LCLICK ($_return1,$_return2)
wait(1)
GETSCREEN
IF_PICTURE_IN(497,184,734,219,"EXIT.bmp")
KEYPRESS(#ESC)
LCLICK ()
wait(1)
ELSE
BEEP(500,1000)
WAIT(1)
END_IF
END_IF
WAIT(1)
LCLICK () //СМЕНА ЛОКАЦИИ
-
Не верный код, нехватает одного END_IF.
Не надо ломать условие!
А что такое LCLICK () ?
-
Не верный код, нехватает одного END_IF.
Не надо ломать условие!
А что такое LCLICK () ?
Да я отлично понимаю,что это как закрывающий тег,он обязателен,там где пропуски лклик я буду прописывать поведение при нападении,сборе трофеев и выходе,специально пробел оставил когда копировал.
Вот я сейчас попробовал "начать с нуля" написал такое(всё как положено скрин есть,координаты верны):
GETSCREEN
IF_PICTURE_IN (240,629,258,647,"UJAS.bmp")
LCLICK ($_return1,$_return2)
wait(1)
при активации скрипта мышку закидывает в начало(левый верхний угол) и всё.Вот вывел в лог координаты фрагмента,пишет ноль- 19:50:22 UJAS.bmp found at x=0,y=0
-
Где END_IF ?
GETSCREEN
IF_PICTURE_IN (240,629,258,647,"UJAS.bmp")
LOGWRITE ("X ", $_return1, ", Y ", $_return2)
MOVE ($_return1,$_return2)
ELSE
LOGWRITE ("Не найдено!")
END_IF
HALT
-
Где END_IF ?
GETSCREEN
IF_PICTURE_IN (240,629,258,647,"UJAS.bmp")
LOGWRITE ("X ", $_return1, ", Y ", $_return2)
MOVE ($_return1,$_return2)
ELSE
LOGWRITE ("Не найдено!")
END_IF
HALT
зашибись,пишет не найдено,ладно буду думать почему
-
кажись разобрался,как я и говорил- мобы находятся в движении и фрагмент находится только в тот момент когда моб становится в позицию когда скринил фрагмент,как я и говорил выше нужно давать скрипту около 12 сек на локацию или же искать по пикселям,как писалось выше - 1
Unique Colors Search мне в помощь. О! И колормод помог,99% находит фрагмент)ура!))
-
Всем доброго вечера) помогите пожалуйста понять ошибку(как я подозреваю подвох где-то кроется в wait(n)) я запускаю скрипт,когда он листает локации то мобов находит более 4 секунд а иногда и вовсе не успевает найти,и как только я "глушу" перелистывание локаций и проверяю скрипт на каждом из мобов,всё работает как часы!
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN(236,576,246,586,"ZAS.bmp",-1,30)
LCLICK ($_return1,$_return2)
wait(2)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN(497,184,734,219,"EXIT.bmp",-1,100)
KEYPRESS(#ESC)
waitms(100)
ELSE
BEEP(500,1000)
LCLICK (555,451)
WAIT(15)
LCLICK (223,655) //OGN SHAR
WAIT(1)
LCLICK (540,602) //MANA
WAIT(1)
LCLICK (224,601) //MOLN
WAIT(1)
LCLICK (596,606) //OZVER
WAIT(1)
LCLICK (647,602) //SNEJ
WAIT(1)
LCLICK (701,605) //SNEJ
WAIT(1)
LCLICK (754,603) //SNEJ
WAIT(5)
KEYPRESS(#ESC)
WAIT(1)
LCLICK (425,431) //MENU
WAIT(1)
LCLICK (483,449) //ZABR
WAIT(4)
LCLICK (557,511) //EXIT
WAIT(2)
WAIT(1)
END_IF
END_IF
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN(250,631,260,641,"SCOR.bmp",-1,30)
LCLICK (245,593)
wait(2)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN(492,186,733,213,"EXIT.bmp",-1,100)
KEYPRESS(#ESC)
waitms(100)
ELSE
BEEP(500,1000)
LCLICK (556,473) //atack
WAIT(15)
LCLICK (223,655) //OGN SHAR
WAIT(1)
LCLICK (540,602) //MANA
WAIT(1)
LCLICK (224,601) //MOLN
WAIT(1)
LCLICK (596,606) //OZVER
WAIT(1)
LCLICK (647,602) //SNEJ
WAIT(1)
LCLICK (701,605) //SNEJ
WAIT(1)
LCLICK (754,603) //SNEJ
WAIT(5)
KEYPRESS(#ESC)
WAIT(1)
LCLICK (425,431) //MENU
WAIT(1)
LCLICK (483,449) //ZABR
WAIT(4)
LCLICK (557,511) //EXIT
WAIT(2)
END_IF
END_IF
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN(224,573,234,583,"ZAB.bmp",-1,30)
LCLICK ($_return1,$_return2)
wait(2)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN(602,206,627,228,"ZAB.EXIT.bmp",-1,100)
KEYPRESS(#ESC)
waitms(100)
ELSE
LCLICK (552,463) //atack
WAIT(15)
LCLICK (223,655) //OGN SHAR
WAIT(1)
LCLICK (540,602) //MANA
WAIT(1)
LCLICK (224,601) //MOLN
WAIT(1)
LCLICK (596,606) //OZVER
WAIT(1)
LCLICK (647,602) //SNEJ
WAIT(1)
LCLICK (701,605) //SNEJ
WAIT(1)
LCLICK (754,603) //SNEJ
WAIT(5)
KEYPRESS(#ESC)
WAIT(1)
LCLICK (425,431) //MENU
WAIT(1)
LCLICK (483,449) //ZABR
WAIT(4)
LCLICK (557,511) //EXIT
WAIT(2)
END_IF
END_IF
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN(225,642,235,652,"DEVA.bmp",-1,30)
LCLICK ($_return1,$_return2)
wait(2)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN(602,206,627,228,"DEVA.EXIT.bmp",-1,100)
KEYPRESS(#ESC)
waitms(100)
ELSE
LCLICK (550,450)
WAIT(15)
LCLICK (223,655) //OGN SHAR
WAIT(1)
LCLICK (540,602) //MANA
WAIT(1)
LCLICK (224,601) //MOLN
WAIT(1)
LCLICK (596,606) //OZVER
WAIT(1)
LCLICK (647,602) //SNEJ
WAIT(1)
LCLICK (701,605) //SNEJ
WAIT(1)
LCLICK (754,603) //SNEJ
WAIT(5)
KEYPRESS(#ESC)
WAIT(1)
LCLICK (425,431) //MENU
WAIT(1)
LCLICK (483,449) //ZABR
WAIT(4)
LCLICK (557,511) //EXIT
WAIT(2)
WAIT(1)
END_IF
END_IF
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (246,631,256,641,"UJAS.bmp",-1,30)
LCLICK ($_return1,$_return2)
wait(1)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN(601,207,626,229,"UJAS.EXIT.bmp",-1,100)
KEYPRESS(#ESC)
waitms(100)
ELSE
LCLICK (555,451)
WAIT(15)
LCLICK (223,655) //OGN SHAR
WAIT(1)
LCLICK (540,602) //MANA
WAIT(1)
LCLICK (224,601) //MOLN
WAIT(1)
LCLICK (596,606) //OZVER
WAIT(1)
LCLICK (647,602) //SNEJ
WAIT(1)
LCLICK (701,605) //SNEJ
WAIT(1)
LCLICK (754,603) //SNEJ
WAIT(5)
KEYPRESS(#ESC)
WAIT(1)
LCLICK (425,431) //MENU
WAIT(1)
LCLICK (483,449) //ZABR
WAIT(4)
LCLICK (557,511) //EXIT
WAIT(2)
END_IF
END_IF
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN(240,629,258,647,"BUY.bmp",-1,30)
LCLICK ($_return1,$_return2)
wait(1)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN(602,191,626,208,"BUY.EXIT.bmp",-1,100)
KEYPRESS(#ESC)
waitms(100)
ELSE
LCLICK (553,479)
WAIT(15)
LCLICK (223,655) //OGN SHAR
WAIT(1)
LCLICK (540,602) //MANA
WAIT(1)
LCLICK (224,601) //MOLN
WAIT(1)
LCLICK (596,606) //OZVER
WAIT(1)
LCLICK (647,602) //SNEJ
WAIT(1)
LCLICK (701,605) //SNEJ
WAIT(1)
LCLICK (754,603) //SNEJ
WAIT(5)
KEYPRESS(#ESC)
WAIT(1)
LCLICK (425,431) //MENU
WAIT(1)
LCLICK (483,449) //ZABR
WAIT(4)
LCLICK (557,511) //EXIT
END_IF
END_IF
END_CYC
LCLICK (790,368)
wait(4)
-
ого) первый раз такое вижу) а я то думал что просто wait нужно поставить где нужно и всё))))спасибо большое,сейчас буду изучать))