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

Основной раздел => Общие вопросы => Topic started by: STD on February 10, 2017, 06:05:45 AM

Title: Помогите..
Post by: STD on February 10, 2017, 06:05:45 AM
Всем привет, начал пробовать писать кликера в браузерке.. вот не понять одного..
Как сделать так, что бы постоянно выполнялось сразу несколько действий одновременно, т.е надо что бы происходил клик в тоже время осуществлялся поиск картинок(3-6) и при поиске картинки естественно происходило условие.
Вот что начудил.
Code: (clickermann) [Select]
LCLICK(RND(1480,1653), RND(877,981))
WAIT(RND(14,25)

GETSCREEN
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"4.bmp")
   LCLICK(858,741)
END_IF

GETSCREEN
IF_PICTURE_IN(5,3, 1675,909, "3.bmp")
   LCLICK($_return1, $_return2)
   WAIT (5)
   GOTO (aaa)
END_IF

GETSCREEN
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"1.bmp")
   LCLICK(1563,929)
   WAIT(77)
END_IF

GETSCREEN
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"2.bmp")
   LCLICK(39,418)
   LCLICK(35,419)
   WAIT(1)
   LCLICK(238,419)
   WAIT(1)
   LCLICK(205, 501)
END_IF

aaa:               //
LCLICK(35,419)
WAIT(1)
LCLICK(238,419)
WAIT(1)
LCLICK(205, 501)
WAIT(1)
LCLICK(522,218)
HALT
Title: Re: Помогите..
Post by: Oraven on February 10, 2017, 08:47:44 AM
твой скрипт выполняется однократно из за HALT.
В кликере можно создавать потоки.

Code: (clickermann) [Select]
THREAD(t, 1) // код в потоке выполняется параллельно
   LCLICK(RND(1480,1653), RND(877,981))
   WAIT(RND(14,25)
END_THREAD

GETSCREEN
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"4.bmp")
   LCLICK(858,741)
   WAITMS(100)
END_IF

GETSCREEN
IF_PICTURE_IN(5,3, 1675,909, "3.bmp")
   LCLICK($_return1, $_return2)
   WAIT (5)
   GOTO (aaa)
END_IF

GETSCREEN
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"1.bmp")
   LCLICK(1563,929)
   WAIT(77)
END_IF

GETSCREEN
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"2.bmp")
   LCLICK(39,418)
   WAITMS(100)
   LCLICK(35,419)
   WAIT(1)
   LCLICK(238,419)
   WAIT(1)
   LCLICK(205, 501)
   WAITMS(100)
END_IF

aaa:               //
LCLICK(35,419)
WAIT(1)
LCLICK(238,419)
WAIT(1)
LCLICK(205, 501)
WAIT(1)
LCLICK(522,218)
HALT
Title: Re: Помогите..
Post by: STD on February 10, 2017, 03:35:03 PM
Это мне перед каждым действием надо выставить THEARD ?
что значит t, 1
Title: Re: Помогите..
Post by: open_78 on February 10, 2017, 04:17:30 PM
THREAD - Начало потока
t - имя потока (можно заменить на любое)
1 - начальное состояние, где 1 - означает рабочее, 0 - приостановленное
END_THREAD - Конец потока. Обязательно ПОСЛЕ действия.
Title: Re: Помогите..
Post by: Oraven on February 10, 2017, 04:27:09 PM
Это мне перед каждым действием надо выставить THEARD ?
что значит t, 1

