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

Основной раздел => Общие вопросы => Topic started by: Natusik on January 26, 2016, 10:33:23 AM

Title: Помогите подредактировать скрипт с условием поиска картинок
Post by: Natusik on January 26, 2016, 10:33:23 AM
Имеется скрипт,  как в него добавить условие- поиск "картинка5", и как только он нашел картинка5, то искал картинку "домой". Наверно поток надо добавить, как? "картинка5" может появиться в любой момент.

Code: (clickermann) [Select]
LOGWRITE ("Ищем!")
WAIT(15)

первая А:
FOR($a=0,$a<3)
   WAIT(1)
   GETSCREEN
   IF_PICTURE_IN (0,0,$_xmax,$_ymax, "картинка1.bmp", 65280) //с
      LOGWRITE ("нашли картинка1")
      LCLICK($_return1, $_return2)
      WAIT(RND(3, 4)
   ELSE
      LOGWRITE ("не нашли картинка1")
      WAIT(2)
      GOTO(домой)
   END_IF
   WAITMS(100)
   MOVE(1000,300)
   LCLICK(1000,300)
   WAITMS(100)
END_CYC

вторая:
WAIT(1)
GETSCREEN
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "картинка2.bmp", 65280) //м
   LOGWRITE ("нашли картинка2")
   LCLICK($_return1, $_return2)
   WAITVS(RND(50, 100)
ELSE
   LOGWRITE ("не нашли картинка2")
END_IF
WAITMS(100)
MOVE(1000,300)
LCLICK(1000,300)
WAITMS(100)

первая Б:
FOR($a=0,$a<2)
    WAIT(1)
   GETSCREEN
   IF_PICTURE_IN (0,0,$_xmax,$_ymax, "картинка1.bmp", 65280) //с
      LOGWRITE ("нашли картинка1")
      LCLICK($_return1, $_return2)
      WAIT(RND(3, 4)
   ELSE
      LOGWRITE ("не нашли картинка1")
      GOTO(домой)
   END_IF
   WAITMS(100)
   MOVE(1000,300)
   LCLICK(1000,300)
   WAITMS(100)
END_CYC

третья:
WAIT(1)
GETSCREEN
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "картинка3.bmp", 65280) //ц
   LOGWRITE ("нашли картинка3")
   LCLICK($_return1, $_return2)
   WAIT(RND(2, 3)
ELSE
   LOGWRITE ("не нашли картинка3")
   END_IF
WAITMS(100)
MOVE(1000,300)
LCLICK(1000,300)
WAITMS(100)

четвертая:
WAIT(1)
GETSCREEN
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "картинка4.bmp", 65280) //р
   LOGWRITE ("нашли картинка4")
   LCLICK($_return1, $_return2)
   WAIT(RND(3, 4)
   GOTO(первая А)
ELSE
   LOGWRITE ("не нашли картинка4")
END_IF
WAITMS(100)
MOVE(1000,300)
LCLICK(1000,300)
WAITMS(100)

домой:
GETSCREEN
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "домой.bmp", 65280)
   LOGWRITE ("нашли домой")
   LCLICK($_return1, $_return2)
   GOTO(ПОИСК)
ELSE
   LOGWRITE ("не нашли домой")
END_IF
Title: Re: Помогите подредактировать скрипт с условием поиска картинок
Post by: Луций on January 26, 2016, 10:58:40 AM
1 ты можешь вставить поиск и клик 5й картинки (а в нем еще один поиск+клик) перед каждым обычным поиском картинок по номеру, это можно сделать легко и красиво с помощью сабов

2 можно сделать потоком, но сомнительно в скрипте из 5 операторов

3 выходя из операторов и циклов с помощью гото ты делаешь утечки памяти и скрипт со временем крашится
Title: Re: Помогите подредактировать скрипт с условием поиска картинок
Post by: Natusik on January 26, 2016, 11:01:14 AM
Хорошо. С помощью сабов :-) не умею делать :(
Title: Re: Помогите подредактировать скрипт с условием поиска картинок
Post by: Луций on January 26, 2016, 11:10:49 AM
примерно вот так (возможно я лишнего нарезал, но главное чтоб суть ты уловил)

Code: (clickermann) [Select]
LOGWRITE ("Ищем!")
WAIT(15)

sub(pic,$pic)
IF_PICTURE_IN (0,0,$_xmax,$_ymax, $pic, 65280) //с
      LOGWRITE ("нашли ",$pic)
      LCLICK($_return1, $_return2)
      WAIT(RND(1, 3)
   ELSE
      LOGWRITE ("не нашли ",$pic)
      WAIT(2)
      GOTO(домой)
   END_IF
   WAITMS(100)
   LCLICK(1000,300)
   WAITMS(100)
   WAIT(1)
end_sub

FOR($a=0,$a<3) //первая А:
   pic("картинка1.bmp")
END_CYC

pic("картинка2.bmp") //вторая:

FOR($a=0,$a<2)
   pic("картинка1.bmp") //с первая Б:
END_CYC

pic("картинка3.bmp") //ц третья:
 
pic("картинка4.bmp") //р четвертая:

домой:
pic("домой.bmp")
LOGWRITE ("не нашли домой")
Title: Re: Помогите подредактировать скрипт с условием поиска картинок
Post by: Natusik on January 26, 2016, 11:16:01 AM
Спасибо, буду разбираться.