Автокликер Clickermann :: Форум

Основной раздел => Использование => Topic started by: Sania on January 09, 2017, 02:33:04 PM

Title: вопрос по приложению Небеса
Post 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 для всех циклов проверок на случай когда нету нужно моба кликается одна точка )
Title: Re: вопрос по приложению Небеса
Post by: Oraven on January 09, 2017, 02:50:10 PM
эх и бред ты навертел. Этот код для версии 4.7 где еще GOSUB были. Все это написано не верно.

Вот верный код
Code: (clickermann) [Select]
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)
Title: Re: вопрос по приложению Небеса
Post by: Sania on January 09, 2017, 03:34:07 PM
ааххаха)))а я так радовался что у меня получилось))) большое спасибо) только теперь я не могу второпать как построить поиск нескольких мобов,можно просто снизу прописатьь такой же блок с другим мобом,будет работать?
Title: Re: вопрос по приложению Небеса
Post by: Sania on January 09, 2017, 04:03:38 PM
только все проверки нужно вести в координатах поиска моба 145,480,366,680,  а не по всему монитору.
спасибо это уже знаю,столько инфы перелопатил) но как оказывается мало лопатил)
Title: Re: вопрос по приложению Небеса
Post by: Oraven on January 09, 2017, 04:11:38 PM
ааххаха)))а я так радовался что у меня получилось))) большое спасибо) только теперь я не могу второпать как построить поиск нескольких мобов,можно просто снизу прописатьь такой же блок с другим мобом,будет работать?

Можно конечно, пиши.
Title: Re: вопрос по приложению Небеса
Post by: Sania on January 09, 2017, 04:15:57 PM

Можно конечно, пиши.
[/quote]

Спасибо за помощь)))
Title: Re: вопрос по приложению Небеса
Post by: Sania on January 09, 2017, 05:11:30 PM
я дико извиняюсь) но у меня возникла непонятная проблема на ровном месте- при идентификации и "открытии" персонаж не распознаёт фото,я решил проверить через "гет пиксель" и его то же почему то пропускает,не видит,что это может быть?
Code: (clickermann) [Select]
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)
Title: Re: вопрос по приложению Небеса
Post by: Oraven on January 09, 2017, 05:27:01 PM
После клика нет задержки

Code: (clickermann) [Select]
lclick(785,372)  //deva 7
WAIT(1)
Title: Re: вопрос по приложению Небеса
Post by: Sania on January 11, 2017, 04:06:18 AM
подскажите пожалуйста где ошибка,почему то когда убираю END_IF работает а с ним не хочет( задумка банальная- клик в одну точку,при нахождении совпадения,нападение
Quote
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)
















   
Title: Re: вопрос по приложению Небеса
Post by: Sania on January 11, 2017, 07:52:38 AM
сттранно,как же так,ведь оно находило у мен именно тех что нужно,а остальных пролистывало,а так вообще не находит,ладно вечером буду еще думать,спасибо)
Title: Re: вопрос по приложению Небеса
Post by: Vint on January 11, 2017, 08:13:12 AM
А что так удивляет. Сделай скрины одного и того же в разное время, наложи слоями в фотошопе и увидишь что они различаются.
Title: Re: вопрос по приложению Небеса
Post by: Sania on January 11, 2017, 03:52:19 PM
А что так удивляет. Сделай скрины одного и того же в разное время, наложи слоями в фотошопе и увидишь что они различаются.

Ну этот этап"понимания" я уже прошёл, я понял что пиксели картинки(динамической) постоянно меняются, но в данном случае они меняются циклично, если я сделаю скрин то приблизительно до 12 секунд моб "станет в позицию" скрина. Я сделал задержку 12 с (у меня был колормод 6) а потом я решил поэкспериментировать и убрал колормод и фрагмент стал моментально находится! Я не понял как так, но проверив, крайне обрадовался, далее начал создавать несколько блоков под каждого моба и началась путаница! Если в верхнем блоке закрывают все end_if а в нижнем к примеру только один тогда скрипт работает! Но появляются лишние движения мышки(видимо накладываются блоки) а если закрываю как положенно все end_if то вообще никак не работает! Как так? Сейчас пойду полистаю примеры скриптов динамических игр
Title: Re: вопрос по приложению Небеса
Post by: Vint on January 11, 2017, 04:27:09 PM
Если не хватает end_if, то условия нет совсем! Тело условия выполняется всегда как обычный код.
Title: Re: вопрос по приложению Небеса
Post by: Vint on January 11, 2017, 04:31:41 PM
Ну этот этап"понимания" я уже прошёл, я понял что пиксели картинки(динамической) постоянно меняются, но в данном случае они меняются циклично, если я сделаю скрин то приблизительно до 12 секунд моб "станет в позицию" скрина. Я сделал задержку 12 с

