Author Topic: поиск картинки  (Read 2702 times)

0 Members and 1 Guest are viewing this topic.

Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
поиск картинки
« on: April 30, 2017, 03:58:07 PM »
Code: (clickermann) [Select]

GETSCREEN
IF_PICTURE_IN (822,214, 1003,464, "1.bmp", -1, 90)
   GETSCREEN
   IF_PICTURE_IN (728,240, 1003,464, "2.bmp", -1, 90)|(728,240, 1003,464, "4.bmp", -1, 90)   // нужно чтоб тут искал или 2 или 4 картинку если ни 2 ни 4  не найдены то ниже ELSE поиск 5-той
     
      GETSCREEN
      IF_PICTURE_IN (688,240, 1003,464, "3.bmp", -1, 90)
         LCLICK($_return1, $_return2)
         MOVE(10,10)
         WAITMS(100)
         
         GETSCREEN
         
         
      END_IF
   ELSE
      GETSCREEN
      IF_PICTURE_IN (822,214, 1003,464, "5.bmp", -1, 90)
         MOVE($_return1, $_return2)
         WAITMS(100)
         MOVE(10,10)
      END_IF
   END_IF
   
   WAITMS(100)
END_IF
« Last Edit: April 30, 2017, 04:59:33 PM by Зануда »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: поиск картинки
« Reply #1 on: April 30, 2017, 05:04:38 PM »
Только так
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (822,214, 1003,464, "1.bmp", -1, 90)
   IF_PICTURE_IN (728,240, 1003,464, "2.bmp", -1, 90)
      IF_PICTURE_IN (688,240, 1003,464, "3.bmp", -1, 90)
         LCLICK($_return1, $_return2)
         MOVE(10,10)
         WAITMS(100)
         GETSCREEN
      END_IF
   ELSE
      IF_PICTURE_IN (728,240, 1003,464, "4.bmp", -1, 90)
         IF_PICTURE_IN (688,240, 1003,464, "3.bmp", -1, 90)
            LCLICK($_return1, $_return2)
            MOVE(10,10)
            WAITMS(100)
            GETSCREEN
         END_IF
      ELSE
         IF_PICTURE_IN (822,214, 1003,464, "5.bmp", -1, 90)
            MOVE($_return1, $_return2)
            WAITMS(100)
            MOVE(10,10)
         END_IF
      END_IF
   END_IF
   WAITMS(100)
END_IF

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: поиск картинки
« Reply #2 on: April 30, 2017, 05:09:24 PM »
 одновременно вторую и четвертую картинку тебе искать никто не будет. в любом случае с начала нужно проверить на наличие второй, если она отсутствует, то ищем четвертую. если же и четвертой нету, то тогда уже ищем пятую.
 при этом получается бессмысленный поиск. в любом случае при наличии 2-й и 4-й, мы ищем третью, и только при наличии трнетей делаем действие. а не проще ли сразу искать третью и уже при ее отсутствии искать пятую? но тебе виднее.
 не стоит делать скрин экрана перед каждым поиском если знаешь что картинка не изменится сама по себе (без каких либо действий). если же она меняется, то нужно выставлять хоть какието задержки перед гетскринами.
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (822,214, 1003,464, "1.bmp", -1, 90)
   IF_PICTURE_IN (728,240, 1003,464, "2.bmp", -1, 90)
      IF_PICTURE_IN (688,240, 1003,464, "3.bmp", -1, 90) //если нашли вторую
         LCLICK($_return1, $_return2)
         MOVE(10,10)
         WAITMS(100)
      END_IF
   else
      IF_PICTURE_IN(728,240, 1003,464, "4.bmp", -1, 90)
         IF_PICTURE_IN (688,240, 1003,464, "3.bmp", -1, 90) //если не нашли вторую но нашли четвертую
            LCLICK($_return1, $_return2)
            MOVE(10,10)
            WAITMS(100)
         END_IF
      ELSE
         IF_PICTURE_IN (822,214, 1003,464, "5.bmp", -1, 90)   //если не нашли не вторую не четвертую
            MOVE($_return1, $_return2)
            WAITMS(100)
            MOVE(10,10)
         END_IF
      END_IF
   END_IF     
   WAITMS(100)
