Opt("PixelCoordMode", 2) ;Отсчет координат пикселей от левого верхнего угла клиентской части окна
Opt("MouseCoordMode", 2)
Opt ("MouseClickDelay", Random(10,20));интенсивность кликания
#include "c:\pass.au3"
#include <Date.au3>
HotKeySet("{f9}", "_Exit")
HotKeySet ("{\}","_pause")
Global $Win = "EVE"
winactivate($Win) ;Делает окно EVE активным
winwaitactive($Win)
Global $dockBotton;проверка на космос
Global $beltcheck ;поиск бцквы а в слове астеройд
Global $OverKUB
Global $Belt[2] = [1, 18]
Global $AB="Off";состояние аб
Global $hp="хп в норме"; состояние хп
Global $LootCount=0
Global $Status="#"
Global $discon1
Global $discon2
Global $loading1
Global $loading2
Dim $Hour, $Mins, $Secs
Global $CicleTime;переменная полного цикла
Global $iDiff;переменная преобразованного формата времени
Global $pause
Global $minetime
Global $user
Global $TargetArrey
Global $RndStrp
Global $popitki=0 ;пер-я попыток войти в док около станции
Global $DT1,$DT2
Global $conLost1
Global $conLost2
Global $map
Global $coord ;координаты белого треугольника инвентаря
Global $LockTray=0; проб залочить на случай если залочен не тот белт
AdlibRegister("Status",500)
While 1
winactivate($Win) ;Делает окно EVE активным
winwaitactive($Win)
Telo()
WEnd
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Func Telo()
Hp()
Select
Case process ()="нет процесса"
$status="жду процесс"
Sleep(random(3000,4000)))
winactivate($Win)
Case Check ()="EVEScreen"
$status="EveScreen- жму ентер"
Send("{Enter}")
Sleep(Random(3000,4000))
if Check ()="EVEScreen" Then
Send("{Enter}")
EndIf
Sleep(random(4000,5000))
Case check ()="не вижу карту"
Send("{f10}")
Sleep(Random(3000,4000))
;Case location()="DT" ;-------------ПРАВИТЬ 1
;MouseClick("left",random(512,532),Random(439,444),1,Random(50,80))
;Send("{Enter}")
Case Check()="logScreen"
_Then("Pass")
Case location()="в варпе" Or location()="докаюсь" Or location()="загрузка" Or process ()="нет процесса" ;в варпе
Sleep(4000)
Case Cargo()="карго пуст" And location()="космос-вижу белт" And target()="Влоке" And dist()="достаю"
_Then("mine")
Case location()="около станции" And Cargo()="карго пуст";пустой у станции
$Status="пустой варпаю в белт"
$CurBelt = Random($Belt[0], $Belt[1], 1)
OpenMenu(2, $CurBelt, 1) ;Варпаем в белт
Case location()="в доке" And Cargo()="карго полон"
_Then("Otgruz")
Case Cargo()="карго полон" And location()="космос-вижу белт" ;карго полон вижу белт лечу в док
$Status="в белте карго полон лечу в док"
OpenMenu(5,1,4)
Case Cargo()="карго пуст" And location()="космос-вижу белт" And target()="не Влоке"
_Then("lock")
Case Cargo()="карго пуст" And location()="космос-вижу белт" And target()="Влоке" And dist()="не Достаю"
_Then("aproch")
Case Cargo()="карго полон" And location()="около станции"
if $popitki=3 Then ;попытки захода
OpenMenu(5,1,4)
$popitki=0
Else
OpenMenu(5,1,3)
$popitki=$popitki+1
EndIf
Case Cargo()="карго пуст" And location()="в доке"
_Then("Undock")
EndSelect
EndFunc
Func Check();-----------------------------------check
PixelSearch(63,94,109,170,0xfefefe,20);--------------------карту
If not @error Then
$status="вижу карту"
$map="вижу карту"
Else
$status="не вижу карту"
$map="не вижу карту"
EndIf
PixelSearch(12,9,25,10,0xe6e5e5,20);------------------------поиск белых полосок над портретом слево
If not @error Then
$status="вижу полоски"
$poloski="вижу полоски"
Else
$status="не вижу полоски"
$poloski="не вижу полоски"
EndIf
PixelSearch(397, 679, 401, 686, 0x999999, 20);user
if @error Then
$status="невижу юзер"
$user="невижу юзер"
Else
$status="вижу юзер"
$user="вижу юзер"
EndIf
PixelSearch(397, 679, 401, 686, 0x999999, 20);connect
if @error Then
$status="не вижу коннект"
$connect="не вижу коннект"
Else
$status="вижу коннект"
$connect="вижу коннект"
EndIf
$EVE1= PixelGetColor(447,70)
$EVE2= PixelGetColor(563,72)
Select
Case $map="не вижу карту" And $poloski="вижу полоски"
Return "не вижу карту"
Case $poloski="вижу полоски"And $user="не вижу юзер" And $connect="не вижу коннект"
$status="noLogScreen"
Return "nologScreen"
Case $poloski="не вижу полоски"And $user="вижу юзер" And $connect="вижу коннект"
$status="LogScreen"
Return "logScreen"
Case $EVE1 = 0xffffff And $EVE2 =0xffffff
$status="EVEScreen"
Return "EVEScreen"
Case Else
Return "нехрена невижу"
EndSelect
EndFunc
Func process ()
if ProcessExists("ExeFile.exe") Then
$status="есть процесс"
Return "есть процесс"
Else
$status="нет процесса"
Return "нет процесса"
EndIf
EndFunc
Func location()
PixelSearch(531,313,531,313,0xbfbfbf,10); буква l в слове соннектион лост
If Not @error Then
$conLost1="вижу l"
Else
$conLost1="не вижу l"
EndIf
PixelSearch(408,325,408,325,0x00498c,5); cиний цвет в слове соннектион лост
If Not @error Then
$conLost2="вижу синий"
Else
$conLost2="не вижу синий"
EndIf
PixelSearch(463,310,463,310,0xbfbfbf,10); буква Д в слове шутдавн ин прогресс
If Not @error Then
$DT2="вижу д"
Else
$DT2="не вижу д"
EndIf
PixelSearch(521,310,521,310,0xbfbfbf,10); буква i в слове шутдавн ин прогресс
If Not @error Then
$DT1="вижу и"
Else
$DT1="не вижу и"
EndIf
PixelSearch(394,397,395,411,0x7f7f7f,20);полоска загрузки
If Not @error Then
$loading1="Вижу загрузку1"
Else
$loading1="не Вижу загрузку1"
EndIf
PixelSearch(397,397,398,411,0x7f7f7f,20);полоска загрузки
If Not @error Then
$loading2="Вижу загрузку2"
Else
$loading2="не Вижу загрузку2"
EndIf
PixelSearch(547,318,548,330,0xbfbfbf);буква l в слове lost
If Not @error Then
$discon1="Вижу л"
Else
$discon1="не Вижу л"
EndIf
PixelSearch(581,318,582,330,0xbfbfbf);буква t в слове lost
If Not @error Then
$discon2="Вижу т"
Else
$discon2="не Вижу т"
EndIf
PixelSearch(483,505,484,508,0xc3c4c5,50);буква д в слове варп драйв
If Not @error Then
$warp1="вижу д"
Else
$warp1="не вижу д"
EndIf
PixelSearch(583,504,584,508,0xc3c4c5,50);буква I в слове активайт
If Not @error Then
$warp2="вижу и"
Else
$warp2="не вижу и"
EndIf
PixelSearch(476,504,478,508,0xc3c4c5,50);буква д в слове докинг
If Not @error Then
$docking1="вижу д"
Else
$docking1="не вижу д"
EndIf
PixelSearch(524,504,526,508,0xc3c4c5,50);буква и в слове докинг
If Not @error Then
$docking2="вижу и"
Else
$docking2="не вижу и"
EndIf
$OverKUB=PixelSearch(754,119,775,158,0xcccdcd,20);поиск пикселя кубика овервью
If Not @error Then
;$OverKUB="вижу куб"
PixelSearch($OverKUB[0]+98,$OverKUB[1]+59,$OverKUB[0]+125,$OverKUB[1]+67, 0xdad7d7, 50);белта
if Not @error Then
$beltcheck="вижу белт"
Else
$beltcheck="не вижу белт"
EndIf
Else
$OverKUB="не вижу куб"
EndIf
PixelSearch(8, 718, 31, 735, 0xd5b237, 50);проверка на космос
If Not @error Then
$dockBotton="вижу кн.док"
Else
$dockBotton="не вижу кн.док"
EndIf
Select
Case $DT1="вижу и" And $DT2="вижу д"
$Status="DT"
Return "DT"
Case $loading1="Вижу загрузку1" And $loading2="Вижу загрузку2"
$Status="загрузка"
Return "загрузка"
Case $warp1="вижу д" And $warp2="вижу и";варп чек
$Status="в варпе"
Return "в варпе"
Case $docking1="вижу д" And $docking2="вижу и";
$Status="докаюсь"
Return "докаюсь"
Case $OverKUB="не вижу куб" and $dockBotton="вижу кн.док"
$Status="в доке"
Return "в доке"
Case $dockBotton="не вижу кн.док" And $beltcheck="не вижу белт"
$Status="около станции"
Return "около станции"
Case $dockBotton="не вижу кн.док" And $beltcheck="вижу белт"
$Status="космос-вижу белт"
Return "космос-вижу белт"
EndSelect
EndFunc
Func Cargo() ;--------------------------cargo ()
WinActivate($Win)
PixelSearch(12,9,25,10,0xe6e5e5,20)
If not @error Then
;OpenCargo()
PixelSearch(62, 347, 74, 399, 0xffffff, 10);поиск треугольника карго
if Not @error Then
$Status="трюм открыт"
Else
Send("{altdown}")
Sleep(Random(100,500))
Send("{c}")
Sleep(Random(100,500))
Send("{altup}")
$Status="трюм закрыт"
Sleep(2000)
EndIf
EndIf
$coord=PixelSearch(62, 347, 74, 399, 0xffffff, 10)
If Not @error Then
PixelSearch($coord[0]+179,$coord[1]-3,$coord[0]+187,$coord[1]+3,0x004c62, 20)
If @error Then
$Status="карго пуст"
Return "карго пуст"
Else
$Status="карго полон"
Return "карго полон"
EndIf
EndIf
EndFunc
Func HP()
PixelSearch(508,600,510,504, 0xff2222, 10)
If @error Then
$Status="хп в норме"
$hp="хп в норме"
Else
$Status="мало хп"
$hp="мало хп"
EndIf
Select
Case $hp="мало хп"
PixelSearch(639, 692,639, 692,0x000000,50)
if Not @error Then
Send("{altdown}")
Sleep(Random(100,500))
Send("{f1}")
Sleep(Random(100,500))
Send("{altup}")
EndIf
Case $hp="хп в норме"
PixelSearch(639, 692,639, 692,0x000000,50)
if @error Then
Send("{altdown}")
Sleep(Random(100,500))
Send("{f1}")
Sleep(Random(100,500))
Send("{altup}")
EndIf
EndSelect
EndFunc
Func target();Залочина ли цель
PixelSearch(12,9,25,10,0xe6e5e5,20)
if not @error Then
PixelSearch($OverKUB[0],$OverKUB[1]+59,$OverKUB[0]+8,$OverKUB[1]+67,0xffffff, 10)
if Not @error Then
$Status="Влоке"
Return "Влоке"
Else
$Status="не Влоке"
Return "не Влоке"
EndIf
EndIf
EndFunc
Func Dist();досигаемость
if $OverKUB= @error Then
$status="error"
Else
PixelSearch($OverKUB[0]+81,$OverKUB[1]+59,$OverKUB[0]+81,$OverKUB[1]+67,0xc9c9c9, 50);поиск дистанции
If Not @error Then
$Status="не Достаю"
Return "не Достаю"
Else
$Status="достаю"
Return "достаю"
EndIf
EndIf
EndFunc
Func _Then ($case)
Select
Case $case="pass"
MouseClick("left",472,707,2)
;Send("^a")
Sleep(Random(500,1000))
Send($pass)
Sleep(Random(500,1000))
Send("{Enter}")
ToolTip("Логинимся",0,0)
Sleep(Random(5000,6000))
;Case $case="restart"
;Send("{Enter}")
;MouseClick("left",random(474,515),Random(483,499),1,Random(50,80))
_pause()
Case $case="WarpToBelt"
$CurBelt = Random($Belt[0], $Belt[1], 1)
OpenMenu(2, $CurBelt, 1) ;Варпаем в рандомный белт
Case $case="WarpToDock"
OpenMenu(5,1,4)
Case $case="lock"
if $LockTray<=10 Then
Send("{ctrldown}")
Sleep(Random(500,1000))
MouseClick("left",Random($OverKUB[0]+5,$OverKUB[0]+59),Random($OverKUB[1]+59,$OverKUB[1]+67),1,Random(20,80))
Sleep(Random(500,1000))
Send("{ctrlup}")
Sleep(Random(500,1000))
$LockTray=$LockTray+1
Else
$CurBelt = Random($Belt[0], $Belt[1], 1)
OpenMenu(2, $CurBelt, 1)
$LockTray=0
EndIf
Case $case="aproch"
MouseClick("left",Random($OverKUB[0]+5,$OverKUB[0]+59),Random($OverKUB[1]+59,$OverKUB[1]+67),2,Random(20,80));дабл клинк в рандомной части относительно куба
Sleep(Random(500,1000))
If $AB="Off" Then
Send("{altdown}")
Sleep(Random(100,500))
Send("{f2}")
Sleep(Random(100,500))
Send("{altup}")
Sleep(Random(100,500))
$AB="On"
EndIf
Sleep(Random(4000,6000))
Case $case="mine"
PixelSearch(542, 714,542, 714,0x538fc2,5)
If Not @error Then
$Status="тормозим"
Send("{ctrldown}")
Sleep(Random(100,500))
Send("{SPACE}");тормазим
Sleep(Random(100,500))
Send("{ctrlup}")
EndIf
Sleep(Random(500,1000))
if $AB="On" Then
Send("{altdown}")
Sleep(Random(100,500))
Send("{f2}")
Sleep(Random(100,500))
Send("{altup}")
$AB="Off"
EndIf
;==================================стриппы
$RndStrp1=Random(30000,35000)
$RndStrp2=Random(30000,35000)
$RndStrp3=Random(30000,35000)
PixelSearch(614, 648,614, 648,0x000000,50);проверка активности 1го стрипа
If Not @error Then
$Status="стрип 1 - активирую..."
Send ("{f1}")
$minetime=TimerInit()
Sleep(Random(500,1000))
Else
If TimerDiff($minetime)>=$RndStrp1 Then
Send ("{f1}")
Sleep(random(1000,1500))
EndIf
EndIf
Sleep(Random(1000,2000))
PixelSearch(665, 648,665, 648,0x000000,50)
If Not @error Then
$Status="стрип 2 - активирую...";проверка активности 2го стрипа
Send ("{f2}")
Sleep(Random(500,1000))
Else
If TimerDiff($minetime)>=$RndStrp2 Then
Send ("{f2}")
Sleep(random(1000,1500))
EndIf
EndIf
Sleep(Random(1000,2000))
PixelSearch(716, 648,716, 648,0x000000,50);проверка активности 3го стрипа
If Not @error Then
$Status="стрип 3 не включился - активирую..."
Send ("{f3}")
Else
If TimerDiff($minetime)>=$RndStrp3 Then
Send ("{f3}")
Sleep(random(1000,1500))
EndIf
EndIf
Case $case="Otgruz";----------------------------------otgruz
if $coord= @error Then
$status="error"
Else
Sleep(Random(3000,5000))
MouseClickDrag("left",$coord[0]+Random(233,250),$coord[1]+Random(133,143),$coord[0]+Random(124,134),$coord[1]+Random(42,52),Random(40,80))
Sleep(Random(1000,1500))
MouseClickDrag("left",$coord[0]+Random(124,134),$coord[1]+Random(42,52),$coord[0]+Random(37,47),$coord[1]+Random(69,73),Random(40,80))
Sleep(Random(1000,2000))
if Cargo()="карго пуст" Then
_TicksToTime(Int(TimerDiff($CicleTime)), $Hour, $Mins, $Secs)
$iDiff = StringFormat("%02d:%02d:%02d", $Mins, $Secs)
$LootCount=$LootCount+1
EndIf
EndIf
Case $case="Undock"
WinActivate($Win)
MouseClick("left", Random(9,31), Random(713,726), 1)
$CicleTime = TimerInit()
EndSelect
EndFunc
Func _Exit()
Exit
EndFunc
Func OpenMenu($L1, $L2, $L3) ;за модуль спс Belfigor
$L1 = $L1-1
$L2 = $L2-1
$L3 = $L3-1
Local $x=Random(53,65), $y=Random(32,42)
MouseClick("left", $x, $y, 1, Random(15,70))
Sleep(500)
Local $var = PixelSearch($x, $y+8+15*$L1, $x+400, $y+8+15*$L1, 0xCDCDCD, 5);Ищим треугольник справа от строки на которую хотим ткнуть
If Not @error Then ;если нашли
MouseMove($var[0], $var[1], Random(15,70)) ;наводим на него мышь и тем самым открываем второй уровень меню
Sleep(Random(500,1500))
Local $var1 = PixelSearch($var[0]+50, $var[1]+15*$L2, $var[0]+600, $var[1]+15*$L2, 0xCDCDCD, 5) ;а5 ищим треугольник справа от строки на которую хотим ткнуть
If Not @error Then ;если нашли
MouseMove($var1[0], $var1[1], Random(15,70)) ;наводим на него мышь и тем самым открываем третий уровень меню
Sleep(Random(500,1500))
MouseClick("Left", $var1[0]+Random(50,90), $var1[1]+15*$L3, 1, Random(15,70)) ;Ну и таки жмакаем на команду на которую хотели. Я буду работать только со строками варп в 0 и док, так что Warp to with in, изголяться и добавлять работу с 4-м уровнем меню я не стал
Else
;SetError(2) ;Если мы ошиблись на 2-м уровне - возвращаем Еррор = 2
EndIf
Else
;SetError(1) ;Если ошиблись на первом уровне возвращаем Еррор = 1
EndIf
Sleep(Random(3000,5000))
EndFunc
Func Status()
ToolTip("время цикла="&$iDiff&" \отгрузов="&$LootCount&" \Статус="&$Status,0,0)
EndFunc
Func _pause()
$pause=$pause+1
while $pause=1
Sleep(100)
$Status="Пауза..."
WEnd
$Status="Снята пауза..."
Sleep(200)
$pause=0
EndFunc