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

Основной раздел => Общие вопросы => Topic started by: Archangel2018 on June 28, 2018, 07:33:56 PM

Title: Помогите пожалуйста со скриптом
Post 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
Title: Re: Помогите пожалуйста со скриптом
Post by: Hito on June 28, 2018, 08:08:20 PM
Во первых...

getscreen
lclick(854,593)  //Точка Upgrade ищем стрелку зеленую

Зачем ты делаешь скрин и тут же кликаешь там куда-то?  getscreen только делает скрин и помещает его в буфер для анализа, но эта команда ничего не анализирует. Получается, что ты делаешь скрин экрана для анализа и тут же делаешь там клик куда-то. То есть анализировать ты будешь экран, который был до клика?
Title: Re: Помогите пожалуйста со скриптом
Post by: Archangel2018 on June 28, 2018, 08:11:30 PM
Ну я так понял что сначала идет анализ экрана потом нажимаю кнопку при которой появляется стрелка и он начинает искать. Или что-то не так?я просто новый в этом и пока еще не особо разобрался.
Title: Re: Помогите пожалуйста со скриптом
Post by: Hito on June 28, 2018, 08:12:15 PM
Так... Ты хочешь готовое решение, или чтоб тебе помогли разобраться?
Title: Re: Помогите пожалуйста со скриптом
Post by: Hito on June 28, 2018, 08:24:24 PM
Ок - в другой раз поговорим тогда )) Пошел с дочкой мультик смотреть ))
Title: Re: Помогите пожалуйста со скриптом
Post by: Archangel2018 on June 28, 2018, 10:11:58 PM
Code: (clickermann) [Select]
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). Я если честно хотел бы что бы мне помогли с решением моего скрипта. Простите за наглость.
Title: Re: Помогите пожалуйста со скриптом
Post by: Hito on June 28, 2018, 10:14:48 PM
Что-то я не понял что вы имели введу в getscreen(1093,455,1093,455). Я если честно хотел бы что бы мне помогли с решением моего скрипта. Простите за наглость.
Делает скрин в координатах - 1093,455,1093,455
Title: Re: Помогите пожалуйста со скриптом
Post by: Hito on June 28, 2018, 10:17:14 PM
Тебе же в этих координатах нужно инфу шуршать. Просто GETSCREEN делает скрин всего экрана, а это скрин определенной части экрана. В данном случае той части, в которой тебе стрелки искать надо.
Title: Re: Помогите пожалуйста со скриптом
Post by: Archangel2018 on June 28, 2018, 10:19:25 PM
getscreen
if(pxl(1093,445)=3469154)    //Цвет стрелки вверх Точка зеленой стрелки вверх   
   lclick(993,590)      //SaveNew Сохранаем
   WAITMS(1000)
ELSE
   lclick(854,593)        //Нажимаем Upgrade
   WAITMS(1000)     
end_if

В таком случае он работает и находит стрелку с зеленым цветом там где мне нужно, большое спасибо. Во так все работает =)))
Title: Re: Помогите пожалуйста со скриптом
Post by: Hito on June 28, 2018, 10:20:45 PM
Следующая команда - if(pxl(1093,445)=3469154) Иными словами - если(цвет пикселя, который находится в координатах(1093,445)равен3469154) Как раз эта команда анализирует тот скрин, который сделан при помощи GETSCREEN.
Title: Re: Помогите пожалуйста со скриптом
Post by: Hito on June 28, 2018, 10:23:55 PM
Только у меня вопрос к Кирилу. Я никогда не пользовался скрином в определенных координатах... Так вот у меня вопрос - а координаты поиска на таком скрине не меняются?
Title: Re: Помогите пожалуйста со скриптом
Post by: Hito on June 28, 2018, 10:28:56 PM
Сорри за частые сообщения... Просто пока с дочкой мультик смотрели, я выпил ) Vint - Oraven, я совсем не обижусь, если поудаляете лишнее. Поболтать охота...)
Title: Re: Помогите пожалуйста со скриптом
Post by: Archangel2018 on June 28, 2018, 11:56:00 PM
Ну я так понял что да, сначала он сканирует потом ищет точку и цвет. А дальше делает клики туда куда нужно)
Title: Re: Помогите пожалуйста со скриптом
Post by: Hito on June 29, 2018, 12:03:16 AM
Ну я так понял что да, сначала он сканирует потом ищет точку и цвет. А дальше делает клики туда куда нужно)
Программирование лишь на малую часть % состоит из знания языка программирования )) И эту малую часть на 90% восполняет справка в кликермане (если вопрос касается программирования в кликере). бОльшую часть программирования составляет ЛОГИКА. И логика говорит, что сканировать экран и искать на нем информацию нужно тогда, когда экран в том состоянии, в котором нужно искать на нем информацию. А ты сначала сканируешь его, потом кликаешь (изменяешь информацию на экране), а потом пытаешься найти что-то на том экране, который был до клика ))
Title: Re: Помогите пожалуйста со скриптом
Post by: Hito on June 29, 2018, 12:08:48 AM
Вот уважаемый Кирил нам предложил:

