Автор Тема: [Мышь, клавиатура] Действие или бездействие ЛКМ при нахождении нужного цвета в заданных координатах  (Прочитано 1183 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн Viktor19870628 [?]

  • Новичок
  • *
  • Сообщений: 36
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Версия AutoIt: 3.14.2

Ребята, нашел на форуме код пиксельного автошота,вставил координаты поиска и искомый цвет.задал координаты поиска на радаре игры.все работает но мышь отрабатывает и на игроков за укрытиями.укрытия то есть стены ящики и камни на радаре помечены другим цветом.Как сделать что бы при условии что между мной(белый пиксель) и противником(красный пиксель) находилась преграда(серый пиксель) ЛКМ не отрабатывала а по новой шел поиск красного пикселя.


Сколько не искал решение на форуме- не нашел.
« Последнее редактирование: Сентябрь 07, 2017, 10:47:59 от Viktor19870628, Причина: исправил версию »

Русское сообщество AutoIt


Оффлайн filautdinov [?]

  • Новичок
  • *
  • Сообщений: 80
  • Репутация: 7
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0

Оффлайн Viktor19870628 [?]

  • Новичок
  • *
  • Сообщений: 36

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0

Оффлайн ra4o [?]

  • Скриптер
  • ****
  • Сообщений: 800
  • Репутация: 140
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Цитировать
Как сделать что бы при условии что между мной(белый пиксель) и противником(красный пиксель) находилась преграда(серый пиксель) ЛКМ не отрабатывала
В таком случае, я думаю нужно проверять цвет пикселя на прямой между белой и красной точкой, для этого необходимо:
1 Определить координаты белой и красной точек ( у Вас это уже скорее всего реализовано)
2 Определиться с шагом поиска серых пикселей в зависимости от размера препятствий (слишком маленький шаг - замедлит роботу, при слишком большом шаге - есть вероятность пропустить препятствие)
3 Искать на отрезке от белой до красной точек серый пиксель , вычисляя координаты промежуточных точек по уравнению прямой
Цитировать
Если прямая проходит через две точки A(x1, y1) и B(x2, y2), такие что x1 ≠ x2 и y1 ≠ y2, то уравнение прямой можно найти, используя следующую формулу
(x - x1)/(x2 - x1) =  (y - y1)/(y2 - y1)

Русское сообщество AutoIt


Оффлайн Viktor19870628 [?]

  • Новичок
  • *
  • Сообщений: 36

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
В скрипте задан поиск красного цвета в заданной области.но действительно по одной прямой.однако красная от белой может появиться на разном расстоянии.
Подскажите как реализовать пропуск пикселей при проверке.А то скрипт действительно тормозит периодически.
Код: AutoIt [Выделить]
$Hyeta = PixelSearch(180, 170,189, 200,0Xff2624,0)
If IsArray($Hyeta) = True Then

« Последнее редактирование: Август 30, 2017, 17:46:26 от Viktor19870628, Причина: закосячил »

Помечен как лучший ответ пользователем Viktor19870628 Отправлен Август 30, 2017, 17:48:05

Оффлайн ra4o [?]

  • Скриптер
  • ****
  • Сообщений: 800
  • Репутация: 140
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Цитировать
Подскажите как реализовать пропуск пикселей при проверке
У функции
Код: AutoIt [Выделить]
есть параметр "step" Вот описание этого параметра:
Цитировать
Вместо поиска каждого пикселя используйте значения больше чем 1, чтобы пропускать часть пикселей (для ускорения работы). Например, значение 2 означает, что будет использоваться только каждый второй пиксель. По умолчанию 1.
Цитировать
однако красная от белой может появиться на разном расстоянии.
Ну и пусть, зная координаты красной и белой точек можно с определённым шагом проверить всю прямую на наличие серых точек. Как вычислить координаты всех точек, принадлежащих этой прямой писал выше.

Оффлайн OlegDenisov [?]

  • Новичок
  • *
  • Сообщений: 4
  • Репутация: 0
    • Награды
подскажите как вы ищете цвет в warface если там directx и "все цвета черные"?

Оффлайн Viktor19870628 [?]

  • Новичок
  • *
  • Сообщений: 36

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
подскажите как вы ищете цвет в warface если там directx и "все цвета черные"?
Инструментами AUTOIT.

Русское сообщество AutoIt


Оффлайн OlegDenisov [?]

  • Новичок
  • *
  • Сообщений: 4
  • Репутация: 0
    • Награды
подскажите как вы ищете цвет в warface если там directx и "все цвета черные"?
Инструментами AUTOIT.
какими? если не затруднит то примерами кода

Оффлайн Viktor19870628 [?]

  • Новичок
  • *
  • Сообщений: 36

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
подскажите как вы ищете цвет в warface если там directx и "все цвета черные"?
Инструментами AUTOIT.
какими? если не затруднит то примерами кода
Autoit window info называется.
В ней выбираешь вкладку "Mouse"
Цепляешь курсором мышки картинку в виде мишени и наводишь на нужный цвет на мониторе
в информационном окне программы будет цвет пикселя и его позиция на экране.


Добавлено: Март 09, 2018, 09:14:01
Пример кода есть в моих темах.

Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
9 Ответов
5389 Просмотров
Последний ответ Декабрь 04, 2013, 00:55:44
от ____
5 Ответов
2960 Просмотров
Последний ответ Ноябрь 20, 2011, 23:12:03
от Belfigor
11 Ответов
5444 Просмотров
Последний ответ Декабрь 28, 2012, 19:58:03
от CreatoR
0 Ответов
1636 Просмотров
Последний ответ Сентябрь 29, 2013, 09:33:46
от madmasles
2 Ответов
1600 Просмотров
Последний ответ Ноябрь 21, 2013, 05:37:33
от Redcut
0 Ответов
1136 Просмотров
Последний ответ Март 20, 2014, 20:08:41
от madmasles
0 Ответов
2072 Просмотров
Последний ответ Апрель 27, 2014, 23:11:00
от Isn
3 Ответов
1903 Просмотров
Последний ответ Сентябрь 25, 2014, 14:41:56
от nowost
0 Ответов
846 Просмотров
Последний ответ Ноябрь 16, 2014, 17:37:36
от madmasles
8 Ответов
2440 Просмотров
Последний ответ Июль 06, 2015, 17:02:19
от Tapok