Справка для кого написана?
Поток t выполняет код твоих рандомных кликов раз в 14-25 секунд.
При этом в основном потоке прокручиваются твои IF_PICTURE_IN которые эти 14-25 секунд никак не тормозят.
Title: Re: Помогите..
Post by: STD on February 10, 2017, 04:48:19 PM
thread(t, 1)
LCLICK(RND(1480,1653), RND(877,981))
WAIT(RND(10,17)
END_THREAD

thread(z, 1)
   GETSCREEN
IF_PICTURE_IN(0,0,$_xmax,$_ymax,4.bmp")
   LCLICK(858,741)
   END_IF
   

GETSCREEN
IF_PICTURE_IN(5,3, 1675,909, "1.bmp")
   LCLICK($_return1, $_return2)
   WAIT (5)
      GOTO (aaa)
   END_IF
   
   
   GETSCREEN
IF_PICTURE_IN(0,0,$_xmax,$_ymax,3.bmp")
   LCLICK(1563,929)
      WAIT(77)
   END_IF
   
    GETSCREEN
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"2.bmp")
   LCLICK(39,418)
   LCLICK(35,419)
   WAIT(1)
   LCLICK(238,419)
   WAIT(1)
   LCLICK(205, 501)
   END_IF
      END_THREAD
   
   
aaa:               //
LCLICK(35,419)
WAIT(1)
LCLICK(238,419)
WAIT(1)
LCLICK(205, 501)
WAIT(1)
LCLICK(522,218)


Походу что то не так понял.. Проблема идет в том, что процесс все ровно идет по очередности, и еще косяк у меня в том, что при включении, IF_PICTURE_IN(0,0,$_xmax,$_ymax,"2.bmp") щелкает по картинке, даже если ее нету.
Title: Re: Помогите..
Post by: STD on February 10, 2017, 04:50:32 PM
А нет вру, aaa: работает получается постоянно.. как сделать что бы оно работало только при goto(aaa)
Title: Re: Помогите..
Post by: open_78 on February 10, 2017, 04:56:04 PM
Попробуй так:
Code: (clickermann) [Select]
thread(t, 1)
   LCLICK(RND(1480,1653), RND(877,981))
   WAIT(RND(10,17)
END_THREAD

thread(z, 1)
   GETSCREEN
   IF_PICTURE_IN(0,0,$_xmax,$_ymax,"4.bmp")
      LCLICK(858,741)
   END_IF
   
   
   GETSCREEN
   IF_PICTURE_IN(5,3, 1675,909, "1.bmp")
      LCLICK($_return1, $_return2)
      WAIT (5)
      LCLICK(35,419)
      WAIT(1)
      LCLICK(238,419)
      WAIT(1)
      LCLICK(205, 501)
      WAIT(1)
      LCLICK(522,218)
   END_IF
   
   
   GETSCREEN
   IF_PICTURE_IN(0,0,$_xmax,$_ymax,"3.bmp")
      LCLICK(1563,929)
      WAIT(77)
   END_IF
   
   GETSCREEN
   IF_PICTURE_IN(0,0,$_xmax,$_ymax,"2.bmp")
      LCLICK(39,418)
      LCLICK(35,419)
      WAIT(1)
      LCLICK(238,419)
      WAIT(1)
      LCLICK(205, 501)
   END_IF
END_THREAD
Title: Re: Помогите..
Post by: Vint on February 10, 2017, 05:04:05 PM
Основной поток ему добавь, а то так и оставит.
Title: Re: Помогите..
Post by: open_78 on February 10, 2017, 05:07:18 PM
Это весь код?
Code: (clickermann) [Select]
thread(t, 1)   //Это выполняется раз в 10-17 секунд
   LCLICK(RND(1480,1653), RND(877,981))
   WAIT(RND(10,17)
END_THREAD

// А это крутится постоянно
GETSCREEN
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"4.bmp")
   LCLICK(858,741)
END_IF


GETSCREEN
IF_PICTURE_IN(5,3, 1675,909, "1.bmp")
   LCLICK($_return1, $_return2)
   WAIT (5)
   LCLICK(35,419)
   WAIT(1)
   LCLICK(238,419)
   WAIT(1)
   LCLICK(205, 501)
   WAIT(1)
   LCLICK(522,218)
END_IF


GETSCREEN
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"3.bmp")
   LCLICK(1563,929)
   WAIT(77)
END_IF

GETSCREEN
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"2.bmp")
   LCLICK(39,418)
   LCLICK(35,419)
   WAIT(1)
   LCLICK(238,419)
   WAIT(1)
   LCLICK(205, 501)
END_IF
Title: Re: Помогите..
Post by: STD on February 10, 2017, 05:20:33 PM
Попробуй так:
Code: (clickermann) [Select]
thread(t, 1)
   LCLICK(RND(1480,1653), RND(877,981))
   WAIT(RND(10,17)
END_THREAD

thread(z, 1)
   GETSCREEN
   IF_PICTURE_IN(0,0,$_xmax,$_ymax,"4.bmp")
      LCLICK(858,741)
   END_IF
   
   
   GETSCREEN
   IF_PICTURE_IN(5,3, 1675,909, "1.bmp")
      LCLICK($_return1, $_return2)
      WAIT (5)
      LCLICK(35,419)
      WAIT(1)
      LCLICK(238,419)
      WAIT(1)
      LCLICK(205, 501)
      WAIT(1)
      LCLICK(522,218)
   END_IF
   
   
   GETSCREEN
   IF_PICTURE_IN(0,0,$_xmax,$_ymax,"3.bmp")
      LCLICK(1563,929)
      WAIT(77)
   END_IF
   
   GETSCREEN
   IF_PICTURE_IN(0,0,$_xmax,$_ymax,"2.bmp")
      LCLICK(39,418)
      LCLICK(35,419)
      WAIT(1)
      LCLICK(238,419)
      WAIT(1)
      LCLICK(205, 501)
   END_IF
END_THREAD

Да, это помогло, спасибо.. Теперь догнал.
Title: Re: Помогите..
Post by: STD on February 10, 2017, 05:21:00 PM
Это весь код?
Code: (clickermann) [Select]
thread(t, 1)   //Это выполняется раз в 10-17 секунд
   LCLICK(RND(1480,1653), RND(877,981))
   WAIT(RND(10,17)
END_THREAD

// А это крутится постоянно
GETSCREEN
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"4.bmp")
   LCLICK(858,741)
END_IF


GETSCREEN
IF_PICTURE_IN(5,3, 1675,909, "1.bmp")
   LCLICK($_return1, $_return2)
   WAIT (5)
   LCLICK(35,419)
   WAIT(1)
   LCLICK(238,419)
   WAIT(1)
   LCLICK(205, 501)
   WAIT(1)
   LCLICK(522,218)
END_IF


GETSCREEN
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"3.bmp")
   LCLICK(1563,929)
   WAIT(77)
END_IF

GETSCREEN
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"2.bmp")
   LCLICK(39,418)
   LCLICK(35,419)
   WAIT(1)
   LCLICK(238,419)
   WAIT(1)
   LCLICK(205, 501)