Code: (clickermann) [Select]
getscreen(1093,455,1093,455) // Сделать скрин в нужных координатах
if(pxl(1093,445)=3469154)    // Проанализировать этот скрин и если пиксель с заданным цветом найден, то (тут правда по логике координаты должны измениться, так как мы ищем совпадение уже не на скрине, равному по размерам экрану...) 
   lclick(993,590)      // кликаем, куда нужно
   WAITMS(1000)     // Потом ждем секунду
ELSE                       // А если не найден
   lclick(854,593)     // То кликаем туда, куда нужно, когда цвет не найден
   WAITMS(1000)     // Потом ждем секунду
end_if
// Далее скрипт вернется к первой строке

В полне себе логичное решение.
Title: Re: Помогите пожалуйста со скриптом
Post by: Hito on June 29, 2018, 12:14:46 AM
Только советую в конце скрипта добавить команду - WAITMS(50), если скрипт у тебя работает по кругу. Это для разгрузки процессора.
Title: Re: Помогите пожалуйста со скриптом
Post by: Archangel2018 on June 29, 2018, 09:51:18 AM
Ну я так понял что да, сначала он сканирует потом ищет точку и цвет. А дальше делает клики туда куда нужно)
Программирование лишь на малую часть % состоит из знания языка программирования )) И эту малую часть на 90% восполняет справка в кликермане (если вопрос касается программирования в кликере). бОльшую часть программирования составляет ЛОГИКА. И логика говорит, что сканировать экран и искать на нем информацию нужно тогда, когда экран в том состоянии, в котором нужно искать на нем информацию. А ты сначала сканируешь его, потом кликаешь (изменяешь информацию на экране), а потом пытаешься найти что-то на том экране, который был до клика ))

Скажу честно бро, я думаю что он сначала сканирует экран и ищет стрелку зеленую если ее нету то нажимает кнопку  и так до тех пор пока на точке которая указанная не будет зеленая стрелка)
Title: Re: Помогите пожалуйста со скриптом
Post by: Hito on June 29, 2018, 12:01:33 PM
Ну я так понял что да, сначала он сканирует потом ищет точку и цвет. А дальше делает клики туда куда нужно)
Программирование лишь на малую часть % состоит из знания языка программирования )) И эту малую часть на 90% восполняет справка в кликермане (если вопрос касается программирования в кликере). бОльшую часть программирования составляет ЛОГИКА. И логика говорит, что сканировать экран и искать на нем информацию нужно тогда, когда экран в том состоянии, в котором нужно искать на нем информацию. А ты сначала сканируешь его, потом кликаешь (изменяешь информацию на экране), а потом пытаешься найти что-то на том экране, который был до клика ))

Скажу честно бро, я думаю что он сначала сканирует экран и ищет стрелку зеленую если ее нету то нажимает кнопку  и так до тех пор пока на точке которая указанная не будет зеленая стрелка)
В том варианте, который предложил Kiril,  он сначала сканирует экран и ищет пиксель с цветом 3469154 (Я уж хз - что это там у тебя. Я говорю по факту.). Потом поступает, исходя из возвращающейся информации. 1 - если пиксел с таким цветом найден, то lclick(993,590). 2 - если пиксел с таким цветом НЕ найден, то lclick(854,593). В обоих вариантах, после клика, ожидание, равное одной секунде и потом скрипт начинает заново.

И WAITMS(50) там в конце скрипта не нужно (у тебя по любому ожидание в секунду получается в цикле). Это я вчера по пьяни не понял )))))
Title: Re: Помогите пожалуйста со скриптом
Post by: Атеист on June 29, 2018, 06:27:54 PM
...
И WAITMS(50) там в конце скрипта не нужно (у тебя по любому ожидание в секунду получается в цикле). Это я вчера по пьяни не понял )))))

По пьяни то как раз правильно было сказано)). Равные задержки WAITMS(1000) в блоках IF и ELSE - это не логично, раз уж разговор про логику. А одна общая задержка поле всей конструкции IF_ELSE - это нормально.
Зачем там вообще блок ELSE? Автор темы логичнее сделал - два блока IF, но лучше сделать SWITCH($play).
Куда делось условие поиска красного цвета 1190354? У вас получается, что кликер будет кликать всегда пока не появится зеленый пиксел. Где логика? Окно игры может быть свернуто, и тогда кликер у вас будет дубасить в других открытых окнах или на рабочем столе. По дефолту бот не должен никуда кликать. Клик только по событию, иначе бан светит. Логично было бы предложить рандомную задержку.
Переменная $play была как то по крысиному упразднена, ТЗ переврано. Хрень короче.
Title: Re: Помогите пожалуйста со скриптом
Post by: Archangel2018 on June 29, 2018, 06:50:25 PM
...
И WAITMS(50) там в конце скрипта не нужно (у тебя по любому ожидание в секунду получается в цикле). Это я вчера по пьяни не понял )))))

