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

Основной раздел => Общие вопросы => Topic started by: Ramzesia on November 14, 2019, 01:54:33 AM

Title: Помогите со скриптом
Post by: Ramzesia on November 14, 2019, 01:54:33 AM
прошу помочь со скриптом, никак не могу придумать как реализовать следующее.
Есть окно с клетками 9 клеток по ширине 11 по высоте, от центра одной клетки до центра второй 35 пикселей что по высоте что по ширине, нужно проверить каждую на наличии пикселя каждую если он есть кликнуть 2 раза.
Title: Re: Помогите со скриптом
Post by: Ramzesia on November 14, 2019, 11:24:35 AM
зачем тогда кликер тогда уж сам покликаю), ожидал более уную схему, которая сама пробежалась бы по клеткам, без тыканья носом в каждую)
Title: Re: Помогите со скриптом
Post by: Ramzesia on November 14, 2019, 02:26:38 PM
Если б я разбирался во всем этом "умно" то не просил бы помощи тут, если ты хорошо разбираешься в скрипте то это не значит что ты не ламер в другом, человек не может знать все. И с чего ты взял что я не искал или не пробовал? Да может это и нубский скрип но я его не смог сделать.
И вообще не понимаю людей которые пишут подобное, если можешь помочь, помоги если нет желания пройди мимо, а раздувай тему бессмысленными ответами, не по теме.
Ничего личного просто высказался.
И да, я всегда сперва пробую найти на форуме, потом пытаюсь сделать сам, и только потом, когда не получилось, создаю тему.
Title: Re: Помогите со скриптом
Post by: Ramzesia on November 14, 2019, 04:11:32 PM
Получилось так, проходит девять клеток нижнего ряда, подняться на верх не получается, пробовал цикл в цикле но не сработало.
Важно: скрипт должен проходить с низу в верх и с права налево по строчке.
Прикрутил скрин для теста. 

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

$x1=331
$y1=579

MOVE($x1,$y1)

GETSCREEN // Обновлять не нужно хватает одного снимка
FOR($a=0,$a<9)
   IF_PIXEL_IN($_xmouse, $_ymouse, $_xmouse+6, $_ymouse+7, 255)
      DBLCLICK($_xmouse, $_ymouse)
      WAITMS(500)
      LOGWRITE ("Что то получается")
      WAITMS(100)
   END_IF
   MOVE($_xmouse-35, $_ymouse)
END_CYC


halt
Title: Re: Помогите со скриптом
Post by: Космич on November 14, 2019, 05:40:44 PM
Code: (clickermann) [Select]
$start_X = 331
$start_Y = 579

$end_X = $start_X  + (9  * 35)
$end_Y = $start_Y  + (11 * 35)

GETSCREEN($start_X, $start_Y, $end_X, $end_Y)
FOR($k = $end_Y, $k > $start_Y, - 35)
   FOR($i = $end_X, $i > $start_X, - 35)     
      IF(PXL($i, $k) = 255)
      // ...
      END_IF
   END_CYC
END_CYC
Title: Re: Помогите со скриптом
Post by: Ramzesia on November 14, 2019, 06:01:04 PM
В место точек поставил даблклик, ничего не делает. Там пиксель в участке 6х7 пикселей искать надо, чисто за 1 цепляться не получится, ну или я не понял как твой скрипт работает.
Раньше проще понимал все, щас что то со мной не то, или примеры умнее стали:(

Code: (clickermann) [Select]
// Как я это понимаю
//коры левый верх
$start_X = 331
$start_Y = 579

//коры правый низ
$end_X = $start_X  + (9  * 35)
$end_Y = $start_Y  + (11 * 35)
 
GETSCREEN($start_X, $start_Y, $end_X, $end_Y) // снимок всех клеток
// Дальше не понимаю
FOR($k = $end_Y, $k > $start_Y, - 35)
   FOR($i = $end_X, $i > $start_X, - 35)     
      IF(PXL($i, $k) = 255)
      // ...
      END_IF
   END_CYC
END_CYC
Title: Re: Помогите со скриптом
Post by: Ramzesia on November 14, 2019, 07:09:57 PM
Твой вариант так и не получилось заставить работать.
Доделал свой, вроде работает как надо Во всяком случае спасибо за потраченное время, лучший форум из всех что встречал!

Вот мой вариант, возможно криво но что есть, как говорится)

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

