Author Topic: Что не так?  (Read 2051 times)

0 Members and 1 Guest are viewing this topic.

tzg

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Что не так?
« on: September 23, 2018, 12:14:53 PM »
Добрый день!
Помогите, пожалуйста с созданием кликера для игры.
Смысл таков. Первоначально кликер должен нажимать на кнопку "Добывать", ждать 50 секунд, по прошествии 50 секунд появляются два кликабельных слова "Продолжить" и "Погрузить". кликер должен выбирать "Погрузить", и затем цикл повторяется. проблема в том, что эти кликабельные слова рандомно меняются местами, соответственно невозможно тупо задать координаты по клику через 50 секунд, а нужно определение местонахождения кнопки "Погрузить".

Что сделано:
1) с помощью ножниц вырезан фрагмент слова "Погрузить" и сохранен через paint в папку projects с расширением ".bmp". в эту же папку сохранен сценарий.
2) написан следующий сценарий

LCLICK (RND (760,840), RND (90,100))  // левый клик по рандомному пикселю в области надписи "Добывать"
WAIT (50)  // ждем 50 секунд
GETSCREEN  //сканирование экрана на наличие следующего условия
IF_PICTURE_IN (840,90, 780,100, "Погрузить.bmp",)   //в указанных координатах ищется сохраненный фрагмент надписи "Погрузить"
   LCLICK ($_return1, $_return2)   // левый клик по найденному фрагменту
END_IF     // завершение условия


Проблема заключается в том, что кликер делает только первые две строки. Прошу строго не судить, так как полный дилетант в этом =) Всем добра)

tzg

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Re: Что не так?
« Reply #1 on: September 23, 2018, 01:25:06 PM »
IF_PICTURE_IN (840,90, 780,100, "Погрузить.bmp",)
1. неверно заданны координаты поиска по горизонтали
2. лишняя запятая, либо задавайте параметры игнорирования цвета и процента совпадения, либо её быть не должно.
3.картинка должна быть 24 bit, а из того откуда вырезали вы - это не следует автоматически.


LCLICK (RND (760,840), RND (92,98)) 
WAIT (50) 
GETSCREEN 
IF_PICTURE_IN (750,81, 922,109, "Погрузить.bmp")
   LCLICK ($_return1, $_return2) 
END_IF

Спасибо! Ошибки исправил. файл картинки 24 бит. размер 50 на 10 пикселей

И все равно идет выполнение первой строчки, затем второй, затем снова первой и так далее.

tzg

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Re: Что не так?
« Reply #2 on: September 23, 2018, 02:22:18 PM »
картинка Погрузить.bmp не соответствует тому что на мониторе на 100%
или не верны координаты поиска
или предварительно картинка была сжата.
разработчик прикололся и  в новой версии Clickermann сделал по умолчанию сохранение в формате .jpg
или картинка на экране постоянно меняется из за сглаживания текстур, а вы этого не замечаете.
и т.д. и т.п.

Понял, спасибо большое! пробую другим способом сделать. через цвет пикселя, но получается то же самое, снова работают только первые 2 строки.

Идея такая, что если в конкретных координатах цвет пикселя такой, то кликать по указанным координатам, если не такой цвет, то по другим координатам кликать

LCLICK (RND (760,851), RND (176,182))     
WAIT (50)
GETSCREEN 
IF_PIXEL_IN(879,174, 7614854)              // указываю точное местоположение и цвет пикселя. если цвет и коры совпадают,то
   LCLICK(RND (866,907), RND (175,182))   // кликаем по этим корам
ELSE                   // если не совпадают, то
      LCLICK(RND (792,833), RND (174,180))      // кликаем по этим
END_IF

tzg

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Re: Что не так?
« Reply #3 on: September 23, 2018, 02:55:02 PM »
IF_PIXEL_IN(879,174, 7614854) 
посмотрите описание синтаксиса этой функции в справке, или возьмите готовую конструкцию в меню шаблонов.

я нашел вот такую запись  IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255), но здесь указывается, как я понимаю, диапазон. а как тогда записать цвет на конкретном одном пикселе?

tzg

  • Зашел в гости
  • *
  • Posts: 5
    • View Profile
Re: Что не так?
« Reply #4 on: September 23, 2018, 03:28:43 PM »
IF_PIXEL_IN(879,174, 7614854) 
посмотрите описание синтаксиса этой функции в справке, или возьмите готовую конструкцию в меню шаблонов.


LCLICK (RND (760,851), RND (176,182))
WAIT (26)
GETSCREEN(678,152,929,187)
IF_PIXEL_IN (878, 171, 881, 174, 7614854)
   LCLICK(808,179)
else
   lclick(881,179)
END_IF