Автокликер Clickermann :: Форум
		Основной раздел => Использование => Topic started by: egnostic on January 04, 2017, 06:54:51 PM
		
			
			- 
				Всю голову себе нагрел как сделать не получается, прошу помочь вот часть кода
 
 getscreen
 if_pixel_in(79,252,1581,728,1048530)
 pxlcount(79,252,1581,728,1048530)<1
 mouse_move(849,215)
 lclick(849,215)
 waitms(100)
 pxlcount(79,252,1581,728,1048530)<1
 mouse_move(849,235)
 lclick(849,235)
 waitms(100)
 pxlcount(79,252,1581,728,1048530)<1
 mouse_move(849,220)
 lclick(849,220)
 waitms(100)
 pxlcount(79,252,1581,728,1048530)<1
 mouse_move(849,205)
 lclick(849,205)
 waitms(100)
 end_if
 
 
 нужно чтобы если в области не нашел нужный пиксель то перещелкивал страници в его поиске, а как найдет выполнялась подпрограмма до пока имеются пиксели нужного цвета и так циклично.
 оч прошу помогите, все испробовал, просто еще не до конца освоил, и как сделать срабатывание на отрицательное значение не догоню(
- 
				Что такое pxlcount(79,252,1581,728,1048530)<1 ?  :o
			
- 
				ну я думал так можно указать если типо <1 это нет такого пикселя и действие будет идти дальше XD
 
 А так вот вариант, но надо еще чтобы было условие когда писутствует другой пиксель в области действие пропускалось, на случай окна ошибки, появляется фон и пиксель перекрывается и программа не найдя нужного пикселя начинает выполнять действие(
 
 $cw=0
 while($cw=0)
 getscreen
 if_pixel_in(79,252,1581,728,1048530)
 $cw=1
 else
 mouse_move(849,215)
 lclick(849,215)
 waitms(100)
 mouse_move(849,235)
 lclick(849,235)
 waitms(100)
 mouse_move(849,220)
 lclick(849,220)
 waitms(100)
 mouse_move(849,205)
 lclick(849,205)
 waitms(100)
 end_if
 end_cyc
- 
				Вот и пиши условия!
 
 Верный код
 $cw=0
 while($cw=0)
 getscreen
 if_pixel_in(79,252,1581,728,1048530)
 $cw=1
 else
 IF(pxlcount(79,252,1581,728,1048530) = 0)
 mouse_move(849,215)
 lclick(849,215)
 waitms(100)
 END_IF
 
 IF(pxlcount(79,252,1581,728,1048530) = 0)
 mouse_move(849,235)
 lclick(849,235)
 waitms(100)
 END_IF
 
 IF(pxlcount(79,252,1581,728,1048530) = 0)
 mouse_move(849,220)
 lclick(849,220)
 waitms(100)
 END_IF
 
 IF(pxlcount(79,252,1581,728,1048530) = 0)
 mouse_move(849,205)
 lclick(849,205)
 waitms(100)
 END_IF
 waitms(50)
 end_if
 end_cyc
- 
				Погоди ка, а какой в этом смысл, надо ж определять что за действие!
 За место IF(pxlcount(79,252,1581,728,1048530) = 0) должен быть анализ ошибки.
- 
				Спасибо огромное! Все работает =)
 
 Еще такой вопрос, чтобы не создавать новый топик:
 Я могу добавить цикл в программу, чтобы по условию если найден новый пиксель, он начинал работать до момента появления нужного пикселя в цикле, а при его появление цикл останавливался и продолжал работать основной скрипт.
 Как сделать знаю, но у меня почему-то идет комфликт цикла с основным скриптом.
 И еще вопрос в одном скрипте можно реализовать сразу ряд циклов или подпрограмм? или все таки надо  разбивать скрипт на файлы и вызывать при условии необходимую часть кода?
 Просто я заметил, чем больше скрипт тем сильнее идет отклонение от поставленной задачи.
- 
				Я могу добавить цикл в программу, чтобы по условию если найден новый пиксель, он начинал работать до момента появления нужного пикселя в цикле, а при его появление цикл останавливался и продолжал работать основной скрипт.
 
 Конечно можешь.
 
 Как сделать знаю, но у меня почему-то идет комфликт цикла с основным скриптом.
 
 Исправь ошибки и проблем не будет.
 
 И еще вопрос в одном скрипте можно реализовать сразу ряд циклов или подпрограмм? или все таки надо  разбивать скрипт на файлы и вызывать при условии необходимую часть кода?
 Просто я заметил, чем больше скрипт тем сильнее идет отклонение от поставленной задачи.
 
 Можно.
 Ничего не откуда не вызывается. При запуске, до выполнения, в памяти кликера из всех инклудов собирается один единый скрипт.
 
 Просто я заметил, чем больше скрипт тем сильнее идет отклонение от поставленной задачи.
 
 Исправляй ошибки.
 
- 
				Спасибо большое за предоставленную информацию.
 То есть, скрипт может быть любой длинны, и если нет конфликтов  в коде он будет исправно работать в не зависимости от его длинны?
- 
				Можете посмотреть данный код на наличие конфликтов, части в отдельности работают исключительно, при сборке вместе идет конфлик и скрипт не работает вообще(
 
 SUB(mouse_move,$MOVE_END_X,$MOVE_END_Y)
 $MOVE_SPEED = 4
 $MOVE_Start_X = $_xmouse
 $MOVE_Start_Y = $_ymouse
 $MOVE_X = $MOVE_Start_X
 $MOVE_Y = $MOVE_Start_Y
 $dist = DIST($MOVE_END_X,$MOVE_END_Y,$MOVE_Start_X,$MOVE_Start_Y)
 $MOVE_SPEEDVAR = INT((SQRT($dist))/$MOVE_SPEED)
 IF($MOVE_SPEEDVAR < 1)
 $MOVE_SPEEDVAR = 1
 END_IF
 $MOVE_step=($dist-1)/$MOVE_SPEEDVAR
 $MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
 $MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step
 FOR($MOVE_i=0, $MOVE_i<INT($MOVE_step))
 $MOVE_X = $MOVE_X + $MOVE_X_step
 $MOVE_Y = $MOVE_Y + $MOVE_Y_step
 MOVE(ROUND($MOVE_X,0), ROUND($MOVE_Y,0))
 WAITMS(1)
 END_CYC
 MOVE($MOVE_END_X, $MOVE_END_Y)
 END_SUB
 
 SUB(poisk)
 $SHIFT_X = 5
 $SHIFT_Y = 5
 $ARR_NUM = 0
 $X2 = 0
 $Y2 = 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)
 IF(($X > $X2)|($Y > $Y2))
 $X2 = $X + $SHIFT_X
 $Y2 = $Y + $SHIFT_Y
 IF_PIXEL_IN($x-50,$y-50, $x+5,$y+5, 144)
 WAITMS(1)
 ELSE
 $ARR_NUM = ARRSIZE($ARR_SCAN)
 mouse_move($x, $y)
 WAITMS(700)
 DBLCLICK($x, $y)
 END_IF
 END_IF
 END_CYC
 UNDEFINE($ARR_SCAN)
 END_SUB
 GETSCREEN
 SCANPXL($ARR_SCAN, 79,252,1581,728,3211262)
 getscreen
 poisk()
 wait(1)
 
 getscreen
 IF(pxlcount(955,520,1008,556,11860735) > 0)
 goto(oti)
 lclick(849,215)
 waitms(2000)
 END_IF
 
 getscreen
 IF(pxlcount(79,252,1581,728,3211262) = 0)
 lclick(849,215)
 waitms(2000)
 END_IF
 
 getscreen
 IF(pxlcount(79,252,1581,728,3211262) = 0)
 lclick(849,235)
 waitms(2000)
 END_IF
 
 getscreen
 IF(pxlcount(79,252,1581,728,3211262) = 0)
 mouse_move(849,220)
 lclick(849,220)
 waitms(2000)
 END_IF
 
 getscreen
 IF(pxlcount(79,252,1581,728,3211262) = 0)
 mouse_move(849,205)
 lclick(849,205)
 waitms(2000)
 END_IF
 oti:
 waitms(50)
 end_if
 getscreen
 if_pixel_in(553,461,697,479,255)
 if_pixel_in(579,491,676,507,4873365)
 mouse_move($_return1, $_return2)
 lclick($_return1, $_return2)
 end_if
 end_if
 wait(1+rnd(1,3))
 
 getscreen
 if_pixel_in(513,250,635,260,9842944)
 wait(1+rnd(1,4))
 GETSCREEN
 IF_PIXEL_IN(426,520,442,536,9035255)
 IF_PIXEL_IN(463,362,509,389,1908335)
 mouse_move($_return1, $_return2)
 LCLICK($_return1+rnd(1,4), $_return2+rnd(1,5))
 WAIT(1+rnd(1,5))
 END_IF
 END_IF
 
 if($time1 < $_time_t)
 $time1 = $_time_t + 22
 getscreen
 if_pixel_in(271,234,377,244,92)
 if_pixel_in(12,201,62,246,12515010)
 mouse_move($_return1, $_return2)
 lclick($_return1, $_return2)
 waitms(50)
 end_if
 end_if
 getscreen
 if_pixel_in(271,234,377,244,92)
 if_pixel_in(6,250,64,289,12515010)
 mouse_move($_return1, $_return2)
 lclick($_return1, $_return2)
 waitms(50)
 end_if
 end_if
 getscreen
 if_pixel_in(271,234,377,244,92)
 if_pixel_in(8,291,57,333,12515010)
 mouse_move($_return1, $_return2)
 lclick($_return1, $_return2)
 waitms(50)
 end_if
 end_if
 getscreen
 if_pixel_in(271,234,377,244,92)
 if_pixel_in(9,340,66,377,12515010)
 mouse_move($_return1, $_return2)
 lclick($_return1, $_return2)
 waitms(50)
 end_if
 end_if
 end_if
 wait(1)
 
 GETSCREEN
 IF_PIXEL_IN(426,520,442,536,4044373)
 IF_PIXEL_IN(447,520,462,536,9035255)
 IF_PIXEL_IN(456,451,511,487,1251944)
 mouse_move($_return1, $_return2)
 LCLICK($_return1+rnd(4,8), $_return2+rnd(5,9))
 WAIT(1+rnd(1,5))
 END_IF
 END_IF
 END_IF
 
 GETSCREEN
 IF_PIXEL_IN(447,520,462,536,4044373)
 IF_PIXEL_IN(468,519,483,536,9035255)
 IF_PIXEL_IN(456,451,511,487,1251944)
 mouse_move($_return1, $_return2)
 LCLICK($_return1+rnd(4,8), $_return2+rnd(5,9))
 WAIT(1+rnd(1,5))
 END_IF
 END_IF
 END_IF
 
 GETSCREEN
 IF_PIXEL_IN(468,519,483,536,4044373)
 IF_PIXEL_IN(489,520,505,536,9035255)
 IF_PIXEL_IN(463,362,509,389,1908335)
 mouse_move($_return1, $_return2)
 LCLICK($_return1+rnd(4,8), $_return2+rnd(5,9))
 WAIT(1+rnd(1,5))
 END_IF
 END_IF
 END_IF
 wait(1+rnd(1,5)
 getscreen
 if_pixel_in(482,419,553,432,193)
 mouse_move($_return1, $_return2)
 lclick($_return1+rnd(1,3), $_return2+rnd(1,3))
 mouse_move(812,136)
 lclick(812+rnd(1,10),136+rnd(1,10))
 END_IF
 end_if
- 
				Конечно ошибки нашлись. Это лишние END_IF
 
 Верный код
 SUB(mouse_move,$MOVE_END_X,$MOVE_END_Y)
 $MOVE_SPEED = 4
 $MOVE_Start_X = $_xmouse
 $MOVE_Start_Y = $_ymouse
 $MOVE_X = $MOVE_Start_X
 $MOVE_Y = $MOVE_Start_Y
 $dist = DIST($MOVE_END_X,$MOVE_END_Y,$MOVE_Start_X,$MOVE_Start_Y)
 $MOVE_SPEEDVAR = INT((SQRT($dist))/$MOVE_SPEED)
 IF($MOVE_SPEEDVAR < 1)
 $MOVE_SPEEDVAR = 1
 END_IF
 $MOVE_step=($dist-1)/$MOVE_SPEEDVAR
 $MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
 $MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step
 FOR($MOVE_i=0, $MOVE_i<INT($MOVE_step))
 $MOVE_X = $MOVE_X + $MOVE_X_step
 $MOVE_Y = $MOVE_Y + $MOVE_Y_step
 MOVE(ROUND($MOVE_X,0), ROUND($MOVE_Y,0))
 WAITMS(1)
 END_CYC
 MOVE($MOVE_END_X, $MOVE_END_Y)
 END_SUB
 
 SUB(poisk)
 $SHIFT_X = 5
 $SHIFT_Y = 5
 $ARR_NUM = 0
 $X2 = 0
 $Y2 = 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)
 IF(($X > $X2)|($Y > $Y2))
 $X2 = $X + $SHIFT_X
 $Y2 = $Y + $SHIFT_Y
 IF_PIXEL_IN($x-50,$y-50, $x+5,$y+5, 144)
 WAITMS(1)
 ELSE
 $ARR_NUM = ARRSIZE($ARR_SCAN)
 mouse_move($x, $y)
 WAITMS(700)
 DBLCLICK($x, $y)
 END_IF
 END_IF
 END_CYC
 UNDEFINE($ARR_SCAN)
 END_SUB
 
 GETSCREEN
 SCANPXL($ARR_SCAN, 79,252,1581,728,3211262)
 poisk()
 wait(1)
 
 getscreen
 IF(pxlcount(955,520,1008,556,11860735) > 0)
 goto(oti)
 lclick(849,215)
 waitms(2000)
 END_IF
 
 getscreen
 IF(pxlcount(79,252,1581,728,3211262) = 0) // одно и тоже условие
 lclick(849,215) // почему клик сюда?
 waitms(2000)
 END_IF
 
 getscreen
 IF(pxlcount(79,252,1581,728,3211262) = 0) // одно и тоже условие
 lclick(849,235) // А этот сюда?
 waitms(2000)
 END_IF
 
 getscreen
 IF(pxlcount(79,252,1581,728,3211262) = 0) // одно и тоже условие
 mouse_move(849,220) // или просто делаем это все пока не будет результат?
 lclick(849,220)
 waitms(2000)
 END_IF
 
 getscreen
 IF(pxlcount(79,252,1581,728,3211262) = 0) // одно и тоже условие
 mouse_move(849,205)
 lclick(849,205)
 waitms(2000)
 END_IF
 
 oti:
 waitms(50)
 
 getscreen
 if_pixel_in(553,461,697,479,255)
 if_pixel_in(579,491,676,507,4873365)
 mouse_move($_return1, $_return2)
 lclick($_return1, $_return2)
 end_if
 end_if
 WAIT(RND(2,4))
 
 GETSCREEN
 if_pixel_in(513,250,635,260,9842944)
 wait(1+rnd(1,4))
 GETSCREEN
 IF_PIXEL_IN(426,520,442,536,9035255)
 IF_PIXEL_IN(463,362,509,389,1908335)
 mouse_move($_return1, $_return2)
 LCLICK($_return1+rnd(1,4), $_return2+rnd(1,5))
 WAIT(1+rnd(1,5))
 END_IF
 END_IF
 
 if($time1 < $_time_t)
 $time1 = $_time_t + 22
 getscreen
 if_pixel_in(271,234,377,244,92)
 if_pixel_in(12,201,62,246,12515010)
 mouse_move($_return1, $_return2)
 lclick($_return1, $_return2)
 waitms(50)
 end_if
 end_if
 getscreen
 if_pixel_in(271,234,377,244,92)
 if_pixel_in(6,250,64,289,12515010)
 mouse_move($_return1, $_return2)
 lclick($_return1, $_return2)
 waitms(50)
 end_if
 end_if
 getscreen
 if_pixel_in(271,234,377,244,92)
 if_pixel_in(8,291,57,333,12515010)
 mouse_move($_return1, $_return2)
 lclick($_return1, $_return2)
 waitms(50)
 end_if
 end_if
 getscreen
 if_pixel_in(271,234,377,244,92)
 if_pixel_in(9,340,66,377,12515010)
 mouse_move($_return1, $_return2)
 lclick($_return1, $_return2)
 waitms(50)
 end_if
 end_if
 end_if
 wait(1)
 
 GETSCREEN
 IF_PIXEL_IN(426,520,442,536,4044373)
 IF_PIXEL_IN(447,520,462,536,9035255)
 IF_PIXEL_IN(456,451,511,487,1251944)
 mouse_move($_return1, $_return2)
 LCLICK($_return1+rnd(4,8), $_return2+rnd(5,9))
 WAIT(1+rnd(1,5))
 END_IF
 END_IF
 END_IF
 
 GETSCREEN
 IF_PIXEL_IN(447,520,462,536,4044373)
 IF_PIXEL_IN(468,519,483,536,9035255)
 IF_PIXEL_IN(456,451,511,487,1251944)
 mouse_move($_return1, $_return2)
 LCLICK($_return1+rnd(4,8), $_return2+rnd(5,9))
 WAIT(1+rnd(1,5))
 END_IF
 END_IF
 END_IF
 
 GETSCREEN
 IF_PIXEL_IN(468,519,483,536,4044373)
 IF_PIXEL_IN(489,520,505,536,9035255)
 IF_PIXEL_IN(463,362,509,389,1908335)
 mouse_move($_return1, $_return2)
 LCLICK($_return1+rnd(4,8), $_return2+rnd(5,9))
 WAIT(1+rnd(1,5))
 END_IF
 END_IF
 END_IF
 wait(1+rnd(1,5)
 
 getscreen
 if_pixel_in(482,419,553,432,193)
 mouse_move($_return1, $_return2)
 lclick($_return1+rnd(1,3), $_return2+rnd(1,3))
 mouse_move(812,136)
 lclick(812+rnd(1,10),136+rnd(1,10))
 END_IF
 end_if
- 
				Спасибо большое! Не заметил =)
 Да где мы поставили о пометках, там одно условие, пока не будет найден пиксель в 4 разных областях.
- 
				не хватает скобки
 182. wait(1+rnd(1,5))
 (сорь что влез, в глаза бросилось)
- 
				Спасибо! А есть редактор для проверки синтаксиса для этих скриптов?
 
- 
				Спасибо! А есть редактор для проверки синтаксиса для этих скриптов?
 
 
 Нет, все исключительно глазами  ;)
 Используй "расставить отступы" в редакторе чтобы увидеть нарушение конструкций. Как раз отсутствующие или лишние окончания сразу перекосят весь скрипт.
 Ну и надо стараться как то сразу смотреть сколько скобок с обеих сторон.
