Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Archangel2018 on June 28, 2018, 07:33:56 PM
-
Добрый день, прошу вашей помощи так как не могу понять в чем может быть проблема. Вот есть не большой скрипт довольно простой, когда он находит зеленую стрелку по Координатам то нажимает кнопку Сохранить, а когда по координатам красная стрелка то должен искать дальше пока не будет на этой точке зеленой стрелки вверх. Есть рисунок и скрипт. Помогите пожалуйста.
getscreen
lclick(854,593) //Точка Upgrade ищем стрелку зеленую
WAITMS(600)
$play=pxl(1093,445) //Точка зеленой стрелки вверх
if($play=3469154) //Цвет стрелки вверх
WAITMS(1000)
lclick(993,590) //SaveNew Сохранаем
end_if
WAITMS(600)
getscreen
$play=pxl(1093,455) //Точка красной стрелки вниз
if($play=1190354) // Цвет красной стрелки вниз
lclick(854,593) //Нажимаем Upgrade
end_if
-
Во первых...
getscreen
lclick(854,593) //Точка Upgrade ищем стрелку зеленую
Зачем ты делаешь скрин и тут же кликаешь там куда-то? getscreen только делает скрин и помещает его в буфер для анализа, но эта команда ничего не анализирует. Получается, что ты делаешь скрин экрана для анализа и тут же делаешь там клик куда-то. То есть анализировать ты будешь экран, который был до клика?
-
Ну я так понял что сначала идет анализ экрана потом нажимаю кнопку при которой появляется стрелка и он начинает искать. Или что-то не так?я просто новый в этом и пока еще не особо разобрался.
-
Так... Ты хочешь готовое решение, или чтоб тебе помогли разобраться?
-
Ок - в другой раз поговорим тогда )) Пошел с дочкой мультик смотреть ))
-
getscreen(1093,455,1093,455)
if(pxl(1093,445)=3469154) //Цвет стрелки вверх Точка зеленой стрелки вверх
lclick(993,590) //SaveNew Сохранаем
WAITMS(1000)
ELSE
lclick(854,593) //Нажимаем Upgrade
WAITMS(1000)
end_if
Что-то я не понял что вы имели введу в getscreen(1093,455,1093,455). Я если честно хотел бы что бы мне помогли с решением моего скрипта. Простите за наглость.
-
Что-то я не понял что вы имели введу в getscreen(1093,455,1093,455). Я если честно хотел бы что бы мне помогли с решением моего скрипта. Простите за наглость.
Делает скрин в координатах - 1093,455,1093,455
-
Тебе же в этих координатах нужно инфу шуршать. Просто GETSCREEN делает скрин всего экрана, а это скрин определенной части экрана. В данном случае той части, в которой тебе стрелки искать надо.
-
getscreen
if(pxl(1093,445)=3469154) //Цвет стрелки вверх Точка зеленой стрелки вверх
lclick(993,590) //SaveNew Сохранаем
WAITMS(1000)
ELSE
lclick(854,593) //Нажимаем Upgrade
WAITMS(1000)
end_if
В таком случае он работает и находит стрелку с зеленым цветом там где мне нужно, большое спасибо. Во так все работает =)))
-
Следующая команда - if(pxl(1093,445)=3469154) Иными словами - если(цвет пикселя, который находится в координатах(1093,445)равен3469154) Как раз эта команда анализирует тот скрин, который сделан при помощи GETSCREEN.
-
Только у меня вопрос к Кирилу. Я никогда не пользовался скрином в определенных координатах... Так вот у меня вопрос - а координаты поиска на таком скрине не меняются?
-
Сорри за частые сообщения... Просто пока с дочкой мультик смотрели, я выпил ) Vint - Oraven, я совсем не обижусь, если поудаляете лишнее. Поболтать охота...)
-
Ну я так понял что да, сначала он сканирует потом ищет точку и цвет. А дальше делает клики туда куда нужно)
-
Ну я так понял что да, сначала он сканирует потом ищет точку и цвет. А дальше делает клики туда куда нужно)
Программирование лишь на малую часть % состоит из знания языка программирования )) И эту малую часть на 90% восполняет справка в кликермане (если вопрос касается программирования в кликере). бОльшую часть программирования составляет ЛОГИКА. И логика говорит, что сканировать экран и искать на нем информацию нужно тогда, когда экран в том состоянии, в котором нужно искать на нем информацию. А ты сначала сканируешь его, потом кликаешь (изменяешь информацию на экране), а потом пытаешься найти что-то на том экране, который был до клика ))
-
Вот уважаемый Кирил нам предложил:
getscreen(1093,455,1093,455) // Сделать скрин в нужных координатах
if(pxl(1093,445)=3469154) // Проанализировать этот скрин и если пиксель с заданным цветом найден, то (тут правда по логике координаты должны измениться, так как мы ищем совпадение уже не на скрине, равному по размерам экрану...)
lclick(993,590) // кликаем, куда нужно
WAITMS(1000) // Потом ждем секунду
ELSE // А если не найден
lclick(854,593) // То кликаем туда, куда нужно, когда цвет не найден
WAITMS(1000) // Потом ждем секунду
end_if
// Далее скрипт вернется к первой строке
В полне себе логичное решение.
-
Только советую в конце скрипта добавить команду - WAITMS(50), если скрипт у тебя работает по кругу. Это для разгрузки процессора.
-
Ну я так понял что да, сначала он сканирует потом ищет точку и цвет. А дальше делает клики туда куда нужно)
Программирование лишь на малую часть % состоит из знания языка программирования )) И эту малую часть на 90% восполняет справка в кликермане (если вопрос касается программирования в кликере). бОльшую часть программирования составляет ЛОГИКА. И логика говорит, что сканировать экран и искать на нем информацию нужно тогда, когда экран в том состоянии, в котором нужно искать на нем информацию. А ты сначала сканируешь его, потом кликаешь (изменяешь информацию на экране), а потом пытаешься найти что-то на том экране, который был до клика ))
Скажу честно бро, я думаю что он сначала сканирует экран и ищет стрелку зеленую если ее нету то нажимает кнопку и так до тех пор пока на точке которая указанная не будет зеленая стрелка)
-
Ну я так понял что да, сначала он сканирует потом ищет точку и цвет. А дальше делает клики туда куда нужно)
Программирование лишь на малую часть % состоит из знания языка программирования )) И эту малую часть на 90% восполняет справка в кликермане (если вопрос касается программирования в кликере). бОльшую часть программирования составляет ЛОГИКА. И логика говорит, что сканировать экран и искать на нем информацию нужно тогда, когда экран в том состоянии, в котором нужно искать на нем информацию. А ты сначала сканируешь его, потом кликаешь (изменяешь информацию на экране), а потом пытаешься найти что-то на том экране, который был до клика ))
Скажу честно бро, я думаю что он сначала сканирует экран и ищет стрелку зеленую если ее нету то нажимает кнопку и так до тех пор пока на точке которая указанная не будет зеленая стрелка)
В том варианте, который предложил Kiril, он сначала сканирует экран и ищет пиксель с цветом 3469154 (Я уж хз - что это там у тебя. Я говорю по факту.). Потом поступает, исходя из возвращающейся информации. 1 - если пиксел с таким цветом найден, то lclick(993,590). 2 - если пиксел с таким цветом НЕ найден, то lclick(854,593). В обоих вариантах, после клика, ожидание, равное одной секунде и потом скрипт начинает заново.
И WAITMS(50) там в конце скрипта не нужно (у тебя по любому ожидание в секунду получается в цикле). Это я вчера по пьяни не понял )))))
-
...
И WAITMS(50) там в конце скрипта не нужно (у тебя по любому ожидание в секунду получается в цикле). Это я вчера по пьяни не понял )))))
По пьяни то как раз правильно было сказано)). Равные задержки WAITMS(1000) в блоках IF и ELSE - это не логично, раз уж разговор про логику. А одна общая задержка поле всей конструкции IF_ELSE - это нормально.
Зачем там вообще блок ELSE? Автор темы логичнее сделал - два блока IF, но лучше сделать SWITCH($play).
Куда делось условие поиска красного цвета 1190354? У вас получается, что кликер будет кликать всегда пока не появится зеленый пиксел. Где логика? Окно игры может быть свернуто, и тогда кликер у вас будет дубасить в других открытых окнах или на рабочем столе. По дефолту бот не должен никуда кликать. Клик только по событию, иначе бан светит. Логично было бы предложить рандомную задержку.
Переменная $play была как то по крысиному упразднена, ТЗ переврано. Хрень короче.
-
...
И WAITMS(50) там в конце скрипта не нужно (у тебя по любому ожидание в секунду получается в цикле). Это я вчера по пьяни не понял )))))
По пьяни то как раз правильно было сказано)). Равные задержки WAITMS(1000) в блоках IF и ELSE - это не логично, раз уж разговор про логику. А одна общая задержка поле всей конструкции IF_ELSE - это нормально.
Зачем там вообще блок ELSE? Автор темы логичнее сделал - два блока IF, но лучше сделать SWITCH($play).
Куда делось условие поиска красного цвета 1190354? У вас получается, что кликер будет кликать всегда пока не появится зеленый пиксел. Где логика? Окно игры может быть свернуто, и тогда кликер у вас будет дубасить в других открытых окнах или на рабочем столе. По дефолту бот не должен никуда кликать. Клик только по событию, иначе бан светит. Логично было бы предложить рандомную задержку.
Переменная $play была как то по крысиному упразднена, ТЗ переврано. Хрень короче.
а как через SWITCH сделать?
-
а как через SWITCH сделать?
GETSCREEN(1093,455,1093,455)
$play = PXL(1093,445) //Точка зеленой и красной стрелок
SWITCH($play)
CASE(3469154)
LCLICK(993,590) //SaveNew Сохранаем
CASE(1190354)
LCLICK(854,593) //Нажимаем Upgrade
DEFAULT
// случай по умолчанию (если действия по умолчанию нет, то блок DEFAULT можно не писать)
END_SWITCH
WAITMS(RND(50,500)) // одна общая рандомная задержка, если в блоках CASE(3469154) и CASE(1190354) не предусмотрены различные прерсональные задержки
-
Я вернулся с храма. Ща выпью и распишу тебе скрипт на два клика, со всеми возможными циклами и еще ini прикручу до кучи ;D
Пы.Сы. Мне про координаты, при ограниченном скрине, так никто и не ответил. Но все упорно скринят в определенных координатах...
-
Пы.Сы. Мне про координаты, при ограниченном скрине, так никто и не ответил. Но все упорно скринят в определенных координатах...
Ты с какой луны свалился? Координаты глобальные, от верхнего левого угла экрана. Уже бы сам проверил...
-
Всем большое спасибо но самый лучший способ это вот)
getscreen // Сделать скрин в нужных координатах
if(pxl(1093,445)=3469154) // Проанализировать этот скрин и если пиксель с заданным цветом найден, то (тут правда по логике координаты должны измениться, так как мы ищем совпадение уже не на скрине, равному по размерам экрану...)
lclick(993,590) // кликаем, куда нужно
WAITMS(1000) // Потом ждем секунду
ELSE // А если не найден
lclick(854,593) // То кликаем туда, куда нужно, когда цвет не найден
WAITMS(1000) // Потом ждем секунду
end_if
// Далее скрипт вернется к первой строке
-
Всем большое спасибо но самый лучший способ это вот)
getscreen // Сделать скрин в нужных координатах
if(pxl(1093,445)=3469154) // Проанализировать этот скрин и если пиксель с заданным цветом найден, то (тут правда по логике координаты должны измениться, так как мы ищем совпадение уже не на скрине, равному по размерам экрану...)
lclick(993,590) // кликаем, куда нужно
WAITMS(1000) // Потом ждем секунду
ELSE // А если не найден
lclick(854,593) // То кликаем туда, куда нужно, когда цвет не найден
WAITMS(1000) // Потом ждем секунду
end_if
// Далее скрипт вернется к первой строке
Достойный выбор)
-
Всем большое спасибо но самый лучший способ это вот)
getscreen // Сделать скрин в нужных координатах
if(pxl(1093,445)=3469154) // Проанализировать этот скрин и если пиксель с заданным цветом найден, то (тут правда по логике координаты должны измениться, так как мы ищем совпадение уже не на скрине, равному по размерам экрану...)
lclick(993,590) // кликаем, куда нужно
WAITMS(1000) // Потом ждем секунду
ELSE // А если не найден
lclick(854,593) // То кликаем туда, куда нужно, когда цвет не найден
WAITMS(1000) // Потом ждем секунду
end_if
// Далее скрипт вернется к первой строке
Нет! Давай разберемся со свитчем и с ини-файлами!
-
Воздух пинать будем? :)
-
Воздух пинать будем? :)
:)