Код:
Global $WinName = "World of Warcraft"
Opt("PixelCoordMode", 2) ;Отсчет координат пикселей от левого верхнего угла клиентской части окна
Opt("MouseCoordMode", 2) ;Отсчет координат мыши от левого верхнего угла клиентской части окна
HotKeySet("{Pause}", "TogglePause")
HotKeySet("^{Pause}", "_Exit")
HotKeySet("{F1}", "Wait")
Global $Paused
Sleep(500)
Func TogglePause()
$Paused = NOT $Paused
While $Paused
sleep(500)
ToolTip('Paused',180,0)
WEnd
ToolTip("")
EndFunc
Func _Exit()
MsgBox(0,"","Выход")
Exit
EndFunc
While 1
TogglePause()
Sleep(100)
WEnd
WinActivate($WinName)
WinWaitActive($WinName)
Func Wait()
While 1
ToolTip('Waiting',180,0)
Sleep(200)
$wait1 = PixelSearch( 300, 55, 310, 65, 0x009000 )
If Not @error Then CheckTypeTarget()
Wend
EndFunc
Func CheckTypeTarget(); Проерка цели, если можно атаковать то переход в функцию проерки дистанции
ToolTip('Проверка типа цели',180,0)
PixelSearch( 310, 41, 310, 41, 0x00D000, 5) ; Green Color
If Not @error Then Wait()
PixelSearch( 305, 41, 305, 41, 0xBF0000, 5) ; Red
If Not @error Then CheckHP()
EndFunc
Func CheckHp(); Если есть хп то проверить дистанцию
Do
ToolTip('Проверка хп',180,0)
Sleep(100)
PixelSearch( 300, 55, 310, 65, 0x009000 ); Если у цели хп то проверить дистанцию
Until Not @error
DistCheck()
EndFunc
Func DistCheck() ; Если допустима атака то переход в функцию атаки
While 1
PixelSearch( 300, 55, 310, 65, 0x009000 ); Если нет хп то вернуться в функцию wait
If @error Then Wait()
ToolTip('Проверка дистанции',180,0)
PixelSearch( 244, 967, 244, 967, 0xFF1A1A, 5) ; Red
If @error Then Atack()
Wend
EndFunc
Func Atack()
ToolTip('Атака',180,0)
PixelSearch( 300, 55, 310, 65, 0x009000 ) ; Если есть хп атаковать
If Not @error Then
Send("1")
EndIf
While 1
ToolTip('Каст',180,0)
Sleep(200)
PixelSearch( 300, 55, 310, 65, 0x009000 ); Если нет хп то вернуться в функцию wait
If @error Then Wait()
PixelSearch( 732, 810, 732, 810, 0x06A602, 10); Если прошел каст то проверить дистанцию
If Not @error Then DistCheck()
PixelSearch( 883, 809, 883, 809, 0xBA0000, 10); Если не прошел каст то проверить дистанцию
If Not @error Then DistCheck()
WEnd
EndFunc
Сделал макрос из-за унылого нажимания 1-й кнопки в данжах, теперь это делает макрос)
Если есть идеи по улучшению или поможете улучшить/упростить макрос буду рад их услышать(прочитать).
Ещё не ввел проверку не агро-мобов и дружественных целей в остальном вроде все так.
Вот скрин и небольшие пояснения, не знаю чем именно, но может кому-нибудь поможет)