Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started 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]
Также хотелось бы узнать возможность реализации скрипта в фоновом режиме (привязка к определенной вкладке браузера)
-
В первом случаи можно использовать анализ крайнего пиксела, или функцию подсчета пикселов.
Во втором, если ничего не меняется написать простые клики.
В третьем требуется поиск фрагмента (требуется сделать скриншот, вырезать имя и искать его функцией.)
Вот приблизительная структура скрипта.
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
-
Основу понял, склеил, работает. Но остался один вопрос, эстетический по большей мере, чтобы искать что-либо на странице пришлось увеличить её размер почти до не читабельного, есть ли возможность реализовать поиска "листая" страницу? Единственное что мне пришло в голову это прокрутка "стрелочками" или "скроллом" занесенными в код скрипта... Возможно есть более эстетический вариант?
(перфекционист етить меня) ;D
-
PageUp PageDown еще.
Заменяем поиск картинки на цикл с поиском картинки.
$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
-
Понял, что я нубяра и на своих "самообразовательных" знаниях далеко не уеду, хотя так научился многому. Кручу-верчу, что-нибудь получится... ;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]
Это для меня задача минимум в понимании, вот какой скрипт у меня получился:
НЕМНОГО подправил пошарив и почитав "литературу"
// как вариан вставка поиска иконки с полностью заполненной маной.
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
Отрабатывает по частям, но когда пытаюсь собрать в кучу, происходит крах... :-\ Просто не находит кнопки ( пробовал ставить команду "Завершения", скрипт запускается, думает пару секунд и завершается)
Что я делаю не так друзья, поясните на пальцах, готов слушать и мотать на ус.
-
Твои картинки что то не грузятся, вот хороший фото хостинг http://savepic.net/ (http://savepic.net/)
Зачем тут цифра 1?
skip: 1
GOTO(skip) 1
Смещение сделать очень просто
LCLICK($_return1+5, $_return2+10) // клик правее на 5 пикселов и ниже на 10
Не находит, значит изображение изменилось. Используй цветокоррекцию и процент совпадения.
В шаблонах есть скрипт цветокоррекции. Процент подберешь опытным путем, скажу только он должен быть в пределах 70-100% чем меньше процент тем медленнее поиск.
-
Цифру исправил, точнее убрал, понял смысл того что вы мне раньше присылали и применение циклу ;D
Но не смог решить проблему с KEYPRESS(#PAGEDOWN)
он просто уносит меня в "подвал" страницы и даже не собирается по пути ничего искать :-\
-
P.S. Хотелось бы уточнить вопрос о нагрузке и "удлинении" времени поисков заданных шаблонов картинок от их размера.
-
P.S. Хотелось бы уточнить вопрос о нагрузке и "удлинении" времени поисков заданных шаблонов картинок от их размера.
Размер фрагмента поиска должен быть маленьким. 50х50 или меньше. Чем меньше область поиска тем быстрее поиск. Глупо искать там где нашего объекта быть не может.
-
Выражаю благодарность Oraven, мой план минимум осуществился, понял основные азы и что-куда-для-чего :D
Вот что получилось:
// 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)
Теперь попробую следующий этап, возможно ли распознавание определенного текста? (известно каким он может быть, несколько вариаций) и поиск его "дублера", но уже другой шрифт + курсив или жирность