yaodnako
Продвинутый
- Сообщения
- 120
- Репутация
- 78
Это мой первый Бот.Еще не закончен.Он донельзя примитивен,но работает
Писал сам под себя,прочитав статью о концепции бота Belfigor'а.
Придумал примерно что хочу от бота,и последовательно функция за функцией составлял.
Посмотрел ледяного бота - много чего не понял и решил сам с нуля писать.Лучше проще и меньше - зато с кристальной ясностью что делает каждый элемент.
У меня нет Макинавы - копаю на примитивном Navitas.но это неважно - главное все работает
Выложил для ознакомления новичкам(почти все комментил) и может ветераны что-нибудь посоветовуют или может какую оптимизацию предложат :whistle:
p.s. убрал все координаты - решил,что хочу,чтобы человек,скачавший бота - (пусть даже это вермишель)пошевелил мозгами и настроил все сам - к тому же все очень подробно расписано что и где кликается,ищется...
p.p.s
Последняя версия бота 2.5 и 2.5i(лёд) тут
Настройки - тут
Писал сам под себя,прочитав статью о концепции бота Belfigor'а.
Придумал примерно что хочу от бота,и последовательно функция за функцией составлял.
Посмотрел ледяного бота - много чего не понял и решил сам с нуля писать.Лучше проще и меньше - зато с кристальной ясностью что делает каждый элемент.
У меня нет Макинавы - копаю на примитивном Navitas.но это неважно - главное все работает
Выложил для ознакомления новичкам(почти все комментил) и может ветераны что-нибудь посоветовуют или может какую оптимизацию предложат :whistle:
Код:
Opt("PixelCoordMode", 2) ;Отсчет координат пикселей от левого верхнего угла клиентской части окна
Opt("MouseCoordMode", 2) ;Отсчет координат мыши от левого верхнего угла клиентской части окна
;Opt("MustDeclareVars", 1)
Opt ("MouseClickDelay", 50)
HotKeySet ("{`}","_exit");задаем горячую клавишу остановки скрипта
;----------------------------------------------Ниже основа ------------
while 1
WinActivate("EVE - CharName")
Undock()
sleep (1000)
WarpToBelt()
Sleep (1000)
MouseClick("left",x, y,2);здесь апруч к первому в overview метеору - пока проверок на отсутсвие нет.
sleep (1000)
Mine();здесь проверка расстояния,лок цели,добыча.
sleep (1000)
Dock();здесь проверка на трюм и отлет домой при наполнении
sleep (3000)
OreToHome()
;sleep (27000)
Wend
;--------------------------------------------Конец основы---------------
;--------------------------------------------------
Func _exit();завершение работы скрипта
Exit
EndFunc
;--------------------------------------------------
Func WarpToBelt() ;функция варпа на белт
;здесь есть один нездоровый глюк - после андока
;,почему то по правому клику на закладке перестает работать варп на белт.т.е. в выпадающем меню нету варпа
;но когда в оverview щелкнуть на какой либо объект,то все начинает работать.
MouseClick ("left",x, y);переключить с вкладки mining на основную
sleep (2000)
MouseClick ("left",x, y);кликнуть на 2й объект
sleep (500)
MouseClick ("right",x, y);правой клавишей на буку
sleep (100)
MouseClick ("left",x, y);выбираем варпаться в белт
sleep(100)
MouseClick ("left",x, y);возращаемся с основной вкладки на настроенную нами заранее вкладку mining
Sleep (4000)
Do
WinActivate("EVE - CharName")
ToolTip ("летим к белту",0,0)
Until CheckEndWarp()=1
EndFunc
;-----------------------------------------------
Func CheckEndWarp() ;функция проверки окончания варпа
PixelSearch (x, y,x1, y1,color);проверяется левый верхний пиксель буквы Г в слове Гиперпрыжок :)пока он есть мы в гиперпрыжке.
If @error Then
Return 1
Else
Return 0
EndIf
EndFunc
;----------------------------------------------
Func CheckAsteroid();проверка на наличие любого объекта в оverview(в данном случае астероида)- пока не встроен
WinActivate("EVE - CharName")
PixelSearch (x, y,x1,y1,color);
If @error Then
Return 0
Else
Return 1
EndIf
EndFunc
;------------------------------------------------
Func Dock() ;Полет домой если заполнен трюм
Do
ToolTip ("ждем пока не заполнится трюм",0,0)
Until CargoCheck()=1
WinActivate("EVE - CharName")
MouseClick("right",x, y,1);правой на буке "дом"
MouseClick("left",x, y,1);левой на строку док на станцию
Do
ToolTip ("Летим домой",0,0)
Until CheckSpace()=0
EndFunc
;------------------------------------------------
Func CargoCheck();проверка на заполненность трюма
WinActivate("EVE - CharName")
PixelSearch (x, y,x1, y1,color);проверка на наличие синего цвета.если есть,то заполнен.
If Not @error Then
Return 1
Else
Return 0
EndIf
EndFunc
;-----------------------------------------------
Func Undock();вылет со станции.
WinActivate("EVE - CharName")
MouseClick("left",x, y);щелчок на андок
Do
ToolTip ("я на станции!",0,0)
Until CheckSpace()=1
EndFunc
;-----------------------------------------------
Func CheckSpace();проверка на космос
WinActivate("EVE - CharName")
PixelSearch(x, y,x1, y1,color);ищем наличие черного цвета в пикселе.при появлении любого другого цвета в пикселе -
if @error Then ;- мы находимся в космосе.(у меня данный пиксель при андоке меняется на оранжевый цвет)
;ToolTip ("я в космосе",0,0)
return 1
Else
return 0
EndIf
EndFunc
;------------------------------------------------
Func Mine();включить лазеры для добычи если дистанция ближе 10км
Do
ToolTip("Подлетаю к метеору ближе 10 км",0,0)
Until DistanceCheck()=1
MouseClick ("left",x, y);жмем кнопку лока цели
Sleep (5000);ждем окончания лока
Send("{F1}");копать лазером 1
Send("{F2}");копать лазером 2
EndFunc
;------------------------------------------------
Func DistanceCheck();проверка на дистанцию - меньше или больше 10км
WinActivate("EVE - CharName")
PixelSearch (x, y,x1, y1,color);проверка диапазона пикселей между 2х значным числом километров и слова км.на наличие черного цвета.
If @error Then ;если появился любой цвет в диапазоне,кроме черного,значит мы уже ближе 10км.
ToolTip("ближе 10км",0,0)
Return 1
Else
Return 0
EndIf
EndFunc
;-------------------------------------------------
Func OreToHome();функция сбрасывания руды на станцию
MouseClickDrag ("left",x, y,x1,y1,30)
EndFunc
;--------------------------------------------------
p.s. убрал все координаты - решил,что хочу,чтобы человек,скачавший бота - (пусть даже это вермишель)пошевелил мозгами и настроил все сам - к тому же все очень подробно расписано что и где кликается,ищется...
p.p.s
Последняя версия бота 2.5 и 2.5i(лёд) тут
Настройки - тут