END_IF
« Last Edit: April 30, 2017, 05:11:12 PM by dramster »

Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
Re: поиск картинки
« Reply #3 on: April 30, 2017, 08:23:15 PM »
спасибо за розяснение  думал может можно попроще как то ) и еще хотел спросить а как сделать допустим нашло картинку и после начало проверять нет ли случайно еще картинки там 1,2,3итд суть в том что их много чтоб не писать на каждую отдельно поиск

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: поиск картинки
« Reply #4 on: May 01, 2017, 09:23:31 PM »
Цикл FOR по номерам в имени.
Внутри поиск. Имя собирается с помощью STRCONCAT из строк и переменной цикла.
Profit.


Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
Re: поиск картинки
« Reply #5 on: May 02, 2017, 03:09:10 PM »
я такой что пока пример не покажете не пойму  :-\ и еще есть ворос я написал скрипт под свой экран что в какой области экрана искать чтоб поиск быстрей шел и вот наткнулься что можно как то сделать привязку к одной точке а от нее все считать тогда при том же маштабе игры кликер будет на любом мониторе играть  :D но как сделать эту привязку определения места какойто картинки и занесения кординат куда то там чтоб от нее все остальное считало. и еще кроме того как это сделать еще как можно по проще чтоб по новому все не писать с моего готового так сделать если у меня везде поиски по облястям экрана

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: поиск картинки
« Reply #6 on: May 02, 2017, 04:16:08 PM »
Вот тебе ещё один вариант. Если поменять местами имена у файлов 3.bmp и 4.bmp
Так логичнее, потому что твои 2 и 4 ищются на одном уровне, а 3 глубже на уровень.
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN(822,214, 1003,464, "1.bmp", -1, 90)
    FOR($i=2, $i < 4)
        IF_PICTURE_IN(728,240, 1003,464, STRCONCAT($i, ".bmp"), -1, 90)
            $i = 10
            IF_PICTURE_IN(688,240, 1003,464, "4.bmp", -1, 90) // бывшая 3.bmp
                LCLICK($_return1, $_return2)
                WAITMS(70)
            END_IF
        END_IF
        WAITMS(30)
    END_CYC
    IF($i < 10)
        IF_PICTURE_IN(822,214, 1003,464, "5.bmp", -1, 90)
            MOVE($_return1, $_return2)
            WAITMS(100)
        END_IF
    END_IF
    MOVE(10,10)
END_IF

А пример...
нашло картинку и после начало проверять нет ли случайно еще картинки там 1,2,3итд
Это как-то относится к преведущему коду? Потому как 1,2,3 там уже есть
Если просто пример, то
Ищем и кликаем ОДНУ, любую из 10 картинок:
Code: (clickermann) [Select]
GETSCREEN(0,0, 1000,1000)
FOR($i=1, $i < 11) // 10 картинок
    IF_PICTURE_IN(0,0, 1000,1000, STRCONCAT($i, ".bmp"), -1, 100)
        LCLICK($_return1, $_return2)
        WAITMS(200)
        $i = 100
    ELSE
        WAITMS(30)
    END_IF
END_CYC

Ищем и кликаем ВСЕ найденные картиноки из 10, когда клики влияют на остальные картинки:
Code: (clickermann) [Select]
GETSCREEN(0,0, 1000,1000)
FOR($i=1, $i < 11) // 10 картинок
    IF_PICTURE_IN(0,0, 1000,1000, STRCONCAT($i, ".bmp"), -1, 100)
        LCLICK($_return1, $_return2)
        WAITMS(200)
        GETSCREEN(0,0, 1000,1000)
    ELSE
        WAITMS(30)
    END_IF
END_CYC


