Что нового

[Мышь, клавиатура] Использование PixelCoordMode

alexandr_burlakov

Новичок
Сообщения
5
Репутация
0
Код:
HotKeySet("{F6}","_Exit")
While 1
$hwnd = AutoItSetOption ( "CaretCoordMode" [, 0 ] )
$Variable = PixelSearch(949,544,971,558,0xFF0000, [, shade-variation = 0 [, step = 1 [, hwnd ]]] )
If IsArray($Variable) = True Then
MouseClick("LEFT")
EndIf
WEnd
Func _Exit()
Exit
EndFunc


Хочу работать в конкретном окне с помощью функции PixelCoordMode
но какая то ошибка вылазит я не знаю что уже сделать. Проверьте правильно ли у меня все написанно
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
alexandr_burlakov
правильно ли у меня все написано
Хорошо, что вы читаете справку, плохо, что не понимаете.
В квадратных скобках в справке указаны необязательные параметры. Т.е. если вы их не напишите, то они будут приняты по умолчанию, как в справке. Если же вы решили эти параметры указать, то в скрипте квадратные скобки писать не нужно.
Код:
AutoItSetOption("PixelCoordMode", 2)

HotKeySet("{F6}", "_Exit")

While 1
  $hwnd = WinGetHandle("Заголовок окна")
  $Variable = PixelSearch(949, 544, 971, 558, 0xFF0000, 0, 1, $hwnd)
  If IsArray($Variable) = True Then
    MouseClick("LEFT")
  EndIf
WEnd

Func _Exit()
  Exit
EndFunc
 
Автор
A

alexandr_burlakov

Новичок
Сообщения
5
Репутация
0
InnI сказал(а):
alexandr_burlakov
правильно ли у меня все написано
Хорошо, что вы читаете справку, плохо, что не понимаете.
В квадратных скобках в справке указаны необязательные параметры. Т.е. если вы их не напишите, то они будут приняты по умолчанию, как в справке. Если же вы решили эти параметры указать, то в скрипте квадратные скобки писать не нужно.
Код:
AutoItSetOption("PixelCoordMode", 2)

HotKeySet("{F6}", "_Exit")

While 1
  $hwnd = WinGetHandle("Заголовок окна")
  $Variable = PixelSearch(949, 544, 971, 558, 0xFF0000, 0, 1, $hwnd)
  If IsArray($Variable) = True Then
    MouseClick("LEFT")
  EndIf
WEnd

Func _Exit()
  Exit
EndFunc


Спасибо я разобрался. Но я думал это будет работать. Если указывать конкретное окно для поиска, но почему то в игре он пиксели эти не ищет... буду пробывать что то другое более сложное
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
Я бы ещё добавил, что при такой команде
Код:
MouseClick("LEFT")

Клик мышкой будет в том месте где находится курсор. Если же требуется кликнуть в определённом месте, то стоит дописать
Код:
AutoItSetOption("MouseCoordMode", 2)
;============================
MouseClick('left', $x, $y) ; Где x y координаты  в клиентском окне
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
alexandr_burlakov
Если указывать конкретное окно для поиска
Убедитесь, что координаты указаны относительно клиентской области этого окна. Для этого в меню Au3Info нужно включить "Options - Coord mode - Client".
 
Автор
A

alexandr_burlakov

Новичок
Сообщения
5
Репутация
0
edyapd сказал(а):
Я бы ещё добавил, что при такой команде
Код:
MouseClick("LEFT")

Клик мышкой будет в том месте где находится курсор. Если же требуется кликнуть в определённом месте, то стоит дописать
Код:
AutoItSetOption("MouseCoordMode", 2)
;============================
MouseClick('left', $x, $y) ; Где x y координаты  в клиентском окне

не понял
как это в коде изобразить? на данный момент я координаты поменял как посоветовал InnI
щас ко выглядит так:

Код:
HotKeySet("{F6}", "_Exit")

While 1
  $hwnd = WinGetHandle("Point Blank")
  $Variable = PixelSearch(827, 513, 850, 535, 0xFF0000, 0, 1, $hwnd)
  If IsArray($Variable) = True Then
    MouseClick("LEFT")                                                                                      
  EndIf
WEnd

Func _Exit()
  Exit
EndFunc
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
alexandr_burlakov
А зачем вы удалили самую главную опцию?
Код:
AutoItSetOption("PixelCoordMode", 2)
Без неё скрипт будет работать в экранных координатах, а не в оконных.
 
Автор
A

alexandr_burlakov

Новичок
Сообщения
5
Репутация
0
InnI сказал(а):
alexandr_burlakov
А зачем вы удалили самую главную опцию?
Код:
AutoItSetOption("PixelCoordMode", 2)
Без неё скрипт будет работать в экранных координатах, а не в оконных.

Код:
AutoItSetOption("PixelCoordMode", 2)
HotKeySet("{F6}", "_Exit")

While 1
  $hwnd = WinGetHandle("Point Blank")
  $Variable = PixelSearch(827, 513, 850, 535, 0xFF0000, 0, 1, $hwnd)
  If IsArray($Variable) = True Then
    MouseClick("LEFT")
  EndIf
WEnd

Func _Exit()
  Exit
EndFunc


вот так у меня все, не полностью скопировал. Ну почему то в моем окне игры на красный пиксель не реагирует. Когда пробудю в браузере например т овсе работает
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
alexandr_burlakov, вы бы описали конкретней, чего хотите получить.

InnI сказал(а):
Если клик не проходит, это не значит, что пиксель не найден. Просто игра может быть защищена от имитации кликов.
А ещё возможно курсор находится за пределами окна. Или не наведён на ту область по которой надо кликнуть.
 
Автор
A

alexandr_burlakov

Новичок
Сообщения
5
Репутация
0
InnI сказал(а):
alexandr_burlakov
на красный пиксель не реагирует
Если клик не проходит, это не значит, что пиксель не найден. Просто игра может быть защищена от имитации кликов.

[Point Blank] AutoShoot - Автоматическая стрельба

я это уже видел и пробывал, хочу узнать как можно а autoIT это сделать. Есть вариант делать крин в буфер и на нем уже искать пиксель но это для меня нереально)
 
Сообщения
80
Репутация
-1
Тоже думал если MouseCoordMode задаёт глобальные координаты внутри окна то и пиксели тамже искать будет, а оказалось ещё и PixelCoordMode тудаже надо
 
Верх