END_IF

Пока что да
Title: Re: Помогите..
Post by: open_78 on February 10, 2017, 05:22:45 PM
Проверяй. Работает?
Зачем второй поток - thread(z, 1)
Если в конце нет команды HALT код будет повторяться циклично- это и есть поток.
Title: Re: Помогите..
Post by: STD on February 10, 2017, 05:25:16 PM
Да все внорме, кроме одного..
      thread(x, 1)
   GETSCREEN   // ждем 77c
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"3.bmp")
   LCLICK(1563,929)
      WAIT(77)
   END_IF
               END_THREAD

Он не остояв 77с начинает рандомно кликать опять, надо в этом скрипте остановить тот получается ?
Title: Re: Помогите..
Post by: open_78 on February 10, 2017, 05:27:28 PM
Если найдена 3.bmp остановить поток? Или поставить на паузу?
Тогда читай справку :)
Title: Re: Помогите..
Post by: STD on February 10, 2017, 05:30:09 PM
Проверяй. Работает?
Зачем второй поток - thread(z, 1)
Если в конце нет команды HALT код будет повторяться циклично- это и есть поток.

Решил проблемку простым способом, x, 1 удалил, ибо пока что без него можно..
Вопрос другой, в привязанном окне это будет  работать? Лупой смотрел через гуугл и мазилу.. там не видно ничего(черный экран)
Браузерная flash
Title: Re: Помогите..
Post by: open_78 on February 10, 2017, 05:33:12 PM
Да все внорме, кроме одного..
      thread(x, 1)
   GETSCREEN   // ждем 77c
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"3.bmp")
   LCLICK(1563,929)
      WAIT(77)
   END_IF
               END_THREAD

Он не остояв 77с начинает рандомно кликать опять, надо в этом скрипте остановить тот получается ?

Откуда взялся thread(x, 1)???
Title: Re: Помогите..
Post by: open_78 on February 10, 2017, 05:38:01 PM
В соседней теме за ПРИВЯЗКУ убивать начинают. :'(
Title: Re: Помогите..
Post by: STD on February 10, 2017, 05:54:19 PM
В соседней теме за ПРИВЯЗКУ убивать начинают. :'(

 ;D Меня убивать не надо.. Попробую другие браузеры, не поможет буду без оставлять тыкера ток когда не нужен пк..
Title: Re: Помогите..
Post by: open_78 on February 10, 2017, 05:55:10 PM
У меня в Хроме WIN7 лупа все видит, но я привязкой не пользуюсь.
Может аппаратное ускорение в настройках отключить нужно. ХЗ.
Ищи на форуме методы.
Title: Re: Помогите..
Post by: STD on February 10, 2017, 06:01:08 PM
Кстати вот в чем прикол, когда у меня в скрипте только рандом нажатие в области, привязка работает, но стоит в код добавить поиск картинки и все..)) ни один браузер не поможет, откл ап\ускр тоже)
Title: Re: Помогите..
Post by: Vint on February 10, 2017, 06:03:48 PM
У флэша отключай аппаратное ускорение и всё увидит. ПКМ по флэшу там разберёшься.
Title: Re: Помогите..
Post by: open_78 on February 10, 2017, 06:12:21 PM
У флэша отключай аппаратное ускорение и всё увидит. ПКМ по флэшу там разберёшься.
Проверил. У меня включено, и все равно видит.
Title: Re: Помогите..
Post by: Vint on February 10, 2017, 07:21:13 PM
В хромовском флеше или внешнем?
Может включено, но не работает.
Title: Re: Помогите..
Post by: open_78 on February 10, 2017, 07:24:21 PM
В хромовском флеше или внешнем?
Может включено, но не работает.
В Хромовском.
Почему не работает? Какова причина?
Title: Re: Помогите..
Post by: STD on February 10, 2017, 11:17:44 PM
У флэша отключай аппаратное ускорение и всё увидит. ПКМ по флэшу там разберёшься.

Win10, Chrome, Mozilla, EX выключал аппаратное ускорение, при привязанном окне просмотром лупы, черный экран.
Title: Re: Помогите..
Post by: Vint on February 11, 2017, 05:11:12 PM
win10 это отдельная тема. С привязкой там жопа ещё круглее, как я понял.
Title: Re: Помогите..
Post by: STD on February 12, 2017, 09:38:35 PM
Такой вопрос ребя, когда ставишь кол повторов, что будет повторяться именно ? если в скрипте есть действия при появлении картинок
Title: Re: Помогите..
Post by: STD on February 12, 2017, 09:45:32 PM
Такой вопрос ребя, когда ставишь кол повторов, что будет повторяться именно ? если в скрипте есть действия при появлении картинок

