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

Основной раздел => Использование => Topic started by: TriaM on April 08, 2015, 04:02:56 AM

Title: Использование "Clickermann" на игровом форуме
Post by: TriaM on April 08, 2015, 04:02:56 AM
Доброй ночи друзья! Прошу вашего совета и наставления по созданию сценария на форуме. Буду благодарен толчкам в сторону правильного решения и помощи.

В двух словах, требуется чтобы кликер срабатывал при полном заполнении параметра "мана"
[spoiler](http://cs622131.vk.me/v622131291/2cf6c/jssy8pCSCr0.jpg)[/spoiler]

Выбирал значение отсюда
[spoiler](http://cs622131.vk.me/v622131291/2cf64/lmt3zolCjtY.jpg)[/spoiler]

И выбирал пользователя (соответственно пользователи каждый раз меняются)
[spoiler](http://cs622131.vk.me/v622131291/2cf75/lVh-wp9tUV8.jpg)[/spoiler]

Также хотелось бы узнать возможность реализации скрипта в фоновом режиме (привязка к определенной вкладке браузера)
Title: Re: Использование "Clickermann" на игровом форуме
Post by: Oraven on April 08, 2015, 08:17:44 AM
В первом случаи можно использовать анализ крайнего пиксела, или функцию подсчета пикселов.
Во втором, если ничего не меняется написать простые клики.
В третьем требуется поиск фрагмента (требуется сделать скриншот, вырезать имя и искать его функцией.)

Вот приблизительная структура скрипта.

Code: (clickermann) [Select]
GETSCREEN
IF(PXL(10,10) = 255) // анализируем крайний пиксел маны
   WAITMS(500)
   // если нашли начинаем кликать
   
   LCLICK(237,530)  // Alt+Q вставляет в скрипт клик по текущем координатам
   WAITMS(100)
   LCLICK(599,822)  // 16777215 - и также закомментированный цвет пиксела для информации
   WAITMS(100)
   LCLICK(902,913)  // 16777215
   WAITMS(100)
   LCLICK(992,1005)  // 16250096
   WAITMS(100)  // не забывай про задержки!
   
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100) // далее идет поиск картинки пользователя
      LCLICK($_return1, $_return2)
      WAITMS(1000)
   END_IF
   
ELSE
   // если не нашли (мана не заполнена) то задержка и снова ищем
   WAITMS(50)
END_IF
Title: Re: Использование "Clickermann" на игровом форуме
Post by: TriaM on April 08, 2015, 10:15:27 AM
Основу понял, склеил, работает. Но остался один вопрос, эстетический по большей мере, чтобы искать что-либо на странице пришлось увеличить её размер почти до не читабельного, есть ли возможность реализовать поиска "листая" страницу? Единственное что мне пришло в голову это прокрутка "стрелочками" или "скроллом" занесенными в код скрипта... Возможно есть более эстетический вариант?

(перфекционист етить меня) ;D
Title: Re: Использование "Clickermann" на игровом форуме
Post by: Oraven on April 08, 2015, 02:18:26 PM
PageUp PageDown еще.

Заменяем поиск картинки на цикл с поиском картинки.

Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100) // далее идет поиск картинки пользователя
      $check = 1 // нашли, прерываем цикл
      LCLICK($_return1, $_return2)
      WAITMS(1000)
   ELSE
      KEYPRESS(#PAGEDOWN) // не нашли, жмем PageDown и ищем снова
      WAITMS(500)
   END_IF
END_CYC
Title: Re: Использование "Clickermann" на игровом форуме
Post by: TriaM on April 08, 2015, 07:44:17 PM
Понял, что я нубяра и на своих "самообразовательных" знаниях далеко не уеду, хотя так научился многому. Кручу-верчу, что-нибудь получится...  ;D

Начну с начала, надеюсь на поддержку и настойчивое биение по макушке, ибо хочется разобраться и "въехать"

Итак вот игровой форум чтобы можно было понять зрительно:
[spoiler](https://4.downloader.disk.yandex.ru/preview/4489bfeb99fa1f7b36868395af1e4bfc2eb4d2634818aa6b1f301e4ad97b1db4/inf/SGtZXSx-6MMu7Cv6FWhReIw3ZZNEORXR9CtAujzQvQNv0qADTdiydQ4MF5ECbovxY4Ento42R-2zNWfgrX4zbw%3D%3D?uid=35778940&filename=1jpg&disposition=inline&hash=&limit=0&content_type=image%2Fjpeg&tknv=v2&size=1020x668)
[/spoiler]
[spoiler](https://4.downloader.disk.yandex.ru/preview/7317e9bdaf31876e3d2fb1ff3b2d0c51ccfcc3026edd7b599cd5c96308ee5e58/inf/nfh7q__DtHmLEkwLfHB4WYw3ZZNEORXR9CtAujzQvQM4Y8fizvj_Je72sF2f6MbTHpeJ0Pgs6rAp8Ch-aqrakA%3D%3D?uid=35778940&filename=2jpg&disposition=inline&hash=&limit=0&content_type=image%2Fjpeg&tknv=v2&size=1020x668)[/spoiler]
[spoiler](https://3.downloader.disk.yandex.ru/preview/8934dba0abc0d9c09acb01532231bb189ebc40caa512ece96182c0daadad5032/inf/0UluG8739XhVsThfYiKrHM3AVhFUvKHHGUJLeTSXr-t8F2Yw55gJR_p2WMCPlP7WtLKPuLv0qd6Y3pT9iNZYuQ%3D%3D?uid=35778940&filename=3jpg&disposition=inline&hash=&limit=0&content_type=image%2Fjpeg&tknv=v2&size=1020x668)[/spoiler]

Вверху лишняя шапка которая не носит "кликабельной" полезности за исключение поля "мана" (но над этим полем находится строки вывода некоторых действий, а значит привязка по конкретному "Х", "У" не доступна)

Само поле "маны" (достоверна известна длина незаполненного поля)
[spoiler](https://2.downloader.disk.yandex.ru/preview/8f8ad3a320ca8599bf99a3f530e16e313b3ccce733c1eb10f4ca2ba3008773a2/inf/SyGMH9ISesm8waIH2i-jrjudmaeNKMgUKXmPPYynjdPULoiQZm6598gh2_PktKoBSR7vjH4uvGIKFeHwzCl60Q%3D%3D?uid=35778940&filename=Manafullbmp&disposition=inline&hash=&limit=0&content_type=image%2Fjpeg&tknv=v2&size=1323x668)[/spoiler]
и чем оно заполняется
[spoiler](https://1.downloader.disk.yandex.ru/preview/72dcda1fd2d572a5c060606f86b07a3f2d88adf394f88368cc5f5cbc53a18dfc/inf/q9sIuiPueQs2o0knRI5QzzoYL1VpnwRI7ErOQuYvgrIAfxZIDB0VYTdav61CzDsU9XcgtRfqS3mDeuF5bU6PCw%3D%3D?uid=35778940&filename=Manabmp&disposition=inline&hash=&limit=0&content_type=image%2Fjpeg&tknv=v2&size=1323x668)[/spoiler]
Возможно ли сделать привязку "заполнителя" к шкале маны и соответственно начала работы скрипта?

Следующее поле (точнее два): выбор всей имеющейся маны кнопкой [spoiler](https://4.downloader.disk.yandex.ru/preview/d3c06baf6b885c8acca9a6ca3f507c411fc924b15e16dd08ed0eeb3684aa68ef/inf/RV6uND7rALgykfrNqoRDVo1FtkeNEi6k6UdAzZ6ColbUqJZ85ZLPkJCnPqLjFvD4xLgwmxRCIH9bqlv2k0KyBA%3D%3D?uid=35778940&filename=Maxbmp&disposition=inline&hash=&limit=0&content_type=image%2Fjpeg&tknv=v2&crop=1&size=145x145)[/spoiler] И кнопка подтверждения действия [spoiler](https://1.downloader.disk.yandex.ru/preview/027912030b7bdb0aa981de6b6079b91446be5e0fa4e05d4e3a07df0df93bb4a2/inf/vaiviIxGGaeRuzlZUIDkE2mQ1pVe3w76GA8fR82VO2PeDrPk46oXUeqk1-UMa0ZLXEhbiG0b_lcDbhXUpM9kUA%3D%3D?uid=35778940&filename=okbmp&disposition=inline&hash=&limit=0&content_type=image%2Fjpeg&tknv=v2&size=285x500)[/spoiler]

Это для меня задача минимум в понимании, вот какой скрипт у меня получился:
 
НЕМНОГО подправил пошарив и почитав "литературу"
Code: (clickermann) [Select]
// как вариан вставка поиска иконки с полностью заполненной маной.

KEYPRESS(#PAGEDOWN) // избавляемся от бесполезной пока шапки и переходим сразу к нашим кнопкам !!! не хочет корректно работать
WAIT(1)

 $check = 0
WHILE($check = 0)
WAIT(1)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "max.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2) // тут возник вопрос, как сделать так чтобы он кликал в центре кнопки, а не на крайнем пикселе
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

 WAIT(3)

$check = 0
WHILE($check = 0)
WAIT(1)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2) // тот же вопрос с центром
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC


Отрабатывает по частям, но когда пытаюсь собрать в кучу, происходит крах... :-\ Просто не находит кнопки ( пробовал ставить команду "Завершения", скрипт запускается, думает пару секунд и завершается)

Что я делаю не так друзья, поясните на пальцах, готов слушать и мотать на ус.
Title: Re: Использование "Clickermann" на игровом форуме
Post by: Oraven on April 08, 2015, 08:51:57 PM
Твои картинки что то не грузятся, вот хороший фото хостинг http://savepic.net/ (http://savepic.net/)

Зачем тут цифра 1?
Code: (clickermann) [Select]
skip: 1
GOTO(skip) 1

Смещение сделать очень просто
Code: (clickermann) [Select]
LCLICK($_return1+5, $_return2+10)    // клик правее на 5 пикселов и ниже на 10
Не находит, значит изображение изменилось. Используй цветокоррекцию и процент совпадения.
В шаблонах есть скрипт цветокоррекции. Процент подберешь опытным путем, скажу только он должен быть в пределах 70-100% чем меньше процент тем медленнее поиск.


Title: Re: Использование "Clickermann" на игровом форуме
Post by: TriaM on April 08, 2015, 08:56:11 PM
Цифру исправил, точнее убрал, понял смысл того что вы мне раньше присылали и применение циклу  ;D

Но не смог решить проблему с
Code: (clickermann) [Select]
KEYPRESS(#PAGEDOWN) он просто уносит меня в "подвал" страницы и даже не собирается по пути ничего искать :-\
Title: Re: Использование "Clickermann" на игровом форуме
Post by: TriaM on April 08, 2015, 09:08:07 PM
P.S. Хотелось бы уточнить вопрос о нагрузке и "удлинении" времени поисков заданных шаблонов картинок от их размера.
Title: Re: Использование "Clickermann" на игровом форуме
Post by: Oraven on April 08, 2015, 09:47:16 PM
P.S. Хотелось бы уточнить вопрос о нагрузке и "удлинении" времени поисков заданных шаблонов картинок от их размера.

Размер фрагмента поиска должен быть маленьким. 50х50 или меньше. Чем меньше область поиска тем быстрее поиск. Глупо искать там где нашего объекта быть не может.
Title: Re: Использование "Clickermann" на игровом форуме
Post by: TriaM on April 10, 2015, 07:10:56 AM
Выражаю благодарность Oraven, мой план минимум осуществился, понял основные азы и что-куда-для-чего :D

Вот что получилось:
Code: (clickermann) [Select]
// Version: 1.0 (09.04.2015)

LCLICK(855,152)
WAIT(RND(1,2))
KEYPRESS(#PAGEDOWN)
WAIT(RND(1,2))

$check = 0
WHILE($check = 0)
   WAIT(1)
   GETSCREEN
   IF_PIXEL_IN(746,65, 749,800, 11493436)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(500)
   END_IF
END_CYC

WAIT(RND(1,5))

$check = 0
WHILE($check = 0)
   WAIT(1)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "max.bmp", -1, 80)
      $check = 1
      LCLICK($_return1+5, $_return2+5)
      WAITMS(100)
   ELSE
      WHEELDOWN
      WAITMS(500)
   END_IF
END_CYC

WAIT(RND(3,5))

$check = 0
WHILE($check = 0)
   WAIT(1)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "ok.bmp", -1, 80)
      $check = 1
      LCLICK($_return1+5, $_return2+5)
      WAITMS(100)
   ELSE
      WHEELDOWN
      WAITMS(50)
   END_IF
END_CYC

WAIT(3)

Теперь попробую следующий этап, возможно ли распознавание определенного текста? (известно каким он может быть, несколько вариаций) и поиск его "дублера", но уже другой шрифт + курсив или жирность