Ищем и кликаем ВСЕ найденные картиноки из 10, когда клики НЕ влияют на остальные картинки:
Code: (clickermann) [Select]
GETSCREEN(0,0, 1000,1000)
FOR($i=1, $i < 11) // 10 картинок
    IF_PICTURE_IN(0,0, 1000,1000, STRCONCAT($i, ".bmp"), -1, 100)
        LCLICK($_return1, $_return2)
        WAITMS(200)
    ELSE
        WAITMS(30)
    END_IF
END_CYC
« Last Edit: May 02, 2017, 04:26:48 PM by Vint »


Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
Re: поиск картинки
« Reply #7 on: May 02, 2017, 05:25:50 PM »
спасибо  :) не то не относиться к предущему но картинки  тут должны быть названы от 1 до 10?
Code: (clickermann) [Select]
GETSCREEN(0,0, 1000,1000)
FOR($i=1, $i < 11) // 10 картинок
    IF_PICTURE_IN(0,0, 1000,1000, STRCONCAT($i, ".bmp"), -1, 100)
        LCLICK($_return1, $_return2)
        WAITMS(200)
        $i = 100
    ELSE
        WAITMS(30)
    END_IF
END_CYC
и этот вопрос все еще открытый
и еще есть ворос я написал скрипт под свой экран что в какой области экрана искать чтоб поиск быстрей шел и вот наткнулься что можно как то сделать привязку к одной точке а от нее все считать тогда при том же маштабе игры кликер будет на любом мониторе играть  :D но как сделать эту привязку определения места какойто картинки и занесения кординат куда то там чтоб от нее все остальное считало. и еще кроме того как это сделать еще как можно по проще чтоб по новому все не писать с моего готового так сделать если у меня везде поиски по облястям экрана

и еще один вопрос был уже давно гдето видел
FOR с рандомным количеством раз выполнения  но не помню как именно правильно( можно пример  :)только далеко не посылайте  ;D

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: поиск картинки
« Reply #8 on: May 02, 2017, 05:43:37 PM »
Переписывать координаты придётся. Неужели там скрипт на пару тройку тысяч строк?

Code: (clickermann) [Select]
$count = RND(5,10)  // 5-10 раз
FOR($i=0, $i < $count)
//
END_CYC


Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
Re: поиск картинки
« Reply #9 on: May 04, 2017, 09:30:22 PM »
Переписывать координаты придётся. Неужели там скрипт на пару тройку тысяч строк?

Code: (clickermann) [Select]
$count = RND(5,10)  // 5-10 раз
FOR($i=0, $i < $count)
//
END_CYC

спасибо за рандомик а вот нащет переписывать не не так много  :) но просто я нз как именно это делать как записывать кординаты если брать от какойто картинки отсчет так то я пишу то что кликер показывет кординату а как сделать так чтоб от картинки отсчитывало и писать если не затрудник можно обычный поиск картинки с отсчетом кординат от определеного символа со скрином ну что бы я понял что к чему и как это пишеться и как картинка выбираеться и как подсчитать это все дело много хочу ну уж извените  ;) буду благодарен за максимально подробное розяснения с примером  :)

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: поиск картинки
« Reply #10 on: May 05, 2017, 01:58:54 PM »
Как то так
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "Earth.bmp")
    $xx = $_return1
    $yy = $_return2
END_IF

GETSCREEN($xx-3,$yy+15, $xx+120,$yy+66)
IF_PIXEL_IN($xx-3,$yy+15, $xx+120,$yy+66, 16777215)
    // ...
END_IF



// Можно сразу переназначить координаты зон переменным
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "Earth.bmp")
    $mx1 = $_return1 - 3
    $my1 = $_return2 + 15
    $mx2 = $_return1 + 120
    $my2 = $_return2 + 66
END_IF

GETSCREEN($mx1,$my1, $mx2,$my2)
IF_PIXEL_IN($mx1,$my1, $mx2,$my2, 16777215)
    // ...
END_IF
« Last Edit: May 05, 2017, 02:07:07 PM by Vint »


Зануда

  • Активный участник
  • ***
  • Posts: 104
    • View Profile
Re: поиск картинки
« Reply #11 on: May 06, 2017, 11:04:41 PM »
вот спасибо большое тперь буду переделовать ) :D