Всем привет, делаю бота к MMORPG, но не получается реализовать что бы бот атаковал ближайшего к игроку моба(которые появляется в неудобный момент). В данном коде атака распределена на 2 зоны красная рядом с игроком и синяя на пределе досягаемости. Есть идеи как можно сделать?
Код:
HotKeySet("{F10}", "myExit")
Global $attacking = False
; красная зона обстрела
Global $red = Sqrt(((640 - 530)^2) + ((512 - 402)^2))
; синяя зона обстрела
Global $blue = Sqrt(((640 - 475)^2) + ((512 - 347)^2))
; центр экрана
Global $center_x = "640"
Global $center_y = "512"
While (1)
; Поиск моба
$pix = PixelSearch(534, 421, 760, 639, 0x156D18, 10)
if Not (@error) Then
$x = $Pix[0]
$y = $Pix[1]
; Клик лкм на моба
MouseClick ("left", $x, $y, 1, 0)
$Pause = Random(0, 1000)
Sleep($pause)
; расстояние до моба на которого наведён прицел
$d = Sqrt((($center_x - $x)^2) + (($center_y - $y)^2))
; если моб находится в красной зоне то атака
if $d <= $red then
$attacking = True
$BlueAttacking = False
; если моб дальше красной зоны и находится в синей зоне и в красной зоне никого не атакует
ElseIf $d >= $red And $d <= $blue And $BlueAttacking = False Then
$attacking = True
$BlueAttacking = True
EndIf
; по прежнему атакуем моба?
While ($attacking)
$isAttacking = PixelSearch (534, 421, 760, 639, 0xFF0000)
if not (@error) Then
; атакуем моба до тех пор пока на него наведён прицел
Do
Send("{NUMPAD1}")
Sleep(10)
Send("{NUMPAD2}")
Sleep(10)
Until $attacking = True
Else
$attacking = False
EndIf
WEnd
EndIf
WEnd
Func myExit ()
MsgBox (0, "Bot", "нажми ok чтобы выключить")
Exit
EndFunc