thread(t, 1)     // рандом клик
   LCLICK(RND(1480,1653), RND(877,981))
   WAIT(RND(10,17)
END_THREAD

       thread(z, 1)
     GETSCREEN   //
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"1.bmp")
   LCLICK(39,418)
   WAIT(1)
   LCLICK(35,419)
   WAIT(1)
   LCLICK(238,419)
   WAIT(1)
   LCLICK(205, 501)
   END_IF

    FOR ($i, $i<30)
    GETSCREEN
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"2.bmp")
   LCLICK($_return1, $_return2)
   WAIT(5)
    LCLICK(858,741)
      WAIT (3)
      LCLICK(35,419)
      WAIT(1)
      LCLICK(238,419)
      WAIT(1)
      LCLICK(205, 501)
      WAIT(1)
      LCLICK(522,218)
   END_IF
   

GETSCREEN          //
IF_PICTURE_IN(5,3, 1675,909, "3.bmp")
   LCLICK($_return1, $_return2)
   WAIT (5)
      LCLICK(35,419)
      WAIT(1)
      LCLICK(238,419)
      WAIT(1)
      LCLICK(205, 501)
      WAIT(1)
      LCLICK(522,218)
   END_IF
         END_THREAD


FOR ($i, $i<30) - это что бы скрипт ниже выполнялся 30 раз, верно ?
Title: Re: Помогите..
Post by: open_78 on February 12, 2017, 09:50:57 PM
Во первых
Code: (clickermann) [Select]
FOR ($i=0, $i<30)
И это начало цикла
Code: (clickermann) [Select]
END_CYCЭто конец цикла
Всё что между этих строк повторится 30 раз.
Title: Re: Помогите..
Post by: STD on February 12, 2017, 09:52:43 PM
Во первых
Code: (clickermann) [Select]
FOR ($i=0, $i<30)
И это начало цикла
Code: (clickermann) [Select]
END_CYCЭто конец цикла
Всё что между этих строк повторится 30 раз.

Спасибо большое =)
Title: Re: Помогите..
Post by: open_78 on February 12, 2017, 09:54:23 PM
Во первых
Code: (clickermann) [Select]
FOR ($i=0, $i<30)
И это начало цикла
Code: (clickermann) [Select]
END_CYCЭто конец цикла
Всё что между этих строк повторится 30 раз.

