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

Основной раздел => Использование => Topic started by: digiTALker on March 25, 2015, 11:55:27 AM

Title: GETSCREEN области в приложении EVE-Online с привязкой к окну и без.
Post by: digiTALker on March 25, 2015, 11:55:27 AM
В свете недавнего обсуждения (http://crapware.aidf.org/forum/index.php?topic=1856.0) провёл серию опытов скрипта из двух строк.
Code: (clickermann) [Select]
GETSCREEN(600,600,900,900)
SCREENSHOT("test flash")

И выяснил что:

Родилась идея заставить его снимать скрины до тех пор, пока внутри будет хоть какой то цвет кроме чёрного, и только в этом случае разрешить приступать к алгоритму поиска нужной точки в этом скрине. Скажите плиз в какую сторону читать для реализации оного?
Title: Re: GETSCREEN области в приложении EVE-Online с привязкой к окну и без.
Post by: NStra on March 25, 2015, 12:20:39 PM
Попробуй.
Code: [Select]
WHILE($n=0)
GETSCREEN
$n=PXLXOR(0,0,$_xmax,$_ymax)//Вставь свои координаты
END_CYC
PRINT("На экране не только черный")
HALT
Title: Re: GETSCREEN области в приложении EVE-Online с привязкой к окну и без.
Post by: Vint on March 25, 2015, 01:15:39 PM
По первому пункту, вроде бы уже определились, что область в режиме привязки не работает. Здесь http://crapware.aidf.org/forum/index.php?topic=1852.msg10982#msg10982

Попробуй конечно ловить не чёрный скрин. Но при таком раскладе лучше использовать виртуальную машину.

P.S.
Выявлена интересная закономерность.
У меня на таком скрипте результаты брака 15%
Code: (clickermann) [Select]
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 места. Раскладка бракованных скринов зависит от местонахождения скрипта.
Неужели случайность?

Мне видится только ошибка в кликере. Видать он очищает или затирает образ буфера. Такая зависимость может быть только от того, что при выполнении скрипта тайминги работы конкретных команд смещаются в зависимости от того куда кликеру нужно сохранять скриншот. Может конечно и другое объяснение.
Title: Re: GETSCREEN области в приложении EVE-Online с привязкой к окну и без.
Post by: digiTALker on March 25, 2015, 02:22:02 PM
ограничения области используются для ускорения работы, а если результат работы непредсказуем, то это уже долгая лотерея.
Зачем изгаляться и писать скрипты определяющие годность GETSCREEN(600,600,900,900), когда можно просто написать GETSCREEN и относительно быстро получить нужный результат?
Ну первичная моя цель это обратить внимание разработчика. Знаешь как Хаус как то нанял себе полотёра вместо своих докторов, и советовался с ним. По сути ему не нужны были его советы, но он помогал творческому процессу своими бесполезными высказываниями. Может и мы копаясь скажем что-то от чего разработчик скажет - ЕВРИКА )), это может быть даже косвенно.

Quote
Больше того, номера бракованных скринов всегда одни и те же 2,3,5,7,10,13,16,25,27,30,33,37,57,86,100
Новый метод шифрования? ))
 
На самом деле можно наблюдать как мерцает изображение в лупе, думаю что та же причина что заставляет мерцать в квадрате превью действует и на битые скрины.
Title: Re: GETSCREEN области в приложении EVE-Online с привязкой к окну и без.
Post by: Vint on March 25, 2015, 03:12:25 PM
На самом деле можно наблюдать как мерцает изображение в лупе, думаю что та же причина что заставляет мерцать в квадрате превью действует и на битые скрины.

Это само собой, через превью и искал "плохие" окна. Только через превью статистику не соберёшь, моргает и моргает.
Хотя тоже как то странно моргает, будто одна фраза азбукой морзе.

Эврика! В кликере заточён человек! Возможно раб кликера, который там всё и выполняет. И таким хитрым макаром он пытается нам подать сигнал. Даёт знать о себе посылая пока только SOS  :) :D ;D

Причина естесственно та же, но проявляется по разному. Ведь в каждый запуск скрипта мигалка включается с начала.
Title: Re: GETSCREEN области в приложении EVE-Online с привязкой к окну и без.
Post by: Vint on March 25, 2015, 03:53:54 PM
прогнал все тесты Винта, менял место расположения кликера, скрипта и окна привязки, но получения брака никогда небыло всегда 100% правильных скринов. моргает заметно.
 А вот с координатами  лупы в режиме привязки невсегда, но иногда получается перебор по оси У.

На каком приложении проверял?
Title: Re: GETSCREEN области в приложении EVE-Online с привязкой к окну и без.
Post by: digiTALker on March 25, 2015, 05:28:36 PM
Немножечко в тему топика )))
Вот как выглядит работающий скрипт для EVE-Online для прыгания по гейтам.
Не изучил пока как сделать чтоб  кодировка передавалась латиницы.
Code: (clickermann) [Select]
// ãîëóáåíüêàÿ ñêîðîñòü 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

Title: Re: GETSCREEN области в приложении EVE-Online с привязкой к окну и без.
Post by: Oraven on March 25, 2015, 07:44:02 PM
Немножечко в тему топика )))
Вот как выглядит работающий скрипт для EVE-Online для прыгания по гейтам.
Не изучил пока как сделать чтоб  кодировка передавалась латиницы.

Немного перестраиваем скрипт и можно обойтись без ГОТО
Code: (clickermann) [Select]
// голубенькая скорость 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 и проблем с кодировкой никаких нет. Но говорят на семерке и выше нужно выбирать "Ру" раскладку перед копированием текста.