- 
				На счет рандома, проще сразу писать
 WAIT(RND(2,4)) // задержка на 2 3 4 секундыНо лучше
 WAITMS(RND(2000,4000)) //задержка от 2х до 4х секундТак еще более "рандомно"
 
- 
				На счет рандома, проще сразу писать
 WAIT(RND(2,4)) // задержка на 2 3 4 секундыНо лучше
 WAITMS(RND(2000,4000)) //задержка от 2х до 4х секундТак еще более "рандомно"
 
 
 Большое спасибо не подумал =)
- 
				А можно использовать клик так ?
 
 lclick(111 +rnd(1,5), 222 +rnd(1,5))
- 
				А есть редактор для проверки синтаксиса для этих скриптов? редакторы-то есть (sublime text, atom), а вот самих модулей описания синтаксиса .cms и проверки синтаксиса .cms в природе пока не существует. нужен энтузиаст.
 
 А можно использовать клик так ?
 lclick(111 +rnd(1,5), 222 +rnd(1,5))
 да
- 
				А есть редактор для проверки синтаксиса для этих скриптов? редакторы-то есть (sublime text, atom), а вот самих модулей описания синтаксиса .cms и проверки синтаксиса .cms в природе пока не существует. нужен энтузиаст.
 
 А можно использовать клик так ?
 lclick(111 +rnd(1,5), 222 +rnd(1,5))
 да
 
 
 Спасибо большое =)
 
