Global $WinName = "PixelSearch"
Opt("PixelCoordMode", 2)
Opt("MouseCoordMode", 2)
Opt("MustDeclareVars", 1)
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("^{PAUSE}", "_Exit")
Global $Paused
Sleep(1000)
Func TogglePause()
$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip('Script is "Paused"',0,0)
WEnd
ToolTip("")
EndFunc
Func _Exit()
MsgBox(0,"","Выход")
Exit
EndFunc
WinActivate($WinName)
WinWaitActive($WinName)
While 1
DefineArea()
WEnd
Func SearchTarget($x1, $y1, $x2, $y2)
Local $var
For $x = $x1 to $x2 Step 10
For $y = $y1 To $y2 step 10
MouseMove($x, $y, 0)
Sleep(20)
$var = PixelSearch(10, 85, 822, 551, 0xcecbc6)
If Not @error Then
GetTarget($x, $y)
ExitLoop(2)
EndIf
Next
Next
MouseDown("Right")
MouseMove($x-5, $y, 300)
Sleep(500)
MouseUp("Right")
EndFunc
Func GetTarget($x ,$y)
For $i = $y To $y-30 Step -1
MouseMove($x, $i, 10)
PixelSearch(10, 85, 822, 551, 0xcecbc6)
if @error Then
Sleep(1000)
MouseDown("Right")
MouseMove($i-5, $y, 300)
Sleep(500)
MouseUp("Right")
Return
Else
ExitLoop
EndIf
Next
MouseClick("left", $x, $i, 1, 0)
Sleep(1000)
Do
PixelSearch(453, 30, 453, 30, 0xAB3022, 5)
if Not @error Then Kill()
Until @error
EndFunc
Func Kill()
Local $exitloop = 0
Do
Do
Send("{F1}")
PixelSearch(453, 30, 453, 30, 0xAB3022, 5)
Until @error
Send("{ESC}")
Mouseclick("right")
For $i = 1 To 10 step 1
Send("{F4}")
Sleep(100)
Next
For $i = 1 To 5 step 1
PixelSearch(453, 30, 453, 30, 0xAB3022, 5)
If Not @error Then
ExitLoop
Else
$exitloop = 1
EndIf
Sleep(250)
Next
Until $exitloop = 1
Sleep(100)
Send("{F2}")
Sleep(500)
PixelSearch(453, 30, 453, 30, 0xAB3022, 5)
If Not @error Then
Kill()
EndIf
EndFunc
Func DefineArea()
Local $col = PixelSearch(10, 85, 822, 551, 0xFCFCFC)
If Not @error Then
Local Const $x1 = $col[0], $y1 = $col[1], $x2 = $col[0]+50, $y2 = $col[1]+50
SearchTarget($x1, $y1, $x2, $y2)
Else
local $pos = MouseGetPos()
MouseDown("Right")
MouseMove($pos[0]-5, $pos[1], 300)
Sleep(500)
MouseUp("Right")
EndIf
EndFunc
Func PixelSearchEx($x1, $y1, $x2, $y2, $col, $shade=0, $Case = 0, $step=1, $hwnd=0)
Local Const $Con[8] = [$x1, $y1, $x2, $y2, "0x"&Hex($col, 6), $shade, $step, $hwnd]
While 1
Local $Check = PixelSearch($x1, $y1, $x2, $y2, $Con[4], $Con[5], $Con[6], $Con[7])
If Not @error Then
If CheckPixel($Check, $Case) Then
Return $Check
Else
If @error Then
SetError(2)
Return 0
Else
$x1 = $Check[0]+1
$y1 = $Check[1]
$y2 = $Check[1]
EndIf
EndIf
Else
If $y2 < $Con[3] Then
$x1 = $Con[0]
$x2 = $Con[2]
$y2 = $Con[3]
$y1 = $y1+1
Else
SetError(1)
Return 0
EndIf
EndIf
WEnd
EndFunc
Func CheckPixel($Check, $Case)
Select
Case $Case = 0
Return True
Case $Case = 1
PixelSearch($Check[0]+3, $Check[1]+3, $Check[0]+3, $Check[1]+3, 0x00E125, 5)
If Not @error Then Return True
Case $Case = 2
PixelSearch($Check[0]-2, $Check[1]+5, $Check[0]-2, $Check[1]+5, 0x00E125, 5)
If Not @error Then PixelSearch($Check[0]-4, $Check[1]+2, $Check[0]-4, $Check[1]+2, 0x00E125, 5)
If Not @error Then Return True
Case $Case = 3
PixelSearch($Check[0]+7, $Check[1]+3, $Check[0]+7, $Check[1]+3, 0x00E125, 5)
If Not @error Then PixelSearch($Check[0]+3, $Check[1]+7, $Check[0]+3, $Check[1]+7, 0x00E125, 5)
If Not @error Then PixelSearch($Check[0]+9, $Check[1]+5, $Check[0]+9, $Check[1]+5, 0x00E125, 5)
If Not @error Then Return True
Case $Case = "Синий кружок"
MsgBox(0,'','!!!')
Return True
Case Else
SetError(1)
Return False
EndSelect
Return False
EndFunc