Opt("PixelCoordMode", 2) ;Отсчет координат пикселей от левого верхнего угла клиентской части окна
Opt("MouseCoordMode", 2) ;Отсчет координат мыши от левого верхнего угла клиентской части окна
Opt("MustDeclareVars", 1) ;Форсируем задачу переменных. Тоесть после задания этой опции перед тем как нам использовать какую-либо переменную нам надо обозначить ее.
Opt("SendKeyDelay", 6)
HotKeySet("{PAUSE}","TogglePause")
HotKeySet("^{PAUSE}", "_Exit")
HotKeySet("^!{PAUSE}", "_Login")
Global $CurWin = "EVE - My Character"
Global $Paused;
; для задания переменных используем следующий шаблон; Col - цвет, Coord - координата
; Loc - локал, Over - овервью, Mod - модули, SI - selected item, Dr - дрон
; GM - главное меню, Menu - выпадающее меню, HUD - это HUD
Global $ColLocNeut=0x858585, $ColLocOffwar=0x8F0000, $ColLocCorp, $ColLocAli=0x001C73, $ColLocBlue=0x001C73, $ColLocLBlue=0x2660BF, $ColLocRed=0x8F0000, $ColLocLRed=0xBF4300, $ColLocSheid=12
; Нейтр, Оффвар, Корп, Али, Синий, Голубой, Красный, Светлокрасный, Шейд
Global $ColBlack=0x000000, $ColDronGreen=0x07F707, $ColNPC=0xC61010, $ColWhite=0xBCBCBC, $ColSpeed=0x558FBD; черный цвет фона, зеленый цвет статуса дронов, красный цвет неписи, белый цвет надписей
Global $CoordLocX=547, $CoordLocY=192 ; координаты правой верхней точки окна локала
Global $xxx, $xxx1, $xxx2, $xxx3, $xxx4, $xxx5, $qqq; переменная для счетчиков
Global $CoordGMX=62, $CoordGMY=24 ; координаты вершины треугольника главного меню
Global $CoordSIX=1010, $CoordSIY=2 ; коордиаты левой верхней точки окна Selected Item
Global $CoordDrX=291, $CoordDrY=110; координаты правой верхней точки окна Dron
Global $CoordDrXx=46, $CoordDrYy=117, $ColDronBlue=0xA8FFFF, $ColDronRed=0x9D2527 ; координаты левой верхней точки меню Dron, цвет синей папки дронов, красный цвет атакующих дронов
Global $CoordOverX=1020, $CoordOverY=114 ; координаты вершины треугольника Overview
Global $CoordHudX=698, $CoordHudY=769 ; координаты вершины треугольника HUD
Global $NCeli, $nmod, $ONPC, $i, $np; номер залоченной цели от 0 до 6, номер модуля F1 или F2, NPC в overview, счетчик
Global $StatWin1, $StatWin2 ;статус окна 1- Eve, 2- Eve
TogglePause(1)
WinActivate($CurWin)
While 1
WinWaitActive($CurWin)
WinMove($CurWin, "", -3, -28)
If _LocalScan()=0 Then
If _kolceley()=0 And _kolnpc()=0 Then
Sleep (5000)
If _kolnpc()=0 Then
_warpSpot()
Send ("{CTRLDOWN}")
Sleep (200)
Send ("b")
Sleep (200)
Send ("{CTRLUP}")
Sleep (2000)
TogglePause(3)
EndIf
EndIf
If _kolceley()<3 And _kolnpc()>_kolceley() Then
Sleep (2000)
If _kolceley()<3 And _kolnpc()>_kolceley() Then
_attack()
_LocCeley()
Sleep (1000)
For $i1=1 to 16
If _LocalScan()=0 Then
ToolTip ("")
_attack()
Sleep (1500)
Else
ExitLoop
EndIf
Next
EndIf
EndIf
If _kolceley()>0 Then
ToolTip ("")
_attack()
EndIf
Else
ToolTip ("АЛЯРМА, ГАЛАКТИКА В ОПАСНОСТИ. ШПИЕНЫ ПОВСЮДУ",220,80)
$qqq=0
While 1
If _WarpStat()=0 Then
If _LocalScan()=0 Then
Send ("{CTRLDOWN}")
Sleep (300)
Send ("{SPACE}")
Sleep(300)
Send ("{CTRLUP}")
ExitLoop
Else
_warpPos()
_attack()
If _kolceley()<_kolnpc() Then
$qqq=$qqq+1
If $qqq>15 Then
_LocCeley()
$qqq=0
EndIf
EndIf
EndIf
EndIf
If _WarpStat()=1 and _SpeedShip()=3 Then
Sleep (3000)
If _WarpStat()=1 and _SpeedShip()=3 Then
For $i=1 to 40
Sleep (2000)
If _WarpStat()=0 and _SpeedShip()<3 Then
ExitLoop
EndIf
Next
Send ("{CTRLDOWN}")
Sleep (200)
Send ("b")
Sleep (200)
Send ("{CTRLUP}")
Sleep (2000)
TogglePause(2)
EndIf
EndIf
If _WarpStat()=1 and _SpeedShip()<3 Then
If _LocalScan()=0 Then
Send ("{CTRLDOWN}")
Sleep (200)
Send ("{SPACE}")
Sleep (200)
Send ("{CTRLUP}")
Sleep (2000)
If _WarpStat()=0 Then
ExitLoop
Else
For $i=1 to 40
Sleep (2000)
If _WarpStat()=0 and _SpeedShip()<3 Then
ExitLoop
EndIf
Next
Send ("{CTRLDOWN}")
Sleep (200)
Send ("b")
Sleep (200)
Send ("{CTRLUP}")
Sleep (2000)
TogglePause(2)
ExitLoop
EndIf
Else
_attack()
Sleep (2000)
EndIf
EndIf
WEnd
EndIf
Sleep (1500)
WEnd
Func _WarpStat()
Sleep (1000)
PixelSearch ($CoordHudX-130, $CoordHudY-197, $CoordHudX-86, $CoordHudY-167, $ColWhite, $ColLocSheid)
If Not @error Then
Return 1
Else
Return 0
EndIf
EndFunc
Func _SpeedShip()
$xxx4=0
PixelSearch ($CoordHudX-91, $CoordHudY-15, $CoordHudX-84, $CoordHudY-10, $ColSpeed, $ColLocSheid)
If Not @error Then
$xxx4=1
EndIf
PixelSearch ($CoordHudX-63, $CoordHudY, $CoordHudX-56, $CoordHudY+3, $ColSpeed, $ColLocSheid)
If Not @error Then
$xxx4=2
EndIf
PixelSearch ($CoordHudX-33, $CoordHudY-15, $CoordHudX-25, $CoordHudY-12, $ColSpeed, $ColLocSheid)
If Not @error Then
$xxx4=3
EndIf
Return $xxx4
EndFunc
Func _attack()
If _LockCeli(1)=1 Then
If _ActivModul(1)=1 Then
$xxx3=$xxx3+1
If $xxx3>8 Then
Send ("{CTRLDOWN}")
Sleep (200)
Send ("n")
Sleep (200)
Send ("{CTRLUP}")
Sleep (2000)
_DronAtack()
$xxx3=0
EndIf
Sleep (50)
Else
$xxx3=0
Send ("{CTRLUP}")
Send ("{F1}")
Sleep (50)
_DronAtack()
EndIf
If _ActivModul(2)=1 Then
Sleep (50)
Else
Send ("{CTRLUP}")
Send ("{F2}")
Sleep (50)
EndIf
If _ActivModul(3)=1 Then
Sleep (50)
Else
Send ("{CTRLUP}")
Send ("{F3}")
Sleep (50)
EndIf
If _StatusDron()=1 Then
_DronAtack()
Sleep(60)
ToolTip ("Направляю дронов убивать", 40, 30)
ElseIf _StatusDron()=3 Then
Sleep(400)
MouseClick ( "left", $CoordDrXx+100, $CoordDrYy+46,1,18)
Sleep (2000)
MouseClick ( "left", $CoordDrXx+95, $CoordDrYy+26, 1,20)
Sleep (1300)
ElseIf _StatusDron()=4 Then
Sleep(400)
MouseClick ( "right", $CoordDrXx+110, $CoordDrYy+65,1,18)
Sleep (2000)
MouseClick ( "left", $CoordDrXx+160, $CoordDrYy+69, 1,20)
Sleep (1300)
ElseIf _StatusDron()=5 Then
Sleep (2000)
MouseClick ( "left", $CoordDrXx+107, $CoordDrYy+83, 1,20)
Sleep (1300)
EndIf
EndIf
EndFunc
Func _LocCeley()
$xxx5=_kolnpc()
If $xxx5>5 Then $xxx5=6
Send ("{CTRLDOWN}")
For $i=1 to $xxx5
Sleep (90)
MouseClick ("left", $CoordOverX+63,$CoordOverY+60+19*($i-1), 1,15)
Sleep (700)
Next
Send ("{CTRLUP}")
MouseClick ("left", $CoordSIX-76-3, $CoordSIY+72-3, 1,15)
EndFunc
Func _kolceley() ; количество залоченных целей
$xxx1=0
For $i=1 to 6
If _LockCeli($i)=1 Then
$xxx1=$xxx1+1
EndIf
Next
Return $xxx1
EndFunc
Func _kolnpc() ; количество целей в овервью
$xxx2=0
Send ("{CTRLDOWN}")
For $i=0 to 15
If _OverNPC($i)=1 Then
$xxx2=$xxx2+1
EndIf
Next
Send ("{CTRLUP}")
Return $xxx2
EndFunc
Func _ActivModul($nmod)
$nmod=$nmod-1
$xxx=0
For $i=1 to 3
PixelSearch ($CoordHudX+43+51*$nmod, $CoordHudY-76, $CoordHudX+43+51*$nmod, $CoordHudY-76, $ColBlack, $ColLocSheid)
If @error Then
$xxx=$xxx+1
sleep (150)
Else
Sleep(150)
EndIf
Next
If $xxx>0 Then
Return 1
Else
Return 0
EndIf
EndFunc
Func _DronAtack()
Send ("{CTRLDOWN}")
Sleep (200)
Send ("m")
Sleep (200)
Send ("{CTRLUP}")
EndFunc
Func _warpPos()
Sleep (500)
MouseClick ("left",$CoordGMX+2,$CoordGMY+3,1,15)
Sleep (2250)
MouseClick ("left",$CoordGMX+100,$CoordGMY+93,1,15)
Sleep (2250)
MouseClick ("left",$CoordGMX+188,$CoordGMY+93,1,15)
Sleep (2250)
EndFunc
Func _warpSpot()
Sleep (500)
MouseClick ("left",$CoordGMX+2,$CoordGMY+3,1,15)
Sleep (2250)
MouseClick ("left",$CoordGMX+100,$CoordGMY+93+16,1,15)
Sleep (2250)
MouseClick ("left",$CoordGMX+188,$CoordGMY+93+16,1,15)
Sleep (2250)
EndFunc
Func _StatusDron(); если найден зеленый цвет - значит 1, иначе 0, красный цвет дронов - 2, свернуты папки дронов -3, развернуты папки дронов-4, 5- свернуто только список дронов
PixelSearch ($CoordDrX-171, $CoordDrY+130, $CoordDrX-107, $CoordDrY+330, $ColDronGreen, 50)
If Not @error Then
$xxx=1
Else
PixelSearch ($CoordDrX-171, $CoordDrY+130, $CoordDrX-107, $CoordDrY+330, $ColDronRed, 50)
If Not @error Then
$xxx=2
Else
$xxx=0
EndIf
EndIf
If $xxx=0 Then
PixelSearch ($CoordDrXx+21, $CoordDrYy+43, $CoordDrXx+28, $CoordDrYy+48, $ColDronBlue, 50)
If Not @error Then
$xxx=3
Else
PixelSearch ($CoordDrXx+21+17, $CoordDrYy+43+19, $CoordDrXx+28+17, $CoordDrYy+48+19, $ColDronBlue, 50)
If Not @error Then
$xxx=4
Else
PixelSearch ($CoordDrXx+21+17, $CoordDrYy+43+38, $CoordDrXx+28+17, $CoordDrYy+48+38, $ColDronBlue, 50)
If Not @error Then
$xxx=5
EndIf
EndIf
EndIf
EndIf
Return $xxx
EndFunc
Func _LockCeli($NCeli); если цель есть - 1 иначе 0
$NCeli=$NCeli-1
PixelSearch ($CoordSIX-76-3-98*$NCeli, $CoordSIY+72-3, $CoordSIX-76-98*$NCeli, $CoordSIY+72, $ColBlack, $ColLocSheid*2)
If Not @error Then
Return 0
Else
Return 1
EndIf
EndFunc
Func _OverNPC($ONPC)
$ONPC=$ONPC-1
PixelSearch ($CoordOverX-2, $CoordOverY+54+19*$ONPC, $CoordOverX+15, $CoordOverY+67+19*$ONPC, $ColNPC, $ColLocSheid*3)
If Not @error Then
Return 1
Else
Return 0
EndIf
EndFunc
Func _LocalScan(); функция проверки локала, возвращает 0 - нет опасности, 1 - найдены минуса или нейтралы
$xxx=0
PixelSearch ($CoordLocX-19, $CoordLocY+48, $CoordLocX-7, $CoordLocY+48+410, $ColLocNeut, $ColLocSheid)
If NOT @error Then
$xxx=$xxx+1
EndIf
PixelSearch ($CoordLocX-19, $CoordLocY+48, $CoordLocX-7, $CoordLocY+48+410, $ColLocOffwar, $ColLocSheid)
If NOT @error Then
$xxx=$xxx+1
EndIf
PixelSearch ($CoordLocX-19, $CoordLocY+48, $CoordLocX-7, $CoordLocY+48+410, $ColLocRed, $ColLocSheid)
If NOT @error Then
$xxx=$xxx+1
EndIf
PixelSearch ($CoordLocX-19, $CoordLocY+48, $CoordLocX-7, $CoordLocY+48+410, $ColLocLRed, $ColLocSheid)
If NOT @error Then
$xxx=$xxx+1
EndIf
If $xxx=0 Then
Return 0
Else
Return 1
EndIf
EndFunc
Func TogglePause($np)
$Paused = NOT $Paused
While $Paused
sleep(1000)
Select
Case $np=2
ToolTip('Нейтралы в системе. Ждемс ...',0,0)
Case $np=3
ToolTip('Целей больше нет - ушел на спот',0,0)
Case Else
ToolTip('Скрипт поставлен на паузу',0,0)
WinGetState("EVE")
If Not @error Then
_Login()
EndIf
EndSelect
WEnd
ToolTip("")
EndFunc
Func _Exit()
Exit
EndFunc
Func _Login()
Sleep (3000)
WinActivate("EVE")
WinWaitActive ("EVE")
Sleep (1200)
MouseClick ("left", 595, 735, 1, 10)
Sleep (2300)
Send ("1")
Sleep (200)
Send ("1")
Sleep (200)
Send ("1")
Sleep (200)
Send ("1")
Sleep (100)
Send ("1")
Sleep (100)
Send ("1")
Sleep (100)
Send ("1")
Sleep (100)
Send ("1")
Sleep (100)
Send ("1")
Sleep (100)
Send ("1")
Sleep (100)
Send ("1")
Sleep (3000)
MouseClick ("left", 635, 758,1,15)
Sleep (20000)
Send ("{ENTER}")
Sleep (20000)
Send ("{ENTER}")
Sleep (3500)
Send ("{ENTER}")
Sleep (10500)
Send ("{F10}")
Sleep (10000)
MouseClick ("left", 1187, 484, 1, 15)
Sleep (3000)
MouseClickDrag ("left", 760, 550, 599, 200, 22)
Sleep (1500)
MouseClickDrag ("left", 760, 550, 599, 200, 22)
Sleep (1500)
$xxx=0
For $i=1 to 3
PixelSearch ($CoordHudX+66, $CoordHudY-32, $CoordHudX+66, $CoordHudY-32, $ColBlack, $ColLocSheid)
If @error Then
$xxx=$xxx+1
sleep (150)
Else
Sleep(150)
EndIf
Next
If $xxx=0 Then
Sleep (300)
Send ("{ALTDOWN}")
Sleep (400)
Send ("{F1}")
Sleep (700)
Send ("{F2}")
Sleep (400)
Send ("{F3}")
Sleep (900)
Send ("{F4}")
Sleep (1000)
Send ("{ALTUP}")
Sleep (1500)
Send ("{CTRLDOWN}")
Sleep (400)
Send ("{F4}")
Sleep (700)
Send ("{F5}")
Sleep (1000)
Send ("{CTRLUP}")
Sleep (1500)
EndIf
Sleep (10000)
EndFunc