Author Topic: вопрос по приложению Небеса  (Read 6750 times)

0 Members and 2 Guests are viewing this topic.

Sania

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
вопрос по приложению Небеса
« 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 для всех циклов проверок на случай когда нету нужно моба кликается одна точка )
« Last Edit: January 09, 2017, 02:51:01 PM by Sania »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: вопрос по приложению Небеса
« Reply #1 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)

Sania

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: вопрос по приложению Небеса
« Reply #2 on: January 09, 2017, 03:34:07 PM »
ааххаха)))а я так радовался что у меня получилось))) большое спасибо) только теперь я не могу второпать как построить поиск нескольких мобов,можно просто снизу прописатьь такой же блок с другим мобом,будет работать?

Sania

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: вопрос по приложению Небеса
« Reply #3 on: January 09, 2017, 04:03:38 PM »
только все проверки нужно вести в координатах поиска моба 145,480,366,680,  а не по всему монитору.
спасибо это уже знаю,столько инфы перелопатил) но как оказывается мало лопатил)

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: вопрос по приложению Небеса
« Reply #4 on: January 09, 2017, 04:11:38 PM »
ааххаха)))а я так радовался что у меня получилось))) большое спасибо) только теперь я не могу второпать как построить поиск нескольких мобов,можно просто снизу прописатьь такой же блок с другим мобом,будет работать?

Можно конечно, пиши.

Sania

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: вопрос по приложению Небеса
« Reply #5 on: January 09, 2017, 04:15:57 PM »

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

Спасибо за помощь)))

Sania

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: вопрос по приложению Небеса
« Reply #6 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)
« Last Edit: January 09, 2017, 05:27:18 PM by Oraven »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: вопрос по приложению Небеса
« Reply #7 on: January 09, 2017, 05:27:01 PM »
После клика нет задержки

Code: (clickermann) [Select]
lclick(785,372)  //deva 7
WAIT(1)

Sania

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: вопрос по приложению Небеса
« Reply #8 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)
















   

Sania

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: вопрос по приложению Небеса
« Reply #9 on: January 11, 2017, 07:52:38 AM »
сттранно,как же так,ведь оно находило у мен именно тех что нужно,а остальных пролистывало,а так вообще не находит,ладно вечером буду еще думать,спасибо)

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: вопрос по приложению Небеса
« Reply #10 on: January 11, 2017, 08:13:12 AM »
А что так удивляет. Сделай скрины одного и того же в разное время, наложи слоями в фотошопе и увидишь что они различаются.


Sania

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: вопрос по приложению Небеса
« Reply #11 on: January 11, 2017, 03:52:19 PM »
А что так удивляет. Сделай скрины одного и того же в разное время, наложи слоями в фотошопе и увидишь что они различаются.

Ну этот этап"понимания" я уже прошёл, я понял что пиксели картинки(динамической) постоянно меняются, но в данном случае они меняются циклично, если я сделаю скрин то приблизительно до 12 секунд моб "станет в позицию" скрина. Я сделал задержку 12 с (у меня был колормод 6) а потом я решил поэкспериментировать и убрал колормод и фрагмент стал моментально находится! Я не понял как так, но проверив, крайне обрадовался, далее начал создавать несколько блоков под каждого моба и началась путаница! Если в верхнем блоке закрывают все end_if а в нижнем к примеру только один тогда скрипт работает! Но появляются лишние движения мышки(видимо накладываются блоки) а если закрываю как положенно все end_if то вообще никак не работает! Как так? Сейчас пойду полистаю примеры скриптов динамических игр

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: вопрос по приложению Небеса
« Reply #12 on: January 11, 2017, 04:27:09 PM »
Если не хватает end_if, то условия нет совсем! Тело условия выполняется всегда как обычный код.


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: вопрос по приложению Небеса
« Reply #13 on: January 11, 2017, 04:31:41 PM »
Ну этот этап"понимания" я уже прошёл, я понял что пиксели картинки(динамической) постоянно меняются, но в данном случае они меняются циклично, если я сделаю скрин то приблизительно до 12 секунд моб "станет в позицию" скрина. Я сделал задержку 12 с

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

(у меня был колормод 6) а потом я решил поэкспериментировать и убрал колормод и фрагмент стал моментально находится!
Ты хоть картинки заготавливаешь в нужном колормоде?
« Last Edit: January 11, 2017, 04:33:30 PM by Vint »


Sania

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: вопрос по приложению Небеса
« Reply #14 on: January 11, 2017, 07:15:54 PM »
да конечно,последнее время без колормода заготавливаю,не раз проверял всё работает. В этом скрипте я не писал задержку 12 сек,потому как я уже писал выше при колормоде 6 искало фрагмент у меня до 12-ти секунд,как только убрал колормод и так скринил стало находить фрагмент моментально(координаты задаю именно того места что скринил)почему так не понимаю,ведь моб "двигается" и пиксели меняются,как тогда скрипт так быстро находит.Мне нужно разобраться в самом принципе работе Иф_пикчер_ин,а пока я не могу сформулировать даже нормально вопрос,извини за беспокойство)