Author Topic: Не работает повторный поиск картинки  (Read 6174 times)

0 Members and 1 Guest are viewing this topic.

biba777

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Всем привет. в чем суть вопроса. есть код
Code: [Select]
LOGWRITE ("Сообщение")
getscreen (0, 0, 1121, 1034)
IF_PICTURE_IN (197,234, 1100, 800, "file1.bmp", -1, 50)
   LOGWRITE ("Сообщение 1")
   dblclick($_return1, $_return2)
   LOGWRITE ("Сообщение 2",$_return1, " ", $_return2)
END_IF
LOGWRITE ("Сообщение 3")
END_CYC

первичный поиск картинки происходит корректно и двойной клик срабатывает. Но потом какая-то ерунда происходит, кликер ходит просто по логам "Сообщение 1" и "Сообщение 3", "Сообщение 2" и координаты новой картинки, но не кликает почему-то по ней. Что-то явно элементарное упускаю, прошу умелых пользователей помочь
« Last Edit: March 26, 2023, 11:25:18 PM by biba777 »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Не работает повторный поиск картинки
« Reply #1 on: March 27, 2023, 09:17:35 AM »
Что за END_CYC ?

Может программа не успевает реагировать. Сделай более "медленный" двойной клик. Просто два клика с задержкой между ними.
В редких случаях и одиночные клики требуют более протяжного нажатия, особенно при тупости приложения. LDOWN+WAITMS+LUP
« Last Edit: March 27, 2023, 09:29:51 AM by Vint »


biba777

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Не работает повторный поиск картинки
« Reply #2 on: March 27, 2023, 12:09:33 PM »
Что за END_CYC ?

Может программа не успевает реагировать. Сделай более "медленный" двойной клик. Просто два клика с задержкой между ними.
В редких случаях и одиночные клики требуют более протяжного нажатия, особенно при тупости приложения. LDOWN+WAITMS+LUP
Спасибо за ответ. END_CYC выпилил, не знаю как сюда попало. Одиночные клики левой мыши не подходят, нужен либо даблклик, либо левый клик + перевод курсора в определенный участок экрана и клик там (ни то ни то не срабатывает более 1 раза).
Как происходит сейчас
Code: [Select]
waitms(1000)

LOGWRITE ("Сообщение")
getscreen ()
IF_PICTURE_IN (197,234, 1100, 800, "file3.bmp", -1, 50)
   LOGWRITE ("Сообщение 1")
   move($_return1, $_return2)
   waitms(1000)
   dblclick($_return1, $_return2)
   waitms(1000)
   LOGWRITE ("Сообщение 2",$_return1, " ", $_return2)
END_IF
LOGWRITE ("Сообщение 3")
в первый раз, когда находит в области картинку - делается даблклик корректно и все отрабатывает - ресурс в игре добывается. Потом судя по логам, координаты ресурса находятся, но даблклик в нужных координатах не делается (непонятно по какой причине). Но, если отвести мышку в сторону, подальше от браузера игры и сделать клик, то курсор автоматом возвращается в браузер игры и делает даблклик на нужном ресурсе. Где связь - понять не могу)
« Last Edit: March 27, 2023, 12:13:29 PM by biba777 »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Не работает повторный поиск картинки
« Reply #3 on: March 27, 2023, 12:43:51 PM »
Потом судя по логам, координаты ресурса находятся, но даблклик в нужных координатах не делается (непонятно по какой причине). Но, если отвести мышку в сторону, подальше от браузера игры и сделать клик, то курсор автоматом возвращается в браузер игры и делает даблклик на нужном ресурсе.
Если после отведения мыши всё работает, то утверждение "координаты ресурса находятся" скорее всего неверное.
Или при наведении изменяется цвет/тень/размер и повторный поиск не найдёт.
Или там (где там?) свой игровой нарисованный курсор который загораживает. Такое редко встречается, но бывает. На скринах кликера курсор не видно?

А может приложение ждёт движений перед повторным кликом, чтоб замедлить юзера.
В любом случае, можно после клика отводить курсор программно.


biba777

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Не работает повторный поиск картинки
« Reply #4 on: March 27, 2023, 02:54:15 PM »
Потом судя по логам, координаты ресурса находятся, но даблклик в нужных координатах не делается (непонятно по какой причине). Но, если отвести мышку в сторону, подальше от браузера игры и сделать клик, то курсор автоматом возвращается в браузер игры и делает даблклик на нужном ресурсе.
Если после отведения мыши всё работает, то утверждение "координаты ресурса находятся" скорее всего неверное.
Или при наведении изменяется цвет/тень/размер и повторный поиск не найдёт.
Или там (где там?) свой игровой нарисованный курсор который загораживает. Такое редко встречается, но бывает. На скринах кликера курсор не видно?

А может приложение ждёт движений перед повторным кликом, чтоб замедлить юзера.
В любом случае, можно после клика отводить курсор программно.

