Автор Тема: [Автоматизация] Отслеживать минимальную область в центре монитора  (Прочитано 229 раз)

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

Оффлайн MAS [?]

  • Новичок
  • *
  • Сообщений: 10
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Всем привет, как можно отследить пиксель именно в центре монитора, в ручную получается не совсем точно. Для браузерной игры скрипт пишу, нужно чтоб реагировал когда точно навел на цвет, а не когда подвёл прицел к цели/цвету рядом.
Как можно решить проблему?

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


Оффлайн Ganibal95 [?]

  • GreenBytes
  • AutoIt Гуру
  • *****
  • Сообщений: 874
  • Репутация: 237
  • Пол: Мужской
  • GreenBytes
    • GreenBytes
    • Награды
  • Версия AutoIt: 3.3.14.0
Можно скриншот формата bmp или png что именно вам нужно отследить ?

Оффлайн MAS [?]

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

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

Вместо браузерной лучше на css покажу. Отслеживать цвет в центре прицела пытаюсь, но если минимальную область в ручную выделяю, то с прерыванием стреляет странно, если даже не отвожу прицел от цвета. Стрельба с дальнего расстояния будет точнее , если поможете с этой бедой разобраться   ;)

Оффлайн Ganibal95 [?]

  • GreenBytes
  • AutoIt Гуру
  • *****
  • Сообщений: 874
  • Репутация: 237
  • Пол: Мужской
  • GreenBytes
    • GreenBytes
    • Награды
  • Версия AutoIt: 3.3.14.0
я так понимаю проблема в том что у монитора нельзя найти центр, а то что только максимум 4 точки ? ( Это и будет центром )


Добавлено: Июнь 30, 2018, 23:25:49
Вот так можно найти центр на мониторе:
Код: AutoIt [Выделить]


Добавлено: Июнь 30, 2018, 23:34:51
Если брать на примере CS то я бы сделал так:
Код: AutoIt [Выделить]
; Вариант 1

$WGP = WinGetPos("Counter-Strice Source");

$offsetX = 1;
$offsetY = 1;

$color = 0xFF0000;

$X = ($WGP[0] + ($WGP[2] / 2) + $offsetX);
$Y = ($WGP[1] + ($WGP[3] / 2) + $offsetY);

While 1
   if PixelGetColor($X, $Y) = $color Then
      ;// Действие
   EndIf
WEnd

; Вариант 2

$handle = WinGetHandle("Counter-Strice Source");

$WGP = WinGetPos("Counter-Strice Source");

$X = (($WGP[2] / 2) + $offsetX);
$Y = (($WGP[3] / 2) + $offsetY);

While 1
   if PixelGetColor($X, $Y, $handle) = $color Then
      ;// Действие
   EndIf
WEnd
 

« Последнее редактирование: Июнь 30, 2018, 23:34:51 от Ganibal95, Причина: Объединение сообщений »

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


Оффлайн MAS [?]

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

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
действие MouseClick("LEFT")
но стреляет через раз, иногда не реагирует, странно

Оффлайн Ganibal95 [?]

  • GreenBytes
  • AutoIt Гуру
  • *****
  • Сообщений: 874
  • Репутация: 237
  • Пол: Мужской
  • GreenBytes
    • GreenBytes
    • Награды
  • Версия AutoIt: 3.3.14.0
действие MouseClick("LEFT")
но стреляет через раз, иногда не реагирует, странно
Для начало необходимо разобраться в чем именно проблема, в эмулировании или нахождении цвета, поставите на действие ConsoleWrite("Click" & @CRLF)

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


 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
2653 Просмотров
Последний ответ Октябрь 07, 2010, 21:45:54
от Kalisnik
3 Ответов
2900 Просмотров
Последний ответ Декабрь 24, 2010, 22:09:23
от CreatoR
4 Ответов
3015 Просмотров
Последний ответ Август 11, 2012, 15:51:54
от inververs
4 Ответов
2413 Просмотров
Последний ответ Май 25, 2013, 09:39:58
от madmasles
2 Ответов
1443 Просмотров
Последний ответ Ноябрь 27, 2013, 15:55:04
от GUIMish
0 Ответов
1565 Просмотров
Последний ответ Январь 02, 2014, 13:33:39
от c.rauf.1986
8 Ответов
1738 Просмотров
Последний ответ Июль 30, 2015, 17:45:25
от Yashied
0 Ответов
1579 Просмотров
Последний ответ Август 05, 2015, 08:38:46
от gotfrag
2 Ответов
1754 Просмотров
Последний ответ Ноябрь 09, 2016, 07:38:26
от pvnn
0 Ответов
288 Просмотров
Последний ответ Июль 25, 2017, 15:18:49
от NickSpirit