По пьяни то как раз правильно было сказано)). Равные задержки WAITMS(1000) в блоках IF и ELSE - это не логично, раз уж разговор про логику. А одна общая задержка поле всей конструкции IF_ELSE - это нормально.
Зачем там вообще блок ELSE? Автор темы логичнее сделал - два блока IF, но лучше сделать SWITCH($play).
Куда делось условие поиска красного цвета 1190354? У вас получается, что кликер будет кликать всегда пока не появится зеленый пиксел. Где логика? Окно игры может быть свернуто, и тогда кликер у вас будет дубасить в других открытых окнах или на рабочем столе. По дефолту бот не должен никуда кликать. Клик только по событию, иначе бан светит. Логично было бы предложить рандомную задержку.
Переменная $play была как то по крысиному упразднена, ТЗ переврано. Хрень короче.

а как через SWITCH сделать?
Title: Re: Помогите пожалуйста со скриптом
Post by: Атеист on June 29, 2018, 07:31:00 PM
а как через SWITCH сделать?
Code: (clickermann) [Select]
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) не предусмотрены различные прерсональные задержки
Title: Re: Помогите пожалуйста со скриптом
Post by: Hito on June 29, 2018, 08:18:49 PM
Я вернулся с храма. Ща выпью и распишу тебе скрипт на два клика, со всеми возможными циклами и еще ini прикручу до кучи  ;D

Пы.Сы. Мне про координаты, при ограниченном скрине, так никто и не ответил. Но все упорно скринят в определенных координатах...
Title: Re: Помогите пожалуйста со скриптом
Post by: open_78 on June 29, 2018, 09:33:55 PM
Пы.Сы. Мне про координаты, при ограниченном скрине, так никто и не ответил. Но все упорно скринят в определенных координатах...
Ты с какой луны свалился? Координаты глобальные, от верхнего левого угла экрана. Уже бы сам проверил...
Title: Re: Помогите пожалуйста со скриптом
Post by: Archangel2018 on June 29, 2018, 11:17:49 PM
Всем большое спасибо но самый лучший способ это вот)

Code: [Select]
getscreen   // Сделать скрин в нужных координатах
    if(pxl(1093,445)=3469154)    // Проанализировать этот скрин и если пиксель с заданным цветом найден, то (тут правда по логике координаты должны измениться, так как мы ищем совпадение уже не на скрине, равному по размерам экрану...) 
       lclick(993,590)      // кликаем, куда нужно
       WAITMS(1000)     // Потом ждем секунду
    ELSE                       // А если не найден
       lclick(854,593)     // То кликаем туда, куда нужно, когда цвет не найден
       WAITMS(1000)     // Потом ждем секунду
    end_if
    // Далее скрипт вернется к первой строке
Title: Re: Помогите пожалуйста со скриптом
Post by: Атеист on June 30, 2018, 09:07:20 AM
Всем большое спасибо но самый лучший способ это вот)

Code: [Select]
getscreen   // Сделать скрин в нужных координатах
    if(pxl(1093,445)=3469154)    // Проанализировать этот скрин и если пиксель с заданным цветом найден, то (тут правда по логике координаты должны измениться, так как мы ищем совпадение уже не на скрине, равному по размерам экрану...) 
       lclick(993,590)      // кликаем, куда нужно
       WAITMS(1000)     // Потом ждем секунду
    ELSE                       // А если не найден
       lclick(854,593)     // То кликаем туда, куда нужно, когда цвет не найден
       WAITMS(1000)     // Потом ждем секунду
    end_if
    // Далее скрипт вернется к первой строке

Достойный выбор)
Title: Re: Помогите пожалуйста со скриптом
Post by: Hito on June 30, 2018, 09:22:52 PM
Всем большое спасибо но самый лучший способ это вот)

Code: [Select]
getscreen   // Сделать скрин в нужных координатах
    if(pxl(1093,445)=3469154)    // Проанализировать этот скрин и если пиксель с заданным цветом найден, то (тут правда по логике координаты должны измениться, так как мы ищем совпадение уже не на скрине, равному по размерам экрану...) 
       lclick(993,590)      // кликаем, куда нужно
       WAITMS(1000)     // Потом ждем секунду
    ELSE                       // А если не найден
       lclick(854,593)     // То кликаем туда, куда нужно, когда цвет не найден
       WAITMS(1000)     // Потом ждем секунду
    end_if
    // Далее скрипт вернется к первой строке
Нет! Давай разберемся со свитчем и с ини-файлами!
Title: Re: Помогите пожалуйста со скриптом
Post by: Атеист on June 30, 2018, 09:39:52 PM
Воздух пинать будем? :)
Title: Re: Помогите пожалуйста со скриптом
Post by: Hito on June 30, 2018, 10:49:26 PM
Воздух пинать будем? :)
:)