ну не согласен, что неверно находит координаты. вот на скрине, там где цифры 344 и 368 он их нашел и сделал даблклик. Все прошло гладко. Дальше я не вмешиваюсь в процесс, кликер находит следующие координаты 927 и 455, но не кликает по ним, а лишь уходит в бесконечный цикл их нахождения. Если в этот момент я кликну куда-то в области вне клиента игры, то кликер сам уже кликает по этим координатам 927 и 455. Вот такая вот мистика. Так что цвет/тень/размер тут не причем, этот варик я отмел давно.
"Там" имелось в виду в любой области вне клиента игры, чтобы окно клиента стало неактивным.
На самом скринет курсора нет (если нужно могу скрин скинуть)))

Отводить кликер принудительно с клиента игры - как по мне костыль. Думаю где-то у меня в коде простейший затуп по неопытности)

Сорян, скрин с логом не получилось вложить почему-то. Основная суть в нем такова
13:40:24 Сообщение 1
13:40:26 Сообщение 2 344 368
13:40:26 Сообщение 3
13:40:27 Сообщение
13:40:28 Сообщение 1
13:40:30 Сообщение 2 344 368
13:40:30 Сообщение 3
13:40:31 Сообщение
13:40:31 Сообщение 1
13:40:36 Сообщение
13:40:36 Сообщение 1
13:40:38 Сообщение 2 344 368
13:40:38 Сообщение 3
13:40:39 Сообщение
13:40:41 Сообщение 3
13:40:42 Сообщение
13:40:43 Сообщение 3
13:40:44 Сообщение
13:40:46 Сообщение 3
13:40:47 Сообщение
13:40:49 Сообщение 3
13:40:50 Сообщение
13:40:51 Сообщение 3
13:40:52 Сообщение
13:40:53 Сообщение 3
13:40:54 Сообщение
13:40:56 Сообщение 3
13:40:57 Сообщение
13:40:58 Сообщение 1
13:41:00 Сообщение 2 927 455
13:41:00 Сообщение 3
13:41:01 Сообщение
13:41:01 Сообщение 1
13:41:04 Сообщение 2 927 455

« Last Edit: March 27, 2023, 03:02:04 PM by biba777 »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Не работает повторный поиск картинки
« Reply #5 on: March 27, 2023, 06:54:56 PM »
В коде всё нормально.
Первые координаты маленькие, вторые - большие. Масштаб рабочего стола стоит 100%?
Это весь код? Может в остальном косяк.

Привязки нет? Запуск от админа? Комп перезагружал? По колёсам стучал? Больше у меня вариантов нет.


biba777

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Re: Не работает повторный поиск картинки
« Reply #6 on: March 27, 2023, 09:44:56 PM »
В коде всё нормально.
Первые координаты маленькие, вторые - большие. Масштаб рабочего стола стоит 100%?
Это весь код? Может в остальном косяк.

Привязки нет? Запуск от админа? Комп перезагружал? По колёсам стучал? Больше у меня вариантов нет.
да, 100%. Это весь код)) от админа все. Ну спасибо за совет, буду разбираться. А можно как-то еще в параметрах прописать чтобы по двум картинкам искал а не по одной?

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Не работает повторный поиск картинки
« Reply #7 on: March 28, 2023, 12:34:02 PM »
А можно как-то еще в параметрах прописать чтобы по двум картинкам искал а не по одной?
В параметрах - нет.
Нужно делать 2 (и более) вложенных конструкции поиска.
Code: (clickermann) [Select]
getscreen
IF_PICTURE_IN (197,234, 1100, 800, "1.bmp")
    // действие
ELSE
    IF_PICTURE_IN (197,234, 1100, 800, "2.bmp")
        // действие
    END_IF
END_IF
действие можно вынести в подпрограмму.


kiril

  • Активный участник
  • ***
  • Posts: 106
    • View Profile
Re: Не работает повторный поиск картинки
« Reply #8 on: March 28, 2023, 08:47:38 PM »
опубликованный лог доказывает, что вы обманываете; так упорно утверждая, будто первый двойной клик всегда проходит.
Ведь судя по тому что трижды происходит наведение курсора на один и тот -же пиксель, то картинка после первого " всегда проходящего двойного клика" не изменилась и через 4 секунды была найдена повторно.
1. нужно увеличить процент совпадения при поиске картинки 50% на 50% - это точность достоверности  "одна бабка на двое сказала!"
2.  не используйте команду двойного клика  отлаживайте срабатывание отдельными зажатиями-отпусканиями с подбором рабочих, надёжных задержек между ними.
3. вашем коде не отображён увод курсора.
4. в первом варианте неверные координаты графического буфера
getscreen (0, 0, 1121, 1034)
IF_PICTURE_IN (197,234, 1100, 800, "file1.bmp", -1, 50)
 а во втором лишние скобки в команде getscreen ()
5. если работаете с картинками, то учитесь их правильно сохранять, обрабатывать и искать. Используйте цветокоррекцию, игнорирование фона, малый размер картинок.
6. С каждой командой сдвигайте курсор на пару пикселей после его наведения на картинку.