Спасибо большое =)
Читайте справку.
Title: Re: Помогите..
Post by: STD on February 13, 2017, 09:59:39 PM
Можно вопрос почему кликер долго выполняет действия? Задержки стоят максимум WAIT (1)
Он долго ищет картинку..Картинка есть, он на нее жмет только через 1-2-3 минуты..
Title: Re: Помогите..
Post by: open_78 on February 13, 2017, 10:06:41 PM
Можно вопрос почему кликер долго выполняет действия? Задержки стоят максимум WAIT (1)
Он долго ищет картинку..Картинка есть, он на нее жмет только через 1-2-3 минуты..
Может опять забыл END_... поставить. Не видя общей картины трудно сказать. Если скрипт крутится по кругу, то возможно на первом проходе не находит картинку.
Title: Re: Помогите..
Post by: i0 on February 13, 2017, 10:13:26 PM
Quote
Code: (clickermann) [Select]
WAIT(RND(10,17)
или скобочку где-то закрыть.
выкладывай полный текст в тег code=clickermann и укажи размер в пикселях образцов для поиска, может они огромные
угу
Title: Re: Помогите..
Post by: open_78 on February 13, 2017, 10:25:01 PM
Чувствую придется
Code: (clickermann) [Select]
WHILEразжевывать.
Title: Re: Помогите..
Post by: STD on February 13, 2017, 11:09:03 PM
Quote
Code: (clickermann) [Select]
WAIT(RND(10,17)
или скобочку где-то закрыть.
выкладывай полный текст в тег code=clickermann и укажи размер в пикселях образцов для поиска, может они огромные
угу

Картинки 36х25 пикс

Код:

thread(t, 1)     // 
   LCLICK(RND(1480,1653), RND(877,981))
   WAIT(RND(10,17)
END_THREAD

  thread(S, 1)                           
   GETSCREEN   //
   IF_PICTURE_IN(0,0,$_xmax,$_ymax,"4.bmp")
   LCLICK(35,419)
   WAIT(1)
   LCLICK(238,419)
   WAIT(1)
   LCLICK(205, 501)
   END_IF
  END_THREAD



   thread(z, 1)
   GETSCREEN   // 
   IF_PICTURE_IN(0,0,$_xmax,$_ymax,"3.bmp")
   LCLICK($_return1, $_return2)
   END_IF

FOR ($i=0,$i<30)
   
    GETSCREEN
   IF_PICTURE_IN(0,0,$_xmax,$_ymax,"2.bmp")
   LCLICK($_return1, $_return2)
   WAIT(5)
    LCLICK(858,741)
      WAIT (3)
      LCLICK(35,419)
      WAIT(1)
      LCLICK(238,419)
      WAIT(1)
      LCLICK(205, 501)
      WAIT(1)
      LCLICK(522,218)
   END_IF
END_CYC

   GETSCREEN          // 
   IF_PICTURE_IN(5,3, 1675,909, "1.bmp")
   LCLICK($_return1, $_return2)
   WAIT (5)
      LCLICK(35,419)
      WAIT(1)
      LCLICK(238,419)
      WAIT(1)
      LCLICK(205, 501)
      WAIT(1)
      LCLICK(522,218)
   END_IF
END_THREAD
Title: Re: Помогите..
Post by: dramster on February 13, 2017, 11:10:07 PM
Чувствую придется
Code: (clickermann) [Select]
WHILEразжевывать.
нефига, ставлю на то, что заготовки картинок мегаогромные, отсюда и столь длительный поиск.  :D

видимо не угадал
Quote
Картинки 36х25 пикс
хотя всеравно великовата, но 2-4 мин на поиск?

следует указать область сканирования во всех IF_PICTURE_IN, и желательно в GETSCREEN .

если это весь код, и ничего больше нет, то поставь wait(1) в самой первой строе, в самом верху, вне потока, и почуешь разницу.
Title: Re: Помогите..
Post by: STD on February 13, 2017, 11:17:01 PM
Ага.. Где косяк не понимаю.. и еще, при нажатии клавиш остановить скрипт, он останавливается так же с задержкой в минуту..
Title: Re: Помогите..
Post by: dramster on February 13, 2017, 11:19:17 PM
и всеже, постарайся сделать заготовки поменьше, 10х10 или 15х15, этого всегда достаточно. и воспользуйся советами выше.

особенно
если это весь код, и ничего больше нет, то поставь wait(1) в самой первой строе, в самом верху, вне потока, и почуешь разницу.

Code: (clickermann) [Select]
wait(1)

thread(t, 1)     //
   LCLICK(RND(1480,1653), RND(877,981))
   //...................
   //...................
   //...................
Title: Re: Помогите..
Post by: STD on February 13, 2017, 11:22:58 PM
и всеже, постарайся сделать заготовки поменьше, 10х10 или 15х15, этого всегда достаточно. и воспользуйся советами выше.

особенно
если это весь код, и ничего больше нет, то поставь wait(1) в самой первой строе, в самом верху, вне потока, и почуешь разницу.


getscreen
 
scanpicture($var, 0,0, 1366,768, "4.bmp")
 
while (arrsize($var) > 0)
  $y = arrpop($var)
  $x = arrpop($var)
  lclick($_return1, $_return2)
end_cyc

При поиске картинки он будет клацать по ней ?
Title: Re: Помогите..
Post by: dramster on February 13, 2017, 11:25:45 PM
будет, но scanpicture предназначен чтобы найти все картинки, которые есть на экране. если искомая картинка на экране может появиться в единственном экземпляре, то и scanpicture тебе не понадобится.
Title: Re: Помогите..
Post by: STD on February 13, 2017, 11:27:25 PM
будет, но scanpicture предназначен чтобы найти все картинки, которые есть на экране. если искомая картинка на экране может появиться в единственном экземпляре, то и scanpicture тебе не понадобится.

Неа, не клацает..
Title: Re: Помогите..
Post by: dramster on February 13, 2017, 11:29:41 PM
верный код из шаблона
Code: (clickermann) [Select]
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "picture.bmp", -1, 100)

$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   LCLICK($X, $Y)   // Клик
   WAITMS(100)
END_CYC
UNDEFINE($ARR_SCAN)

ну или может быть и твой
Code: (clickermann) [Select]
getscreen

scanpicture($var, 0,0, 1366,768, "4.bmp")

while (arrsize($var) > 0)
   $y = arrpop($var)
   $x = arrpop($var)
   lclick($x, $y )// тут твоя ошибка была
   waitms(200)
end_cyc
Title: Re: Помогите..
Post by: STD on February 13, 2017, 11:35:04 PM
верный код из шаблона
Code: (clickermann) [Select]
GETSCREEN
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "picture.bmp", -1, 100)

$ARR_NUM = 0
WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
   $X = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   $Y = $ARR_SCAN [$ARR_NUM]
   INC($ARR_NUM,1)
   LCLICK($X, $Y)   // Клик
   WAITMS(100)
END_CYC
UNDEFINE($ARR_SCAN)

ну или может быть и твой
Code: (clickermann) [Select]
getscreen

scanpicture($var, 0,0, 1366,768, "4.bmp")

while (arrsize($var) > 0)
   $y = arrpop($var)
   $x = arrpop($var)
   lclick($x, $y )// тут твоя ошибка была
   waitms(200)
end_cyc

Да, работает, спасибо!
Такой вопрос, на другие картинки, такой же код писать ? включая  getscreen

scanpicture
Title: Re: Помогите..
Post by: dramster on February 13, 2017, 11:37:48 PM
 :-\ :-\ :-\ нууууу, да. ... так у тебя много экземпляров картинок на экране? если да, то SCANPICTURE естественно тебе поможет, если же нет, то пользуйся темже чем и ранее, IF_PICTURE_IN

только не забывай, в каждом потоке не изолированы переменные, такчто в каждом потоке нужно воодить свои названия переменных и массивов - $var, $x, $y ... . в каждом потоке думай свои названия этих переменных !!!!!
Title: Re: Помогите..
Post by: i0 on February 13, 2017, 11:42:05 PM
STD, ты понимаешь что каждый твой THREAD - это задача, выполняемая параллельно с другими твоими THREAD?
разбираем по частям что написалось (какое-то странное дитя франкенштейна, всё насквозь поточное)
Quote
Code: (clickermann) [Select]
thread(t, 1)     //
   LCLICK(RND(1480,1653), RND(877,981))
   WAIT(RND(10,17)
END_THREAD
этот поток постоянно кликает произвольную точку в области x1480 y877 - x1653 y981 с паузой между кликами от 10 до 17 секунд.
только скобку у WAIT закрой

Quote
Code: (clickermann) [Select]
thread(S, 1)
   GETSCREEN   //
   IF_PICTURE_IN(0,0,$_xmax,$_ymax,"4.bmp")
      LCLICK(35,419)
      WAIT(1)
      LCLICK(238,419)
      WAIT(1)
      LCLICK(205, 501)
   END_IF
END_THREAD
этот поток постоянно берёт весь экран в буфер и ищет в нём 4.bmp
если нашёл, делает два клика с паузой секунда
если не нашёл, то мгновенно без паузы повторяет свою работу
здесь нужно для разгрузки добавить паузу в случае если картинка не найдена

to be continued
ща третий посмотрю...

стоп. вы уже начали другой скрипт писать, значит не буду досматривать потоки)
Title: Re: Помогите..
Post by: STD on February 13, 2017, 11:45:39 PM
Я походу ваще дико накосячил.. но работает : о

Исходный код.


    //
   LCLICK(RND(1480,1653), RND(877,981))
   WAIT(RND(10,17)

getscreen
 
scanpicture($var, 0,0, 1366,768, "1.bmp")
 
while (arrsize($var) > 0)
   $y = arrpop($var)
   $x = arrpop($var)
   lclick($x, $y )
   waitms(200)
    lclick(258, 421)
    waitms(500)
    lclick(232, 511)
    waitms(200)
end_cyc


    getscreen
 
scanpicture($var, 0,0, 1366,768, "2.bmp")
 
while (arrsize($var) > 0)
   $y = arrpop($var)
   $x = arrpop($var)
   lclick($x, $y )
   waitms(200)
   end_cyc
   
   
                         getscreen
 
scanpicture($var, 0,0, 1366,768, "3.bmp")
 
while (arrsize($var) > 0)
   $y = arrpop($var)
   $x = arrpop($var)
   lclick($x, $y )
   waitms(200)
   end_cyc
   
   
   
   getscreen
 
scanpicture($var, 0,0, 1366,768, "4.bmp")
 
while (arrsize($var) > 0)
   $y = arrpop($var)
   $x = arrpop($var)
   lclick($x, $y )
   waitms(1500)
    LCLICK(858,741)
    waitms(200)
   end_cyc
Title: Re: Помогите..
Post by: dramster on February 13, 2017, 11:54:29 PM
так тебе потоки означально не требовались  :D, че ты в них полез?

а i0 сразу как подметил  :D , я даже не обратил внимание про те случаи если картинка не найдется  :D , просто потоками пользовался всего пару раз  :D.
а в WAIT(RND(10,17) так и не поставил скобку  >:(
 а вообще, визуально последний код верный, не помешали бы небольшие задержки перед каждым getscreen, но и без этого норм.
Title: Re: Помогите..
Post by: STD on February 14, 2017, 12:01:59 AM
так тебе потоки означально не требовались  :D, че ты в них полез?

а i0 сразу как подметил  :D , я даже не обратил внимание про те случаи если картинка не найдется  :D , просто потоками пользовался всего пару раз  :D.
а в WAIT(RND(10,17) так и не поставил скобку  >:(
 а вообще, визуально последний код верный, не помешали бы небольшие задержки перед каждым getscreen, но и без этого норм.

Поясни как мне задержку поставить между поиском картинок, пжл-ста..

if_time(00, 03, 00)
getscreen
end_time
scanpicture($var, 0,0, 1673,1005, "3.bmp")
 
while (arrsize($var) > 0)
   $y = arrpop($var)
   $x = arrpop($var)
   lclick($x, $y )
    waitms(200)
end_cyc

Это задержка в 3 минуты, верно ?
Title: Re: Помогите..
Post by: dramster on February 14, 2017, 12:06:05 AM
WAIT (delay) - приостанавливает выполнение сценария на неск. секунд
WAITMS (delay) - приостанавливает выполнение сценария на неск. миллисекунд
из справки


ты же между кликами задержку ставишь? так и в других нужных местах также можешь поставить.

3 минуты это будет wait(180), тоесть 180 сек.


 :-\ :-\ :-\ откуда ты вот это придумал???????????
Quote
if_time(00, 03, 00)
getscreen
end_time
Title: Re: Помогите..
Post by: STD on February 14, 2017, 12:10:06 AM
WAIT (delay) - приостанавливает выполнение сценария на неск. секунд
WAITMS (delay) - приостанавливает выполнение сценария на неск. миллисекунд
из справки


ты же между кликами задержку ставишь? так и в других нужных местах также можешь поставить.

3 минуты это будет wait(180), тоесть 180 сек.


 :-\ :-\ :-\ откуда ты вот это придумал???????????
Quote
if_time(00, 03, 00)
getscreen
end_time


thread(t, 1)     // рандом клик
   LCLICK(RND(1480,1653), RND(877,981))
   WAIT(RND(10,17))
END_THREAD

getscreen
 
scanpicture($var, 0,0, 1673,1005, "1.bmp")
 
while (arrsize($var) > 0)
   $y = arrpop($var)
   $x = arrpop($var)
   lclick($x, $y )
   waitms(200)
    lclick(258, 421)
    waitms(500)
    lclick(232, 511)
    waitms(200)
end_cyc

wait(180)

    getscreen
 
scanpicture($var, 0,0, 1673,1005, "2.bmp")
 
while (arrsize($var) > 0)
   $y = arrpop($var)
   $x = arrpop($var)
   lclick($x, $y )
   waitms(200)
   end_cyc
   
wait(180)
   
                         getscreen
 
scanpicture($var, 0,0, 1673,1005, "3.bmp")
 
while (arrsize($var) > 0)
   $y = arrpop($var)
   $x = arrpop($var)
   lclick($x, $y )
   waitms(200)
   end_cyc
   
wait(180)   
   
   getscreen
 
scanpicture($var, 0,0, 1673,1005, "4.bmp")
 
while (arrsize($var) > 0)
   $y = arrpop($var)
   $x = arrpop($var)
   lclick($x, $y )
   waitms(1500)
    LCLICK(858,741)
    waitms(200)
   end_cyc

3 минуты, он ищет первую картинку, 3 минуты он ищет вторую, и через 9 минут получается будет искать третью ?
Или каждую через 3 минуты..
Title: Re: Помогите..
Post by: dramster on February 14, 2017, 12:18:21 AM
так ты определись, ты ищешь картинки, или картинку, у тебя на экране 1.bmp одна, или их много? ты бездумно перебираешь варианты.

Code: (clickermann) [Select]
thread(t, 1)     // рандом клик     , не трогаем его
   LCLICK(RND(1480,1653), RND(877,981))
   WAIT(RND(10,17))
END_THREAD



getscreen

scanpicture($var, 0,0, 1673,1005, "1.bmp")     //сразу начинаем искать картинкИ  1.bmp

while (arrsize($var) > 0)              //и кликаем по всем найденым картинкАМ  1.bmp
   $y = arrpop($var)
   $x = arrpop($var)
   lclick($x, $y )
   waitms(200)
   lclick(258, 421)
   waitms(500)
   lclick(232, 511)
   waitms(200)
end_cyc

wait(180)         //после того как понажимали по этим 1.bmp, ждем 3 минуты

getscreen

scanpicture($var, 0,0, 1673,1005, "2.bmp")   //после трех минут ожидания, начинаем искать картинкИ  2.bmp

while (arrsize($var) > 0)
   $y = arrpop($var)
   $x = arrpop($var)
   lclick($x, $y )                   //жмякаим по ним
   waitms(200)
end_cyc

wait(180)         //после того как понажимали по этим 2.bmp, ждем 3 минуты

getscreen

scanpicture($var, 0,0, 1673,1005, "3.bmp")  //после трех минут ожидания, начинаем искать картинкИ 3.bmp

while (arrsize($var) > 0)
   $y = arrpop($var)
   $x = arrpop($var)
   lclick($x, $y )           //жмякаим по ним
   waitms(200)
end_cyc

wait(180)            //после того как понажимали по этим 3.bmp, ждем 3 минуты

getscreen

scanpicture($var, 0,0, 1673,1005, "4.bmp") //после трех минут ожидания, начинаем искать картинкИ 4.bmp

while (arrsize($var) > 0)
   $y = arrpop($var)
   $x = arrpop($var)
   lclick($x, $y )      //жмякаим по ним
   waitms(1500)
   LCLICK(858,741)
   waitms(200)
end_cyc
//после того, как понажимали по картинкам  4.bmp, СРАЗУЖЕ возвращаемся в начало скрипта
//и начинаем искать картинки  1.bmp
Title: Re: Помогите..
Post by: STD on February 14, 2017, 12:20:02 AM
так ты определись, ты ищешь картинки, или картинку, у тебя на экране 1.bmp одна, или их много? ты бездумно перебираешь варианты.

Code: (clickermann) [Select]
thread(t, 1)     // рандом клик     , не трогаем его
   LCLICK(RND(1480,1653), RND(877,981))
   WAIT(RND(10,17))
END_THREAD



getscreen

scanpicture($var, 0,0, 1673,1005, "1.bmp")     //сразу начинаем искать картинкИ  1.bmp

while (arrsize($var) > 0)              //и кликаем по всем найденым картинкАМ  1.bmp
   $y = arrpop($var)
   $x = arrpop($var)
   lclick($x, $y )
   waitms(200)
   lclick(258, 421)
   waitms(500)
   lclick(232, 511)
   waitms(200)
end_cyc

wait(180)         //после того как понажимали по этим 1.bmp, ждем 3 минуты

getscreen

scanpicture($var, 0,0, 1673,1005, "2.bmp")   //после трех минут ожидания, начинаем искать картинкИ  2.bmp

while (arrsize($var) > 0)
   $y = arrpop($var)
   $x = arrpop($var)
   lclick($x, $y )                   //жмякаим по ним
   waitms(200)
end_cyc

wait(180)         //после того как понажимали по этим 2.bmp, ждем 3 минуты

getscreen

scanpicture($var, 0,0, 1673,1005, "3.bmp")  //после трех минут ожидания, начинаем искать картинкИ 3.bmp

while (arrsize($var) > 0)
   $y = arrpop($var)
   $x = arrpop($var)
   lclick($x, $y )           //жмякаим по ним
   waitms(200)
end_cyc

wait(180)            //после того как понажимали по этим 3.bmp, ждем 3 минуты

getscreen

scanpicture($var, 0,0, 1673,1005, "4.bmp") //после трех минут ожидания, начинаем искать картинкИ 4.bmp

while (arrsize($var) > 0)
   $y = arrpop($var)
   $x = arrpop($var)
   lclick($x, $y )      //жмякаим по ним
   waitms(1500)
   LCLICK(858,741)
   waitms(200)
end_cyc
//после того, как понажимали по картинкам  4.bmp, СРАЗУЖЕ возвращаемся в начало скрипта
//и начинаем искать картинки  1.bmp

Картинки, их 4, каждая может появится в любой момент, одновременно всех не может быть.
Title: Re: Помогите..
Post by: dramster on February 14, 2017, 12:30:10 AM
 :-\ :-\ :-\ :-\ :-\
вот тебе готовый скрипт, попробуй

он будет тупо мониторить на появление одной из четырех картинок, и если найдет какуюто из них, кликнет по ней, и по необходимости еще сделаейт пару нужных кликов.
плюс с этим, рандомный клик по области каждые 10-17сек, работают в отдельном потоке.
Code: (clickermann) [Select]
thread(t, 1)
   LCLICK(RND(1480,1653), RND(877,981))
   WAIT(RND(10,17))
END_THREAD


waitms(100)

GETSCREEN
IF_PICTURE_IN (0,0, 1673,1005, "1.bmp")
   LCLICK($_return1, $_return2)
   waitms(200)
   lclick(258, 421)
   waitms(500)
   lclick(232, 511)
END_IF

waitms(100)

GETSCREEN
IF_PICTURE_IN (0,0, 1673,1005, "2.bmp")
   LCLICK($_return1, $_return2)
END_IF

waitms(100)

GETSCREEN
IF_PICTURE_IN (0,0, 1673,1005, "3.bmp")
   LCLICK($_return1, $_return2)
END_IF

waitms(100)

GETSCREEN
IF_PICTURE_IN (0,0, 1673,1005, "4.bmp")
   LCLICK($_return1, $_return2)
   waitms(1500)
   LCLICK(858,741)
END_IF
Title: Re: Помогите..
Post by: open_78 on February 14, 2017, 08:20:10 AM
Странно трансформируется скрипт. Раньше было FOR ($i=0,$i<30) на 2.bmp. Теперь уже не надо. Требую четкого описания поставленной задачи. Пошагово.
В какой последовательности появляются картинки? Точно появляются, или "может да а может нет"? Может ли быть одновременно 2-3 картинки, или только одна? Я вот думаю что всё очень просто, а мы кнопки зря мусолим.
Title: Re: Помогите..
Post by: Vint on February 14, 2017, 11:55:05 AM
Картинки, их 4, каждая может появится в любой момент, одновременно всех не может быть.
Рыбу ловишь?
Title: Re: Помогите..
Post by: open_78 on February 14, 2017, 09:20:48 PM
Вот еще вариант. Тут как я "хотел" есть - WHILE, и как ты хотел есть - FOR.
Пробуй.
Code: (clickermann) [Select]
THREAD(t, 1)
   LCLICK(RND(1480,1653), RND(877,981))
   WAIT(RND(10,17))
END_THREAD

$check=0
WHILE($check=0)
   GETSCREEN
   FOR($a=1,$a<5)
      IF_PICTURE_IN (0,0, 1673,1005,STRCONCAT($a,".bmp"))
         LCLICK($_return1,$_return2)
         WAITMS(100)
         $check=1
         IF($a=1)
            LCLICK(258, 421)
            WAITMS(500)
            LCLICK(232, 511)
            WAITMS(200)
         END_IF
         IF($a=4)
            WAITMS(1400)
            LCLICK(858,741)
            WAITMS(200)
         END_IF
         $a=9999
      END_IF
   END_CYC
END_CYC