Что нового

[Автоматизация] При обнаружении красного цвета нажимать ЛКМ

HardKrab

Новичок
Сообщения
4
Репутация
0
:IL_AutoIt_1:Уважаемые знатоки autoit'a :IL_AutoIt_1:, обращаюсь к вам за помощью. Нужен скрипт для игры APB: Reloaded, который при обнаружении* красного цвета, будет нажимать ЛКМ.

*Под обнаружением подразумеваю, что я буду водить мышкой, и как только наведу на красный цвет, он будет нажимать ЛКМ.
 

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
HardKrab
Ты думаешь, что фрост не блокирует мышь?
Он блокирует ВСЁ ;)
 
Автор
H

HardKrab

Новичок
Сообщения
4
Репутация
0
Вот и не все. Бегал я с X7 мышкой ( макросы) и простенький скриптик тоже работал.
 

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
HardKrab
Хм... В ПБ не получалось :scratch:


Добавлено:
Сообщение автоматически объединено:

HardKrab
Попробуй автокил(для пб) от предка:
http://rghost.ru/private/37876865/e2eb0aad1a6552bac84813eb4288f49e
 
Автор
H

HardKrab

Новичок
Сообщения
4
Репутация
0
_Lexa98_

Мне бы не .exe, а исходник макроса.
 

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
HardKrab
Вот:
Код:
#include <Misc.au3>
#include <WindowsConstants.au3>

Global $Autoshoot = 0, $i, $color = 0xFF0000, $scan = 0
Global $cWidth = 23, $cHeight=30 ;параметры точки
$Cross = _Cross_Create(0, 0) ;рисуем точку

;-------гор клавиши
HotKeySet("{INSERT}", "startAutoshoot") ;старт
HotKeySet("{DELETE}", "offAutoshoot") ;стоп
;-------- "тело" скрипта
While 1 ;цикл 
If $Autoshoot = 1 then
PixelSearch(300, 300, 999, 999, $color , 40, 2) ;поиск цвета
If Not @error then ;если цвет находит
$i = 1
While $i < 2
Call('clicks') ;вызов функции "жмакания кнопок"
$i = $i + 1
WEnd
EndIf
EndIf
WEnd
;-------функции
Func startAutoshoot() ; функция включения
$Autoshoot = 1
WinMove("Point Blank","" ,20,20, @DesktopWidth-40,@DeskTopHeight-40) ;параметры окна игры
EndFunc ; конец функции

Func offAutoshoot() ; функция выключения
$Autoshoot = 0
EndFunc ; конец функции

Func clicks() ;функция "жмакания кнопок"
AutoItSetOption('MouseClickDelay',100) ;задержка нажатия мыши
if MouseClick('right') Then ;если пкм зажата
MouseClick('left') ; тогда жмем лкм
EndIf
EndFunc
;---------------------------------рисовалка прицела--------------------------
Func _Cross_Create($iXCord, $iYCord, $iColor = 0x0000ff, $iFlag = 0)
$hGUI = GUICreate('MouseCross', $cWidth, $cHeight, -1, -1, $WS_POPUP, $WS_EX_TOOLWINDOW + $WS_EX_LAYERED + $WS_EX_TRANSPARENT + $WS_EX_TOPMOST)
Local $iTransCol = 0xABCDEF
If $iColor = $iTransCol Then $iTransCol = 0xFBCDEF
;-------параметры прицела 
GUISetBkColor($iTransCol)
GUICtrlCreateLabel("", 11, 15, 2, 10)
GUICtrlSetBkColor(-1, $iColor)
GUICtrlCreateLabel("", 0, 11, 10, 2)
GUICtrlSetBkColor(-1, $iColor)
GUICtrlCreateLabel("", 15, 11, 10, 2)
GUICtrlSetBkColor(-1, $iColor)
;--------------------------
GUISetState()
_API_SetLayeredWindowAttributes($hGUI, $iTransCol)
EndFunc

Func _API_SetLayeredWindowAttributes($hwnd, $i_transcolor, $Transparency = 255, $isColorRef = False)
Local Const $AC_SRC_ALPHA = 1
Local Const $ULW_ALPHA = 2
Local Const $LWA_ALPHA = 0x2
Local Const $LWA_COLORKEY = 0x1
If Not $isColorRef Then
$i_transcolor = Hex(String($i_transcolor), 6)
$i_transcolor = Execute('0x00' & StringMid($i_transcolor, 5, 2) & StringMid($i_transcolor, 3, 2) & StringMid($i_transcolor, 1, 2))
EndIf
Local $Ret = DllCall("user32.dll", "int", "SetLayeredWindowAttributes", "hwnd", $hwnd, "long", $i_transcolor, "byte", $Transparency, "long", $LWA_COLORKEY + $LWA_ALPHA)
Select
Case @error
Return SetError(@error, 0, 0)
Case $Ret[0] = 0
Return SetError(4, 0, 0)
Case Else
Return 1
EndSelect
EndFunc
;--------------------end----crosshair-----------------
;за макросы не банят!!!

;пс кому больше нравиться старый способ стрельбы (те без пкм) тогда заменяем 34 строку на такое

Func clicks() ;функция "жмакания кнопок"
AutoItSetOption('MouseClickDelay',50) ;задержка нажатия мыши
MouseClick('left') ; жмем лкм
EndFunc
 
Верх