- 
				Подскажите как выполнить привязку к окну? сочетание клавиш  не работет(
			
- 
				Все заработало просто я протупил XD было 2 кликера включено и включалось на другом XD ребят а когда с привязкой к окну эмитация мышы не работает ведь?
 
- 
				Все заработало просто я протупил XD было 2 кликера включено и включалось на другом XD ребят а когда с привязкой к окну эмитация мышы не работает ведь?
 
 
 работает, но не во всех окнах. попробуй, немного дополнил существующую подпрограмму имитации мыши + подпрограмма A_MOVE - передвигает курсор в заданном окне. можно не использовать привязку, в этом случае вместо параметра $_hwnd писать нужный hwnd окна.
 SUB(A_MOVE, $A_x, $A_y, $A_hwnd)
 postmessage($A_hwnd,0x0200,0,$A_x+($A_y*65536))
 END_SUB
 
 SUB(mouse_move,$MOVE_END_X,$MOVE_END_Y,$A_hwnd)
 $MOVE_SPEED = 4
 $MOVE_Start_X = $_xmouse
 $MOVE_Start_Y = $_ymouse
 $MOVE_X = $MOVE_Start_X
 $MOVE_Y = $MOVE_Start_Y
 $dist = DIST($MOVE_END_X,$MOVE_END_Y,$MOVE_Start_X,$MOVE_Start_Y)
 $MOVE_SPEEDVAR = INT((SQRT($dist))/$MOVE_SPEED)
 IF($MOVE_SPEEDVAR < 1)
 $MOVE_SPEEDVAR = 1
 END_IF
 $MOVE_step=($dist-1)/$MOVE_SPEEDVAR
 $MOVE_X_step = ($MOVE_END_X-$MOVE_Start_X)/$MOVE_step
 $MOVE_Y_step = ($MOVE_END_Y-$MOVE_Start_Y)/$MOVE_step
 FOR($MOVE_i=0, $MOVE_i<INT($MOVE_step))
 $MOVE_X = $MOVE_X + $MOVE_X_step
 $MOVE_Y = $MOVE_Y + $MOVE_Y_step
 MOVE(ROUND($MOVE_X,0), ROUND($MOVE_Y,0))
 WAITMS(1)
 END_CYC
 A_MOVE($MOVE_END_X, $MOVE_END_Y,$A_hwnd)
 END_SUB
 //------------------------------------
 
 //вызов плавного передвижения (с эмитацией), в привязанном окне
 
 mouse_move($x, $y ,$_hwnd)
 
 halt
- 
				А если нужно реализовать привязку к 2 окнам одного скрипта?
			
- 
				ну я в принципе представляю как сделать данное действо, просто еще не совсем освоился с функционалом и кодом, можно сделать несколько исполнительных файлов и при определенных условиях запускать один или другой, то есть разбить код на несколько независимых разделов, которые будут реализовываться в необходимых для них местах.