Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: digiTALker on March 25, 2015, 11:55:27 AM
-
В свете недавнего обсуждения (http://crapware.aidf.org/forum/index.php?topic=1856.0) провёл серию опытов скрипта из двух строк.
GETSCREEN(600,600,900,900)
SCREENSHOT("test flash")
И выяснил что:
- В случае привязки к окну Гетскриин делается всего окна целиком, не смотря на указанную область. ~98% всех снимков дают скрин окна а внутри просто черный цвет, и только пара процентов получается годных. (выборка 150 снимков)
- Если активировать режим прозрачности в Clickermann, то выход годных поднимается и превышает 50%, но не системно. Уж не знаю возможно это совпадение, выборка была тоже не большая (150 снимков).
- Если не привязывать к окну, то уже успешно делается снимок только нужной области и выдаёт 100% годных, никакого мерцания нет. Но цель работать именно с привязкой, чтобы можно было и другими делами заниматься на компе, ибо идея привязки очень импонирует.
Если выключить Антиаляйсинг, то выход годных повышается в обоих случаях, но не значительно, на такой короткой выборке данным фактом можно пренебречь.
Родилась идея заставить его снимать скрины до тех пор, пока внутри будет хоть какой то цвет кроме чёрного, и только в этом случае разрешить приступать к алгоритму поиска нужной точки в этом скрине. Скажите плиз в какую сторону читать для реализации оного?
-
Попробуй.
WHILE($n=0)
GETSCREEN
$n=PXLXOR(0,0,$_xmax,$_ymax)//Вставь свои координаты
END_CYC
PRINT("На экране не только черный")
HALT
-
По первому пункту, вроде бы уже определились, что область в режиме привязки не работает. Здесь http://crapware.aidf.org/forum/index.php?topic=1852.msg10982#msg10982
Попробуй конечно ловить не чёрный скрин. Но при таком раскладе лучше использовать виртуальную машину.
P.S.
Выявлена интересная закономерность.
У меня на таком скрипте результаты брака 15%
FOR($i=0, $i<100)
GETSCREEN
SCREENSHOTEX(43,0, 172,137, "TEST_", 0)
WAITMS(30)
END_CYC
HALT
Что интересно, прогнал раз 10. Процент стабильно 15.
Больше того, номера бракованных скринов всегда одни и те же 2,3,5,7,10,13,16,25,27,30,33,37,57,86,100
Задержку менял, ставил и 0 и 30 и 50 и 70, перепривязывал и перезапускал. Результат один. Раскладка бракованных скринов всегда одна.
Переместил тестовый скрипт в другую папку. Раскладка по браку изменилась. Разные прогоны теперь выдавали стабильно другую раскладку.
Всё интересней и интересней.
В общем опробовал 3 места. Раскладка бракованных скринов зависит от местонахождения скрипта.
Неужели случайность?
Мне видится только ошибка в кликере. Видать он очищает или затирает образ буфера. Такая зависимость может быть только от того, что при выполнении скрипта тайминги работы конкретных команд смещаются в зависимости от того куда кликеру нужно сохранять скриншот. Может конечно и другое объяснение.
-
ограничения области используются для ускорения работы, а если результат работы непредсказуем, то это уже долгая лотерея.
Зачем изгаляться и писать скрипты определяющие годность GETSCREEN(600,600,900,900), когда можно просто написать GETSCREEN и относительно быстро получить нужный результат?
Ну первичная моя цель это обратить внимание разработчика. Знаешь как Хаус как то нанял себе полотёра вместо своих докторов, и советовался с ним. По сути ему не нужны были его советы, но он помогал творческому процессу своими бесполезными высказываниями. Может и мы копаясь скажем что-то от чего разработчик скажет - ЕВРИКА )), это может быть даже косвенно.
Больше того, номера бракованных скринов всегда одни и те же 2,3,5,7,10,13,16,25,27,30,33,37,57,86,100
Новый метод шифрования? ))
На самом деле можно наблюдать как мерцает изображение в лупе, думаю что та же причина что заставляет мерцать в квадрате превью действует и на битые скрины.
-
На самом деле можно наблюдать как мерцает изображение в лупе, думаю что та же причина что заставляет мерцать в квадрате превью действует и на битые скрины.
Это само собой, через превью и искал "плохие" окна. Только через превью статистику не соберёшь, моргает и моргает.
Хотя тоже как то странно моргает, будто одна фраза азбукой морзе.
Эврика! В кликере заточён человек! Возможно раб кликера, который там всё и выполняет. И таким хитрым макаром он пытается нам подать сигнал. Даёт знать о себе посылая пока только SOS :) :D ;D
Причина естесственно та же, но проявляется по разному. Ведь в каждый запуск скрипта мигалка включается с начала.
-
прогнал все тесты Винта, менял место расположения кликера, скрипта и окна привязки, но получения брака никогда небыло всегда 100% правильных скринов. моргает заметно.
А вот с координатами лупы в режиме привязки невсегда, но иногда получается перебор по оси У.
На каком приложении проверял?
-
Немножечко в тему топика )))
Вот как выглядит работающий скрипт для EVE-Online для прыгания по гейтам.
Не изучил пока как сделать чтоб кодировка передавалась латиницы.
// ãîëóáåíüêàÿ ñêîðîñòü 16777087
// áåëûé öâåò â îâåðâüþ 16777215
begin:
GETSCREEN
COLORMODE(7)
IF(PXLXOR(0,0, $_xmax,$_ymax) = 8421504 ) // ïðîâåðêà ëèêâèäíîñòè
goto(begin)
END_IF
IF(PXL(804,884) = 8388479) // ïðîâåðêà ñâåòîôîðà
IF_pixel_in(1258,117,1375,126,16777215) // ïðîâåðêà îâåðâ
IF_pixel_in(954,1013,964,1022,16777087) //ïðîâåðêà ñèíåíüêîé
WAIT(7)
GOTO(begin)
END_IF
LOGWRITE ("ñèíåíüêîé ÍÅÒ ñîáèðàþñü êëèêíóòü")
LOGSHOW (1)
LCLICK(RND(1234,1504),RND(89,103))
WAIT(RND(1,3))
DBLCLICK(RND(1589,1613),RND(88,112))
WAIT(4)
ELSE
GOTO(begin)
END_IF
ELSE
HALT // åñëè ñâîòîôîð ïðîïàë
END_IF
-
Немножечко в тему топика )))
Вот как выглядит работающий скрипт для EVE-Online для прыгания по гейтам.
Не изучил пока как сделать чтоб кодировка передавалась латиницы.
Немного перестраиваем скрипт и можно обойтись без ГОТО
// голубенькая скорость 16777087
// белый цвет в овервью 16777215
GETSCREEN
COLORMODE(7)
IF(PXLXOR(0,0, $_xmax,$_ymax) = 8421504) // проверка ликвидности
IF(PXL(804,884) = 8388479) // проверка светофора
IF_pixel_in(1258,117, 1375,126, 16777215) // проверка оверв
IF_pixel_in(954,1013, 964,1022, 16777087) //проверка синенькой
WAIT(7)
ELSE
LOGWRITE ("синенькой НЕТ собираюсь кликнуть")
LOGSHOW (1)
LCLICK(RND(1234,1504),RND(89,103))
WAIT(RND(1,3))
DBLCLICK(RND(1589,1613),RND(88,112))
WAIT(4)
END_IF
ELSE
WAITMS(50)
END_IF
ELSE
HALT // если свотофор пропал
END_IF
ELSE
WAITMS(50)
END_IF
У меня XP и проблем с кодировкой никаких нет. Но говорят на семерке и выше нужно выбирать "Ру" раскладку перед копированием текста.