Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: ivan on November 09, 2014, 01:29:41 PM
-
вот собственно сам скрипт:
WAITMS(8000)
GETSCREEN
IF_PIXEL_IN(10,170, 1075, 653,825331,39167)
LCLICK($_return1, $_return2)
ELSE
LCLICK(1292,455)
WAITMS(1000)
LCLICK(559,437)
WAITMS(100)
LCLICK(1292,455)
END_IF
сначала все работает нормально примерно минут 10-15 потом почему то начинают выпадать шаги 2 3 4 и выполняются частично шаги с 6 по 11
пробовал увеличить интервалы между кликами что бы исключить тормоза системы, на другой машине и винде и браузере такая же проблема.
а вот это:
WAITMS(8000)
LCLICK(803,375)
GETSCREEN
IF_PIXEL_IN(5,243, 1180, 653,3342335)
LCLICK($_return1, $_return2)
END_IF
работает нормально везде
-
код верный. с задержками по 8 секунд никаких тормозов быть не может.
потом почему то начинают выпадать шаги 2 3 4 и выполняются частично шаги с 6 по 11
Ну потому что пикселы перестает находить.
-
пиксели не всегда и находит поэтому есть команды выводящие на "цель так сказать" шаги 6-10 как я уже писал выше именно начинается проблема в выполнении шагов 6-10 пропускаются 1 или 2 шага
еще раз сначала все работает , через некоторое время перестает видеть пиксели , потом перестает нажимать лклик в прописаном порядке получаеться чехарда то кликнет нормально то пропустит 1-2 шага а без шагов 6-10 работает стабильно больше 12ти часов
-
посидел понаблюдал , увидел вот что, 6 LCLICK(1292,455) не выполняется примерно спустя пару минут , не знаю почему,добавлял в 6ой шаг вместо клика KEYPRESS (#M) таже беда ....
-
попробуй сымитировать поведение пользователя
LDOWN(1292,455)
waitms(30)
LUP(1291,456)
-
не помогло как будто getscreen или ELSE забивает свой кешь и начинает все глюкать,но без ELSE просто LCLICK работает норм
-
Какой-то видимо частный случай. у меня и посложней скрипты работают часами и ничего.
А тут простенькая проверка, хм, координаты кликов за границы экрана не выходят?
-
Это
$_return1 =0
$_return2 =0
вставлять нельзя. Неверный код.
-
правда, ступил сильно! :'(
сам то, всегда вот так делаю ;
UNDEFINE($_return1)
UNDEFINE($_return2)
:D
я имею ввиду что системные переменные могут только возвращать значения! Обнулить их или записать в них значение нельзя!
Твой код бессмысленный.
-
Да не может быть никаких странностей, просто от случая к случаю цвета 825331,39167 чуть изменяются на 1-2 значения по любому каналу, как это обычно бывает.
Используй colormode или добавь ещё значений цвета.
-
возможно потому что открыто 2 окна и более и разные браузеры , но вторая машина там правда система не айс тут раза в 4ре мощней ,дак там 2 окна ток рабочих ие и опера дак вот ие работает с ELSE только с одним LCLICK и все норм (есть косяки там с нахождением и текущими координатами искомого пикселя) но вот в опере кликер не привязан работает с открытым окном и с несколькими LCKICK после ELSE таже фигня что и на основной машине там версия кликера 4 10.
кароче лана я спасиб за желание помочь видать прост специфическая игруха попалась :) буду без умных макросов дрочить ее :(
-
кароче понял причину не выполнения GETSCREEN иногда получается ,не привязанное окно работает норм ,а привязанное не выполняет снимок экрана или выполняет но фиг знает че фотает. а иногда норм привязывается и работает , пока не могу разобраться почему плохо привязка пашет
-
GETSCREEN не работает если привязанное окно свернуто, и не работает как хочется если привязано не к тому элементу окна, а для игр если в окне игры мышиный курсор графический, а не системный стандартный.
Все это описано в справке кликера.
-
quant13, спасибо конечно за пояснение, но походу тут проблема частного характера , так как вчера все работает норм (привязываеться к окну и пашет на заднем плане) а сегодня вот фиг , неделю назад пробовал на хроме все работало на заднем плане вчера на хроме не работало, опять же повторюсь просто гет скрин и оди повторюсь ОДНА ОПЕРАЦИЯ с лклик работает усложняю чтото (добавляю еще клик или ELSE или HALT)и все в привязанном окне гетскрен отказываеться работать, ща ниже вложу пример
WAITMS(8000)
GETSCREEN
IF_PIXEL_IN(10,10, 1400, 780,15530668,16252886,12058081,14614215)
LCLICK($_return1, $_return2)
ELSE
LCLICK(758,516)
END_IF
пашет везде ,привязанное окно не привязанное .
WAITMS(8000)
GETSCREEN
IF_PIXEL_IN(10,100, 1400, 718, 39167)
LCLICK($_return1, $_return2)
WAITMS(100)
ELSE
LCLICK(1292,520)
WAITMS(3000)
LCLICK(522,512)
WAITMS(1000)
LCLICK(1292,520)
END_IF
работает только в не привязанном окне и только непродолжительное время
как выше сказал такое ощущение что забиваеться внутренняя память или кеш какойнить, и время обработки процессором операций увеличиваеться а тайминг продолжает выполнять простые клики не дожидаясь исполнения гетскрина.
-
На первый взгляд, из очевидного, в первом примере проверяется 4 цвета, во втором 1, понятно что найти 4 цвета больше шансов.
А про привязанное окно, тем более браузер, я уже писал, и в справке это есть, там миллион элементов окна, флешки, кнопки, даже фреймы, все что угодно может стать "окном".
Надежный способ это вручную привязать к окну и поводить мышой в искомой области по разным цветам цвет должен менятся в окне редактора, можно и лупой проверить для надежности.
-
как выше сказал такое ощущение что забиваеться внутренняя память или кеш какойнить, и время обработки процессором операций увеличиваеться а тайминг продолжает выполнять простые клики не дожидаясь исполнения гетскрина.
Кликермэн не может не дождаться выполнения гетскрина. Никакие кэши нигде не забиваются даже на самых тормознутых компах, просто замедляется выполнение.
Предположу варианты:
1. Защита приложения тебя "палит", после твоих однообразных тыканей в одни и те же координаты с одинаковым промежутком.
2. Не активное окно игры "засыпает" и перестаёт/замедляет отрисовываться. Иногда сильно замедляется отрисовка вплоть до пропуска больших кусков действия. (сталкивался с таким) при этом проверка на клики может проходить редко или не походить вообще.
Добавить для проверки вывод в лог:
1. HWND окна, его наличие...
2. screenshot после else у поиска.
3. Вывод в лог стадий где мы находимся в скрипте.
Как-то так:
[spoiler]#logfile
LOGCLEAR
WHILE(1)
WAITMS(2000)
LOGWRITE (" ")
LOGWRITE ("hwnd: ", $_hwnd)
GETSCREEN
IF_PIXEL_IN(10,100,1400,718, 39167)
LOGWRITE ("Нашли x/y: ", $_return1, " / ", $_return2)
LCLICK($_return1, $_return2)
WAITMS(100)
ELSE
LOGWRITE ("----- Не нашли! -----")
SCREENSHOTEX(10,100,1400,718, "shot_", 0)
WAITMS(500)
LCLICK(1292,520)
WAITMS(3000)
LCLICK(522,512)
WAITMS(1000)
LCLICK(1292,520)
END_IF
END_CYC
[/spoiler]
попробовать заменить все клики на вывод в лог, может защита ловит клики и блокирует.
посмотреть на расход памяти кликером в диспетчере задач (на всякий случай)
-
не Винт никакой там защиты нет , а вот то что сказал квант про то что надо смотреть что привязалось это да , сейчас посмотрел и действительно все зависит от того что привязал :) буду експериментировать :)