Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: digiTALker on March 24, 2015, 09:33:43 AM
-
В настройках количество повторений единица.
Не смотря на то что цвет точно пропадает из точки поиска, цикл не завершает работу.
GETSCREEN
COLORMODE(7,782,844,822,880)
WHILE(PXL(803,861) ! 8388479)
LCLICK(RND(1234,1504),RND(89,103))
WAIT(RND(1,3))
DBLCLICK(RND(1589,1613),RND(88,112))
WAIT(RND(25,33))
GETSCREEN
COLORMODE(7,782,844,822,880)
END_CYC
-
Ошибок нет, и ты можешь легко проверить пропадает он или нет, путем записи в лог
GETSCREEN
COLORMODE(7,782,844,822,880)
WHILE(PXL(803,861) ! 8388479)
LCLICK(RND(1234,1504),RND(89,103))
WAIT(RND(1,3))
DBLCLICK(RND(1589,1613),RND(88,112))
WAIT(RND(25,33))
GETSCREEN
COLORMODE(7,782,844,822,880)
LOGWRITE ("Цвет в 803,861: ", PXL(803,861))
END_CYC
-
Человек же четко написал "Не смотря на то, что цвет точно пропадает из точки поиска, цикл не завершает работу.".
А какое условие работы цикла!? WHILE(PXL(803,861) ! 8388479)
Ну так раз этот цвет пропал, его нет, то цикл и будет работать. Ставь вместо "!" знак "=", и цикл будет работать пока цвет "точно" не пропадет.
И да , на всякий случай проверяй, что у тебя там на самом деле за цвет.
LOGWRITE ("Цвет в 803,861: ", PXL(803,861))
хотя, если ты утверждаеш, что цвет точно проподает, то походу при старте этот цвет присутствует в точке. следовательно судя по твоему коду, цикл вообще ниразу невыполнится. вобщем неурядица какаято. полюбому какието косяки у тебя с цветом. проверяй, уменьшай колормод.
-
Спасибо всем большое! Жаль что нет фичи ткнуть спасибо и поднять карму на этом форуме. Странно.. А ведь эта мелочь мотивирует и доставляет пусть маленькую но всё же радость людям )
-
! 8388479 - это означает, что когда цвет пропадает из точки поиска цикл только начинает, а не завершает работу.
8388607 - вот такой цвет попробуйте тоже учитывать, зелёный при COLORMODE(7) не всегда сводится к 8388479 или можно попробовать COLORMODE уменьшить по возможности, чтоб был один более точный цвет.
GETSCREEN
COLORMODE(7,782,844,822,880)
WHILE((PXL(803,861) ! 8388479) | (PXL(803,861) ! 8388607))
LCLICK(RND(1234,1504),RND(89,103))
WAIT(RND(1,3))
DBLCLICK(RND(1589,1613),RND(88,112))
WAIT(RND(25,33))
GETSCREEN
COLORMODE(7,782,844,822,880)
END_CYC
А вот родился еще вопрос. Как тогда цикл начинает работать, если я его запускаю при существующей точке?
И колормод 7 это уже семь цветов, на восьмом всё становится уже черно-белое. При просмотре через лупу я имею в нужном участке одноцветный зелёный достаточного размера. А если добавить варианты зелёного, то мне тогда придётся заморачиваться с поиском нужного, а это по идее утяжелит скрипт.
-
А вот родился еще вопрос. Как тогда цикл начинает работать, если я его запускаю при существующей точке?
И колормод 7 это уже семь цветов, на восьмом всё становится уже черно-белое. При просмотре через лупу я имею в нужном участке одноцветный зелёный достаточного размера. А если добавить варианты зелёного, то мне тогда придётся заморачиваться с поиском нужного, а это по идее утяжелит скрипт.
Нет никаких вариантов зелёного. В COLORMODE(7) есть только цвет 8388607, он и должен быть в условии. И по словесному описанию, там действительно должно быть "равно"
WHILE(PXL(803,861) = 8388607)
Вот такое условие
WHILE((PXL(803,861) ! 8388479) | (PXL(803,861) ! 8388607))
безсмысленно. Оно выполняется всегда. Для того чтобы не выполнилось пиксел должен быть равен и 8388479 и 8388607 одновременно! :o
Бонус-проверка
SUB(условие, $a)
IF(($a ! 8388479) | ($a ! 8388607))
LOGWRITE ("Да")
ELSE
LOGWRITE ("Нет")
END_IF
END_SUB
условие(0)
условие(8388479)
условие(8388607)
условие(999)
HALT
-
Нет никаких вариантов зелёного. В COLORMODE(7) есть только цвет 8388607, он и должен быть в условии. И по словесному описанию, там действительно должно быть "равно"
WHILE(PXL(803,861) = 8388607)
Цвет 8388479 я получил используя "лупу" в интерфейсе программы. Другой способ получения цвета мне не известен.
Ну так раз этот цвет пропал, его нет, то цикл и будет работать. Ставь вместо "!" знак "=", и цикл будет работать пока цвет "точно" не пропадет.
И да , на всякий случай проверяй, что у тебя там на самом деле за цвет.
При постановке знака "=" экран игры "залипает" ничего не происходит и не реагирует на нажатия мышки. как только останавливаю скрипт - сразу отпускает. Пробовал оба варианта цвета 8388607 и свой 8388479. Как это не удивительно, на данный момент мой первоначальный скрип пока рабочий, все остальные предложения не дали результата, а у меня осталась проблема с выходом из цикла. Еще подскажите где взять инфу о использовании знаков "!" и "=" может там еще что-то есть? В справке на этот счет тишина.
Бонус-проверка
SUB(условие, $a)
IF(($a ! 8388479) | ($a ! 8388607))
LOGWRITE ("Да")
ELSE
LOGWRITE ("Нет")
END_IF
END_SUB
условие(0)
условие(8388479)
условие(8388607)
условие(999)
HALT
Не понимаю что делает эта проверка, и каков её механизм.
полюбому какието косяки у тебя с цветом. проверяй, уменьшай колормод.
куда еще то уменьшать, итак уже 7ка, дальше только двухцветка
или ты имеешь ввиду под уменьшением не упрощение цвета, а уменьшение значения переменной?
А вообще на самом деле цикл начинает работу независимо от наличия точки, и он же не заканчивает работу независимо от её наличия так же ))
Словно программа просто входит в цикл, а на детали условия ей начхать.
Наверно я что-то на так вам преподношу, отсюда получается сломанный телефон. Прям хоть видео записывай ))
Интересная вещь, если сделать привязку к окну то показывает одни координаты, если без привязки то похоже относительно экрана. В скрипте какие должны быть?
Но это не снимает вопроса почему скрипт запускается, ибо в округе подобного цвета нет всёравно.
-
ДРУГОЙ СПОСОБ ПОЛУЧЕНИЯ ЦВЕТА - сделать скрин в COLORMODE(7) и внимательно посмотреть, что видит кликер, так сказать в масштабе, а не по одному пикселю лупой ловить, для полноты восприятия можно сделать скрины и с другой коррекцией
"!" и "=" знаки неравно и равно, если начнём писать гайды по их интерпритации, то зависнем где-то между арифметикой 1 класс и смыслом жизни.
и должно залипать если цикл неработает, ведь тогда без пауз
GETSCREEN
COLORMODE(7,782,844,822,880)
постоянно крутится.
Если цвет пикселя принимает "якобы нужное" значение, а цикл неостанавливается, то налицо факт вредительства; или цвет модифицируется или изначально опредёлён неверно.
С залипанием мой косяк, почему то с прошлого раза не сохранилась настройка повторения скрипта. Вот он и гонял его до залипания.
LOGWRITE ("öâåò â 803,861: ", PXL(803,861))
LOGSHOW(1)
мне выдал
18:15:36 цвет в 803,861: 8355711
18:23:38 цвет в 803,861: 8355711
18:29:38 цвет в 803,861: 8355711
18:33:48 цвет в 803,861: 8355711
18:35:58 цвет в 803,861: 8355711
18:41:29 цвет в 803,861: 8355711
18:41:40 цвет в 803,861: 8355711
18:42:29 цвет в 803,861: 8355711
18:42:43 цвет в 803,861: 8355711
18:42:50 цвет в 803,861: 8355711
18:46:59 цвет в 803,861: 8355711
18:48:10 цвет в 803,861: 8355711
18:49:49 цвет в 803,861: 8355711
18:50:57 цвет в 803,861: 8355711
-
Час от часу не легче, сохранил скриншот в файл, открыл Гимпом и посмотрел координаты нужной мне точки, они действительно оказались немного другими. Я вставил эти новые координаты и скрипт стал запускаться уже со снаком "=" но выполнял один цикл и вырубался. Я запросил через лог полученный цвет в новой моей точке, но цвет не изменился. Хотя это ничего не изменило. Странно то что в других то точках тойже системы координат все тыкает исправно!
-
Еще подскажите где взять инфу о использовании знаков "!" и "=" может там еще что-то есть? В справке на этот счет тишина.
Основные конструкции. Условие IF.
Не понимаю что делает эта проверка, и каков её механизм.
Тогда пока забудь.
Интересная вещь, если сделать привязку к окну то показывает одни координаты, если без привязки то похоже относительно экрана. В скрипте какие должны быть?
Это открытие Америки получается. Справка - Особенности - Привязка к окну.
С залипанием мой косяк, почему то с прошлого раза не сохранилась настройка повторения скрипта. Вот он и гонял его до залипания.
Нигде не говорится, что должно сохраняться. Этот момент обсуждался не раз. Сохранение добавит ещё больше проблем, т.к. будут запускать уже другой скрипт, забыв сбросить настройку.
И да, пользуются такой функцией только записывальщики. Неужели трудно сделать как положено, с циклом.
Вариантов море.
Раз
GETSCREEN
COLORMODE(7,782,844,822,880)
WHILE(PXL(803,861) ! 8388479)
LCLICK(RND(1234,1504),RND(89,103))
WAIT(RND(1,3))
DBLCLICK(RND(1589,1613),RND(88,112))
WAIT(RND(25,33))
GETSCREEN
COLORMODE(7,782,844,822,880)
END_CYC
HALT
Два
GETSCREEN
COLORMODE(7,782,844,822,880)
IF(PXL(803,861) ! 8388479)
LCLICK(RND(1234,1504),RND(89,103))
WAIT(RND(1,3))
DBLCLICK(RND(1589,1613),RND(88,112))
WAIT(RND(25,33))
ELSE
HALT
END_IF
Три
GETSCREEN
COLORMODE(7,782,844,822,880)
IF(PXL(803,861) = 8388479)
HALT
END_IF
LCLICK(RND(1234,1504),RND(89,103))
WAIT(RND(1,3))
DBLCLICK(RND(1589,1613),RND(88,112))
WAIT(RND(25,33))
И всё. Не нужно ничего выставлять каждый раз.
LOGWRITE ("öâåò â 803,861: ", PXL(803,861))
LOGSHOW(1)
мне выдал
18:15:36 цвет в 803,861: 8355711
18:23:38 цвет в 803,861: 8355711
18:29:38 цвет в 803,861: 8355711
...
А почему так?
Разве не должно быть так?
GETSCREEN
COLORMODE(7,782,844,822,880)
LOGWRITE (" 803,861: ", PXL(803,861))
LOGSHOW(1)
-
Думаю что теперь будет нагляднее. Все предыдущие мои проблемы сводятся к одному - разнице в координатах.
В прикрепленных изибражениях видно что координаты с использованием лупы и без - разные.
Причем когда я использовал лупу, мне приходилось держать её заметно ниже нужной точки чтобы в квадратике отобразилось то что надо. Что важнее при использовании лупы? То что отображается в квадрате превью или то место где находится курсор фактически?
У меня превью лупы работает только если включен режим прозрачности.
На скринах не видно моего курсора, кстати он свой у игры, и пошукав по форуму, я понял что это важно упомянуть.
Область в которую успешно тыкает кликерман изображена прямоугольниками и для её определения я не пользовался лупой.
Я пробовал вставить координаты для определения наличия зеленой точки и без использования лупы (пришлось искать на ощупь, так как курсор тоже пришлось двигать ниже.
Где можно узнать сопоставление кодов цветов, и почему мне кликерман говорит что цвет 8388479 и это видно на скрине, но как заметил Vint такого цвета в этом диапазоне нет в принципе.
Спасибо за три варианта моего скрипта, но у меня все равно упирается получается в определение корректного цвета.
Вот что еще я обраружил, если использовать лупу, то изображение в квадрате превью мерцает, то есть то нет. Я подумал что это просто нюанс её работы, но теперь думаю что оно и правду там мерцает, потому как скрипт с использованием знака "=" в условии иногда запускается, а потом проделав несколько циклов, отрубается раньше времени. Т.е. ему то удовлетворяют условия чтобы выполняться, то вдруг нет. Думаю что иногда getscreen попадает в одно из таких "мерцаний" и естественно что там не обнаруживается моего цвета. Могла ли быть это защита от разработчиков игры?! Зная их, еще как!
Если мои домыслы верны, то как тогда получать достоверную картину, делать выборку из скриншотов и анализировать нет ли в одном из них?
-
Ты в оконном режиме все это делаешь? Выключи его и проблемы исчезнут.
-
Где можно узнать сопоставление кодов цветов, и почему мне кликерман говорит что цвет 8388479 и это видно на скрине, но как заметил Vint такого цвета в этом диапазоне нет в принципе.
С цветом, это я накосячил, в списке не просмотрел до конца. Цвет правильный.
По поводу остального, всё было бы проще, если бы первым сообщением в первом посту было "...привязался я к окну...".
http://crapware.aidf.org/forum/index.php?topic=1508.0
пункт № 1
Нужно подходить индивидуально. Целиться, опытом проб и ошибок.
У меня, например, давно, во времена 4,7-4.8 никакого смещения курсора от лупы в режиме привязки небыло. Всё было чётко. Позже появилось смещение в мозиле, после очередного её обновления, и только в ней. Смещалось вниз на высоту строки заголовка, кажется 30 пикс.
Привязкой давно не пользуюсь и система с компом поменялась за это время. Сейчас смещение ВЕЗДЕ на 50 пикс. + мигание некоторых окон. Даже в проводнике и блокноте смещение, хоть и не мигает. В Notepad++ при этом панель с иконками в режиме морзянки.
Короче, совсем всё плохо стало. Думал из-за более новой версии кликермэна, но нет, все вплоть до 4.7 (4.8, 4.9, 4.11) выдают то же смещение. Значит проблема в винде или её взаимодействии с кликером.
Привязка маздай.
-
Ты в оконном режиме все это делаешь? Выключи его и проблемы исчезнут.
Если работать в фулл скрине, то тогда совсем грусно становится. Я лучше буду пытаться адаптировать скрипт под мерцание, например снимать три скрина подряд, и если хоть в одном есть нужная точка то условие будет выполнено например.
А чтобы работать без привязки, это надо второй монитор использовать, а это только когда вернусь домой (