Ничего не понятно. Анимация зацикленная и ты ищешь один из кадров? Где эти 12 сек в коде?
В твоём коде нет попытки найти кадр из анимации в течении 12 сек. И то это можно сделать если переключение кадров не слишком быстрое.

(у меня был колормод 6) а потом я решил поэкспериментировать и убрал колормод и фрагмент стал моментально находится!
Ты хоть картинки заготавливаешь в нужном колормоде?
Title: Re: вопрос по приложению Небеса
Post by: Sania on January 11, 2017, 07:15:54 PM
да конечно,последнее время без колормода заготавливаю,не раз проверял всё работает. В этом скрипте я не писал задержку 12 сек,потому как я уже писал выше при колормоде 6 искало фрагмент у меня до 12-ти секунд,как только убрал колормод и так скринил стало находить фрагмент моментально(координаты задаю именно того места что скринил)почему так не понимаю,ведь моб "двигается" и пиксели меняются,как тогда скрипт так быстро находит.Мне нужно разобраться в самом принципе работе Иф_пикчер_ин,а пока я не могу сформулировать даже нормально вопрос,извини за беспокойство)
Title: Re: вопрос по приложению Небеса
Post by: Sania on January 11, 2017, 08:24:32 PM
Quote
Ничего не понятно. Анимация зацикленная и ты ищешь один из кадров? Где эти 12 сек в коде?
В твоём коде нет попытки найти кадр из анимации в течении 12 сек. И то это можно сделать если переключение кадров не слишком быстрое.
вот я наконец то нашёл зерно проблемы и упорядочил. Сейчас скрипт работает но стоит мне поставить как положено второй "ЭНД_ИФ" в третьем блоке перестаёт работать! Более того!!! Если убираю в каждом блоке второй IF_PICTURE_IN("EXIT.bmp")то же перестаёт работать! Как так может быть?

Code: (clickermann) [Select]
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 ()  //СМЕНА ЛОКАЦИИ


Title: Re: вопрос по приложению Небеса
Post by: Oraven on January 11, 2017, 08:30:20 PM
Не верный код, нехватает одного END_IF.
Не надо ломать условие!

А что такое LCLICK () ?
Title: Re: вопрос по приложению Небеса
Post by: Sania on January 11, 2017, 08:41:42 PM
Не верный код, нехватает одного END_IF.
Не надо ломать условие!

А что такое LCLICK () ?

Да я отлично понимаю,что это как закрывающий тег,он обязателен,там где пропуски лклик я буду прописывать поведение при нападении,сборе трофеев и выходе,специально пробел оставил когда копировал.

Вот я сейчас попробовал "начать с нуля" написал такое(всё как положено скрин есть,координаты верны):
Code: (clickermann) [Select]
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
Title: Re: вопрос по приложению Небеса
Post by: Oraven on January 11, 2017, 08:58:00 PM
Где END_IF ?

Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (240,629,258,647,"UJAS.bmp")
   LOGWRITE ("X ", $_return1, ", Y ", $_return2)
   MOVE ($_return1,$_return2)
ELSE
   LOGWRITE ("Не найдено!")
END_IF

HALT
     
Title: Re: вопрос по приложению Небеса
Post by: Sania on January 11, 2017, 09:09:06 PM
Где END_IF ?

Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (240,629,258,647,"UJAS.bmp")
   LOGWRITE ("X ", $_return1, ", Y ", $_return2)
   MOVE ($_return1,$_return2)
ELSE
   LOGWRITE ("Не найдено!")
END_IF

HALT
   

зашибись,пишет не найдено,ладно буду думать  почему
Title: Re: вопрос по приложению Небеса
Post by: Sania on January 11, 2017, 09:42:43 PM
кажись разобрался,как я и говорил- мобы находятся в движении и фрагмент находится только в тот момент когда моб становится в позицию когда скринил фрагмент,как я и говорил выше нужно давать скрипту около 12 сек на локацию или же искать по пикселям,как писалось выше - 1
Unique Colors Search мне в помощь. О! И колормод помог,99% находит фрагмент)ура!))
Title: Re: вопрос по приложению Небеса
Post by: Sania on January 12, 2017, 10:01:50 PM
Всем доброго вечера) помогите пожалуйста понять ошибку(как я подозреваю подвох где-то кроется в wait(n)) я запускаю скрипт,когда он листает локации то мобов находит более 4 секунд а иногда и вовсе не успевает найти,и как только я "глушу" перелистывание локаций и проверяю скрипт на каждом из мобов,всё работает как часы!
Code: (clickermann) [Select]



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)

   
Title: Re: вопрос по приложению Небеса
Post by: Sania on January 13, 2017, 07:40:06 AM
ого) первый раз такое вижу) а я то думал что просто wait нужно поставить где нужно и всё))))спасибо большое,сейчас буду изучать))