$x1 = 331
$y1 = 579

MOVE($x1, $y1)

GETSCREEN
FOR($a = 0,$a < 11)
   FOR($b = 0,$b < 9)
      IF_PIXEL_IN($_xmouse, $_ymouse, $_xmouse + 6, $_ymouse + 7, 255)
         DBLCLICK($_xmouse, $_ymouse)
         WAITMS(500)
         LOGWRITE ("Что то получается")
         WAITMS(100)
      END_IF
      MOVE($_xmouse - 35, $_ymouse)
   END_CYC
   INC($y1, - 35)
   MOVE($x1, $y1)
END_CYC

halt
Title: Re: Помогите со скриптом
Post by: Космич on November 14, 2019, 08:10:13 PM
покажи реальный скрин этой сетки
Title: Re: Помогите со скриптом
Post by: Ramzesia on November 15, 2019, 02:12:19 AM
это скрин эксель файла проверял там, координаты указаные в моем скрипте нижний правый угол
Title: Re: Помогите со скриптом
Post by: Космич on November 15, 2019, 02:57:03 AM
тоже самое, но только за место пикселя нужна картинка
Code: (clickermann) [Select]
GETSCREEN
SCANPICTURE($arr, $_xmin, $_ymin, $_xmax, $_ymax, "picture.bmp", -1, 100)
FOR($i = ARRSIZE($arr), $i > 0, - 2)
   DBLCLICK($arr[$i - 2], $arr[$i - 1])
   WAITMS(500)
END_CYC

HALT
Title: Re: Помогите со скриптом
Post by: Ramzesia on November 15, 2019, 02:58:42 AM
Спасибо, но с картинкой не пойдет (содержимое клетки меняется), там именно область 6х7 надо сканировать на наличие пикселя, мой вариант меня устраивает, но в нем есть 2 минуса, первое это курсор после сдвига в лево, делает один шаг в 35 пикселей лишним, второе скрип не стабилен, то есть если мышку сдвинуть все собьется. если убрать эти 2 минуса ну хотя бы второй то было бы супер.
Title: Re: Помогите со скриптом
Post by: Космич on November 15, 2019, 03:04:41 AM
ты скрипт делаешь для эксель таблицы или для чего то другого?
Title: Re: Помогите со скриптом
Post by: Ramzesia on November 15, 2019, 03:07:58 AM
для другого, но с картинкой и тут уже не сработает.
Title: Re: Помогите со скриптом
Post by: Ramzesia on November 15, 2019, 03:17:23 AM
Поверь пример с эксель файлом идентичен, если заработает тут будет работать и там.
Повторюсь, нужно сканировать участок в клетке 6х7 пикселей, на наличие пикселя.
Title: Re: Помогите со скриптом
Post by: Космич on November 15, 2019, 03:31:14 AM
всё работает
https://i.zhyk.ru/image/1sqoM
Title: Re: Помогите со скриптом
Post by: Ramzesia on November 15, 2019, 03:40:28 AM
а картинку какую взять? там возможных вариантов, по 50+ штук будет, а единственный участок который объединяет их всех, это тот  уголок про который я говорю. Почему с пикселеп проблемно сделать? Помоги стабилизировать, курсор в моем примере, получится идеально.
Title: Re: Помогите со скриптом
Post by: Ramzesia on November 15, 2019, 04:13:04 AM
Теперь точно все, сам сделал теперь все отлично, спасибо большое Космич, на твоих примерах, созрело решение :)
Code: (clickermann) [Select]
$x1 = 331
$y1 = 579

GETSCREEN
FOR($a = 0,$a < 11)
   FOR($b = 0,$b < 9)
      IF_PIXEL_IN($x1, $y1, $x1 + 6, $y1 + 7, 255)
         DBLCLICK($x1, $y1)
         LOGWRITE ("Все получилось :)")
         WAITMS(100)
      END_IF
      INC($x1, - 35)
   END_CYC
   INC($y1, - 35)
   INC($x1, + 35 * 9)
END_CYC
halt
Title: Re: Помогите со скриптом
Post by: Ramzesia on November 15, 2019, 04:56:24 AM
Забыл упомяну, это координаты левый верх области 6х7 поиска пикселе
Code: (clickermann) [Select]
$x1 = 331
$y1 = 579