#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=..\icons\иконки устройств\1013.ico
#AutoIt3Wrapper_UseX64=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <Date.au3>
Opt("TrayIconDebug", 1)
Opt("PixelCoordMode", 2) ;Отсчет координат пикселей от левого верхнего угла клиентской части окна
Opt("MouseCoordMode", 2) ;Отсчет координат мыши от левого верхнего угла клиентской части окна
Opt ("MouseClickDelay", 20);Задаем интенсивность нажатия мыши.
Opt ("SendKeyDownDelay", 100)
HotKeySet ("{`}","_exit");задаем горячую клавишу остановки скрипта
HotKeySet ("{\}","_pause")
WinMove("EVE", "", -3, -25)
;+++ Шапка +++
Global $LootCount=0;счетчик количества сбросов лута за время работы бота.
Global $DrChk;счетчик для вычисления кликов мышью.если только прилетели на белт полный набор кликов для запуска дронов и активации майна ими.
Global $pause
Global $timer = TimerInit();таймер
Dim $hour,$min,$sec
Global $y=133;координата Y в меню бук.
Global $x;Номер буки
checkbeltnum()
IniWrite("D:\eve.ini","Script", _NowCalc(),"Start,Belt №" & $x)
IniWrite("D:\eve.ini","Mined",_NowCalc(),"начало работы")
IniWrite("D:\eve.ini","Status",_NowCalc(),"начало работы")
IniWrite("D:\eve.ini","Error",_NowCalc(), "начало работы")
#cs
справка по белтам цифра - значение $y`
1-133 2-149 3-165
4-181 5-197 6-213
7-229 8-245 9-261
10-277 11-293 12-309
#ce
;===================================
;;++++++++++ Ниже основа ;++++++++++
while $y<454
WinActivate("EVE")
WinWaitActive("EVE");активируем окно с евой,чтобы покорить еву ботством...:)
Undock();андокаемся - пока не пройдет проверка повторяем...
Sleep (1000)
checkbeltnum()
ConvoCheck()
WarpToBelt();плывем к белту - ломимся,пока не пройдут проверки.
Sleep (500)
ConvoCheck()
Mine();здесь процесс добычи с проверками на заполненность трюма,лока,конво.
sleep (300)
Dock();летим домой
OreToHome();сбрасываем руду;проверка осталось ли че? :) Если осталось - повторить.
ConvoCheck()
Wend
_exitgame()
_exit()
;============================Конец основы================================
;++++++++++ завершение работы скрипта + время работы скрипта
Func _exit()
ToolTip("Завершение скрипта",0,0)
Sleep(200)
_TicksToTime(Int(TimerDiff($timer)),$hour,$min,$sec)
$ScriptWorked=StringFormat("%02d:%02d:%02d", $hour,$min,$sec)
IniWrite("D:\eve.ini","Script",_NowCalc(), "Stop,Belt №" & $x &" -- "& "Время работы: "& $ScriptWorked)
IniWrite("D:\eve.ini","Mined",_NowCalc(), "конец работы, " & "всего сброшено лута: " & $LootCount)
IniWrite("D:\eve.ini","Status",_NowCalc(), "конец работы")
IniWrite("D:\eve.ini","Error",_NowCalc(), "конец работы" )
Exit
EndFunc
;=================================
;++++++++++ пауза
Func _pause()
$pause=$pause+1
while $pause=1
ToolTip("Пауза...",0,0)
Sleep(200)
WEnd
ToolTip("продолжаем...",0,0)
Sleep(200)
$pause=0
EndFunc
;=================================
;++++++++++ функция полета на белт
Func WarpToBelt()
Do
ToolTip ("Пытаемся варпнутся к белту",0,0)
MouseClick ("left",62, 47,1,20);клик на треугольник
MouseMove(120, 52,20);плавно ведем мышь по меню
MouseMove(120, 133,20)
MouseMove(240, 133,20)
;доводим до списка бук белтов - эти первые 3 операции с мышью
;для всех белтов одинаковы
MouseMove(240, $y,20);доводим до 1го белта в списке(разница в 16 пикселей)
MouseClick("left",340, $y,1,20);
PixelSearch(839, 7,847, 15,0x868686,10)
If Not @error Then
Send("{F11}")
EndIf
Sleep (8000) ;летим ждем надпись "Гипердрайв активен"
Until CheckWarp()=0;повторяем попытки улететь на белт,пока не пройдет проверка на варп к белту
WinActivate("EVE")
WinWaitActive("EVE")
Do
Sleep(100)
ToolTip ("летим к белту",0,0)
Until CheckWarp()=1;повторяем надпись,пока не пройдет проверка на окончание варпа.
Sleep(4000);необходим,чтобы успели отсортироваться астеры,иначе улетит с белта.
$DrChk=0
EndFunc
;=============================
;++++++++++ функция проверки окончания варпа
Func CheckWarp()
PixelSearch (425, 527,425, 527,0xBCBCBC,10);проверяется левый верхний пиксель буквы Г в слове Гиперпрыжок :)пока он есть мы в гиперпрыжке.
If @error Then
Return 1
Else
Return 0
EndIf
EndFunc
;=============================
;++++++++++ выход из игры - до этого док и сброс лута.
Func _exitgame();если белты с дистанцией менее 10км к астероиду кончились - выйти из игры.
WinActivate("EVE")
WinWaitActive("EVE")
Dock()
OreToHome()
Send ("{esc}")
sleep (4000)
MouseClick ("left",851, 606,1,20)
IniWrite("D:\eve.ini","Game Exit - кончились буки",_NowCalc(),"Stop,Belt №" & $x)
Return
EndFunc
;======================================
;++++++++++ Полет домой если заполнен трюм
Func Dock()
WinActivate("EVE")
WinWaitActive("EVE")
Dronecontrol()
;если трюм заполнился - летим домой
Do
MouseClick ("left",62, 47,1,20);клик на треугольник`
MouseMove (123, 56,20);аккуратно ведем мышь
MouseMove (123, 157,20);дом
MouseMove (223, 157,20);додвигаем до начала меню дом
MouseClick ("left",223, 207,1,20);4й пункт 1й буки
sleep (6000);примерное время до появления надписи "Гипердрайв активен"
ToolTip ("Начинаю варпаться домой",0,0)
Sleep(200)
Until CheckWarp()=0;повторяем процедуру,пока не пройдем проверку на процесс варпа
Do
ToolTip ("Варп домой",0,0)
Until CheckWarp()=1
Do
ToolTip ("Лечу в док...",0,0)
Until CheckSpace()=0
ToolTip ("Мы дома",0,0)
Sleep(200)
EndFunc
;======================================
;++++++++++ вылет со станции.
Func Undock()
WinActivate("EVE")
WinWaitActive("EVE")
Do
ToolTip("Вылетаем ботить :)",0,0)
MouseClick("left",17, 735);щелчок на андок
Sleep(200)
ToolTip ("я на станции!",0,0)
Until CheckSpace()=1;спамить андок и показывать надпись каждую секунду,пока не появимся в космосе.
EndFunc
;======================================
;++++++++++ проверка на космос
Func CheckSpace()
WinActivate("EVE")
WinWaitActive("EVE")
PixelSearch(737, 122,737, 122,0xCFCFCF,10);ищем треугольник овервью
if not @error Then ;- мы находимся в космосе.
ToolTip ("я в космосе",0,0)
Sleep(200)
return 1
Else
return 0
EndIf
EndFunc
;======================================
;++++++++++ включить лазеры для добычи если дистанция ближе 10км
Func Mine()
Minestage1()
While CargoCheck()=0;пока не заполниться карго бурим,тут проверки на лок,конво.
WinActivate("EVE")
WinWaitActive("EVE")
While LockCheck()=1;проверка на лок
ToolTip("Атаке!" & "|" & "Белт " & $x,0,0)
Send ("{f1}")
Send ("{f2}")
Send ("{f3}")
Sleep (3500)
StripChk("On")
$stripwork=random (25000,30000)
Sleep ($stripwork)
WinActivate("EVE")
WinWaitActive("EVE")
Send ("{f1}")
Send ("{f2}")
Send ("{f3}")
ToolTip ("ждем пока не заполнится трюм",0,0)
sleep (2000)
StripChk("Off")
ToolTip ("проверка конво",0,0)
ConvoCheck()
If CargoCheck()=1 Then
ExitLoop
EndIf
WEnd
WEnd
EndFunc
;=================================================
;++++++++++ стадия майна 1 - лок,ссылка на проверку расстояния+активация дронов
Func Minestage1()
#comments-start
Do
Sleep (100)
SelItemCheck();проверка на выбор объекта(selected item).
ToolTip("Подлетаю к метеору ближе 10 км",0,0)
Until DistanceCheck()=1;повторяем цикл,пока дистанция не станет ближе 10км
#comments-end
Distforbelt()
MouseClick ("left",880, 74);жмем кнопку лока цели
ToolTip("Лочу цель",0,0)
;ждем окончания лока
If $DrChk=0 Then
MouseClick ("right",779, 628);меню дронов
sleep(500)
MouseClick ("left",806, 654);запустить дронов
Sleep (3000)
MouseClick ("right",779, 648);меню дронов
sleep(500)
MouseClick ("left",808, 695);непрерывно разрабатывать
sleep(100)
$DrChk=$DrChk+1
Else
MouseClick ("right",779, 648);меню дронов
sleep(2500)
MouseClick ("left",808, 695);непрерывно разрабатывать
sleep(100)
EndIf
EndFunc
;===========================
;++++++++++ проверка цели на лок
Func LockCheck()
PixelSearch(621, 80,636, 80,0x404040,10)
If not @error Then
Return 1
Else
ToolTip("Сбился лок - начинаю поиск ближайшего метеора",0,0)
Sleep (600)
;если лок сбился начинаем процедуру лока и бурения,как будто только прилетели на белт.
Minestage1()
return 0
EndIf
EndFunc
;===============================
;++++++++++ проверка на заполненность трюма
Func CargoCheck()
;WinActivate("EVE")
Sleep (200)
PixelSearch (279, 617,279, 617,0x005067,10);проверка на наличие синего цвета.если есть,то заполнен.
If Not @error Then
ToolTip("Трюм наполнился",0,0)
Sleep(200)
Return 1
Else
Return 0
EndIf
EndFunc
;==================================
;++++++++++ кусок сброса лута
Func OreToHome();функция сбрасывания руды на станцию
sleep (3000)
Do
ToolTip("Cбрасываю добычу",0,0)
Sleep(200)
MouseClick("left",150, 597,1,20);иногда происходит лаг и вся руда не вытаскивается,поэтому решил воткнуть костылик
Send ("^a")
MouseClickDrag ("left",63, 665,83, 366,20)
Sleep (2000)
Until FullEmptyCheck()=1
IniWrite("D:\eve.ini","Mined",_NowTime(5), "сброшен лут" & " Бука №" & $x)
$LootCount=$LootCount+1
IniWrite("D:\eve.ini","Loot","Count",$LootCount)
EndFunc
;================================
;++++++++++ проверка - сброшен лут или нет.
Func FullEmptyCheck()
PixelSearch (186, 618,186, 618,0x041115,10)
If @error Then
ToolTip ("лут еще есть!",0,0)
Sleep(200)
Else
ToolTip ("лут сброшен...",0,0)
Sleep(200)
return 1
EndIf
EndFunc
;=================================
;++++++++++ проверка на дистанцию - меньше или больше 10км - усовершенствовал - теперь определяет астероиды ближе 100 м адекватно.
Func Distforbelt()
WinActivate("EVE")
WinWaitActive("EVE")
MouseClick("left",774, 183,1,20)
Sleep (1200)
PixelSearch (828, 40,830, 44,0x8F8F8F,10);проверка диапазона пикселей между 2х значным XX числом километров и слова км.на наличие серого оттенка цвета(цвет чисел).
If not @error Then;PixelSearch (836, 40,840, 44,0x8F8F8F,10) если появился нужный цвет в диапазоне,значит мы уже ближе 10км и представление цифр изменилось на XXXX м.
ToolTip("Ближе 10км есть астероиды - майню на Белте " & $x & " дальше.",0,0)
Sleep (600)
Return
Else
PixelSearch (943, 74,951, 87,0x8E8E8E,10)
If @error Then
ToolTip("Белт пустой!Летим дальше.",0,0)
Sleep (500)
Else
PixelSearch (836, 40,840, 44,0x8F8F8F,10)
If @error Then
ToolTip("Ближе 10км есть астероиды - майню на Белте " & $x & " дальше.",0,0)
Sleep (600)
Return
EndIf
EndIf
$y=$y+16
ToolTip("нет астероидов ближе 10км - меняю белт № " & $x & " на белт №" & ($x+1),0,0)
Sleep(600)
Dronecontrol()
If $y>454 Then
_exitgame()
_exit()
EndIf
WarpToBelt()
checkbeltnum()
IniWrite("D:\eve.ini","Status",_NowTime(5), "Warp to belt №" & $x)
Distforbelt()
Return
EndIf
EndFunc
;==========================================
;++++++++++ узнаем номер белта по текущей координате y
Func checkbeltnum()
Select
Case $y=133
$x=1
Case $y=149
$x=2
Case $y=165
$x=3
Case $y=181
$x=4
Case $y=197
$x=5
Case $y=213
$x=6
Case $y=229
$x=7
Case $y=245
$x=8
Case $y=261
$x=9
Case $y=277
$x=10
Case $y=293
$x=11
Case $y=309
$x=12
Case $y=325
$x=13
Case $y=341
$x=14
Case $y=357
$x=15
Case $y=373
$x=16
Case $y=389
$x=17
Case $y=405
$x=18
Case $y=421
$x=19
Case $y=437
$x=20
Case $y=453
$x=21
EndSelect
EndFunc
;======================
;++++++++++ функции проверки конво
Func ConvoCheck()
If Check1()=1 Or Check2()=1 Or Check3()=1 Then ;3 проверки на конво,если вдруг срабатывает любая- принтскрин и загрузка громкой мелодии :)
ShellExecute ("D:\Autoit\proekts\1.mp3")
;_exitgame()
;_exit()
EndIf
EndFunc
Func Check1()
PixelSearch (303, 172,819, 581,0xFFA600,10)
If Not @error Then
IniWrite("D:\eve.ini","Convo",_NowCalc(), "АААА конво был бляяяя!!!сработала проверка 1")
Send ("{PRINTSCREEN}")
Return 1
Else
Return 0
EndIf
EndFunc
Func Check2()
PixelSearch (303, 172,819, 581,0x6284AF,10)
If Not @error Then
IniWrite("D:\eve.ini","Convo",_NowCalc(), "АААА конво был бляяяя!!!сработала проверка 2")
Send ("{PRINTSCREEN}")
Return 1
Else
Return 0
EndIf
EndFunc
Func Check3()
PixelSearch (303, 172,819, 581,0x0064C0,10)
If Not @error Then
IniWrite("D:\eve.ini","Convo",_NowCalc(), "АААА конво был бляяяя!!!сработала проверка 3")
Send ("{PRINTSCREEN}")
Return 1
Else
Return 0
EndIf
EndFunc
;========================
;++++++++++ контроль возврата дронов
Func Dronecontrol()
Send ("!{2}")
;PixelSearch(1009, 644,1009, 644,0x010203,5);проверка открыто ли меню.когда не раскрыто - в этом пикселе точка черного цвета.
;If Not @error Then
MouseClick ("left",779, 648);раскрыть меню для анализа состояния
; sleep(100)
;EndIf
While 1
Sleep (1000)
PixelSearch(938, 666,959, 669,0x404040)
If @error Then
ExitLoop
EndIf
ToolTip("Ждем дрончегов!",0,0)
PixelSearch(844, 664,920, 671,0x00DC00,10)
;иногда после нажатия назначенной комбинации клавиш для возврата дронов,они просто прилетают к кораблю со статусом - не используется.проверяем.
If Not @error Then
ToolTip("сцуко зависли!",0,0)
Sleep(2000)
Send ("!{2}");если дроны висят,вместо того,чтобы возвратиться - послать команду еще раз.
EndIf
WEnd
ToolTip("Дроны вернулись!",0,0)
MouseClick ("left",779, 648);закрыть меню.можно раскомментить вначале функции проверку на раскрытость.проще просто закрыть.
Sleep (600)
EndFunc
;================
;++++++++++ контроль стрипов
Func StripChk($StrStatus)
Select
Case $StrStatus = "On"
PixelSearch(612, 650,612, 650,0x000000);проверка активности 1го стрипа
If Not @error Then
ToolTip ("стрип 1 не включился - активирую...",0,0)
IniWrite("D:\eve.ini","Error",_Nowtime(5), "противофаза - стрип 1 не включился" & " Бука №" & $x)
Send ("{f1}")
Sleep (500)
EndIf
PixelSearch(664, 650,664, 650,0x000000)
If Not @error Then
ToolTip ("стрип 2 не включился - активирую...",0,0);проверка активности 2го стрипа
IniWrite("D:\eve.ini","Error",_Nowtime(5), "противофаза - стрип 2 не включился" & " Бука №" & $x)
Send ("{f2}")
Sleep (500)
EndIf
PixelSearch(714, 650,714, 650,0x000000);проверка активности 3го стрипа
If Not @error Then
ToolTip ("стрип 3 не включился - активирую...",0,0)
IniWrite("D:\eve.ini","Error",_Nowtime(5), "противофаза - стрип 3 не включился" & " Бука №" & $x)
Send ("{f3}")
Sleep (500)
EndIf
Case $StrStatus = "Off"
PixelSearch(612, 650,612, 650,0x000000);проверка на выключение 1го стрипа
If @error Then
ToolTip ("стрип 1 не выключился - выключаю...",0,0)
IniWrite("D:\eve.ini","Error",_Nowtime(5), "противофаза - стрип 1 не выключился" & " Бука №" & $x)
Send ("{f1}")
Sleep (500)
EndIf
PixelSearch(664, 650,664, 650,0x000000)
If @error Then
ToolTip ("стрип 2 не выключился - выключаю...",0,0);проверка на выключение 2го стрипа
IniWrite("D:\eve.ini","Error",_Nowtime(5), "противофаза - стрип 2 не выключился" & " Бука №" & $x)
Send ("{f2}")
Sleep (500)
EndIf
PixelSearch(714, 650,714, 650,0x000000);проверка на выключение 3го стрипа
If @error Then
ToolTip ("стрип 3 не выключился - выключаю...",0,0)
IniWrite("D:\eve.ini","Error",_Nowtime(5), "противофаза - стрип 3 не выключился" & " Бука №" & $x)
Send ("{f3}")
Sleep (500)
EndIf
EndSelect
EndFunc
;=======================