Что нового

Майнер бот. Эволюция от примитивного до умного.v2.5

Автор
yaodnako

yaodnako

Продвинутый
Сообщения
120
Репутация
78
Enemy [?]
Привет, спс за логику бота лучше чем вермишелина циклом )Всё настроил работает успешноОбновления не будет? Интересно посмотреть если ли функция подлёта к астероидам? т.к. он видит что цель с дальностью в КМ то варпается на след белтв этот скрипт добавил в некоторые места рандомные клики задержки и маус мувы... как пройдусь по всем, выложу сюда

Я давно в еву не заходил. Вчера зашел. офигел от того, что сделали с ангаром и каргохолдом корабля :smile:
Пришлось вытащить все в отдельные окна и щас нужно научить открывать ангар при каждом прилете на станцию и детектить это дело.

Про подлет к астерам. В КМ - ты имеешь ввиду ближе 1 км у тебя варпается на след белт? Цель дальностью в меньше км он должен отлично определять! посмотри - там в логике 1 проверка на наличие серого за словом "КМ", затем если не найдено, то проверяется наличие буквы "К" в слове "КМ" и если его нет, значит мы ближе 100 м :smile: настрой точно датчики. он даже ближе 10 м должен правильно определять.
А вот если ты имеешь ввиду при дальности дальше 10км чтобы подлетал. Так это не сложно же реализовать! Просто убери там отварп при видении астера дальше 10 км.и пусть апручится и пока ближе 10км не окажется.как только оказался контрол спэйс и давай дальше майнить. у меня так раньше было, только без остановки шипа. и он часто путался в астерах. В сто раз проще буки ставить, если только ты не арконор майнишь, которого на белте мало :smile: Апруч долгий очень на халке или макинаве.
Ща пока не обновляю - лень писать чето новое :smile: Пока все должно работать - нужно только сделать, чтобы проверял открыт ангар или нет на станции, если нет, то альт-джи :smile: ну и конечно перед этим повытаскивать из общего окна все эти карго корабля и ангар. Ну и конечно переопределить датчики карго из за изменения карго они перестали правильно определять.
 

Enemy

Знающий
Сообщения
42
Репутация
7
да спс, он-то работает без проблем пришлось своё немного дописать с ангаром проблем нет, он по дефолту открывает корабль )
только меня забанили, на 15 дней, кто его знает как спалии, год назад майнил в 1.0 по 12-14 часов, сейчас чуть побольше там же и вот такая беда: "EULA/TOS Violation - Macro use"
на всякий дурака включил и тикет им написал

кстати, реально халом в 0.9-0.5 копать ботом? выдержит танковкой непись?
 

garrul

Знающий
Сообщения
16
Репутация
10
Enemy [?]
кстати, реально халом в 0.9-0.5 копать ботом? выдержит танковкой непись?
до 0.6 включительно можно танковать (в принципе то если надо можно и 0.0 непись танковать), но копать нужно не ниже 0.7 ибо время подлёта конкорда в 0.6 уже неуд, успевают разобрать камикадзы, а в 0.7 не успевают
 

temixpsih

Новичок
Сообщения
1
Репутация
0
Добрый день!
Помогите нубу разобраться как с ботом работать?
Если можно то отпишите что для этого необходимо?
Не совсем понимаю просто что это за файлы выложены, они являются что то типа дополнением или настройки для autoit или как?
Еще прошу скинуть ссылки где надо прочитать что либо чтобы вообще запустить данный бот?
Заранее спасибо... :-[
 

Enemy

Знающий
Сообщения
42
Репутация
7
в том то и дело, что я прописал рандом на клики )) видимо пересидел по времени ))) посчитал получалось более 12 часов в день
 

Enemy

Знающий
Сообщения
42
Репутация
7
Код:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=..\icons\иконки устройств\1013.ico
#AutoIt3Wrapper_Outfile=miranda.exe
#AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <Date.au3>
Opt("TrayIconDebug", 1)
Opt("PixelCoordMode", 2) ;Отсчет координат пикселей от левого верхнего угла клиентской части окна
Opt("MouseCoordMode", 2) ;Отсчет координат мыши от левого верхнего угла клиентской части окна
Opt ("MouseClickDelay", 15);Задаем интенсивность нажатия мыши.
Opt ("SendKeyDownDelay", 200)
HotKeySet ('{`}','_exit');задаем горячую клавишу остановки скрипта
HotKeySet ("{\}","_pause")
HotKeySet ("{RIGHT}","BeltPlus");горячая клавиша изменения номера белта в процессе работы бота +
HotKeySet ("{LEFT}","BeltMinus");горячая клавиша изменения номера белта в процессе работы бота -
HotKeySet("{UP}","DroneUse");активировать,деактивировать работу дронов.
HotKeySet("{DOWN}","ConvoSwitch");выбрать реакцию на конво mp3 или выход из игры.
WinMove("EVE", "", -5, -23)

;+++ Шапка +++
;config
;ВСЕ ПИКСЕЛЬСЁЧИ
Global $LockConf[7]=[687, 82, 687, 82,0x9B9B9B,10];в слове Астероид левый верхний пиксель буквы о.
Global $StripConf[6]=[614, 650,614, 650,0x000000];стрипы
Global $AstLockChkConf[10]=[779, 193,0xFFFFFF,0xAEAEAE,0xC3C3C3];лок астероида в овервью(край центра лока в овервью) цвета - белый лок акт,серый пасс, серый выделен.
Global $LockUseConf[8]=[722, 14,751, 69,0xFFFFFF,10];активные модули на локе(светлый оттенок в иконке стрипа на локе,он есть даже когда 3 стрипа активны и иконки оч.маленькие)
Global $LockCenter[3]=[686, 45];примерная точка в центре залоченной цели.
Global $ChkAstCanLock[7]=[783, 221,783, 221,0x212121,10];проверка наличия астероида для лока(точка 2й серой полоски).если она есть, значит есть второй объект для лока.
Global $10kmCfg[7]=[875, 41,879, 48,0x999999,20];проверка диапазона пикселей между 2х значным XX числом километров и слова км.на наличие серого оттенка цвета(цвет чисел).
Global $AsterCfg[7]=[834, 191,834, 400,0xC5C5C5,10];для проверки наличия астеров на белте.поиск по прямой проведенной через левый край буквы m в овервью.
Global $LockAdvCfg[7]=[921, 77,922, 78,0xFF0000,10];ищем красный крест на кнопке лока,если он есть,то лочить не рекомендуется:)(тупо разлочим уже залоченную цель)
Global $CargoCfg[7]=[205, 319,205, 319,0x004F66,10];проверка на наличие синего цвета в полоске карго.пиксель не в самом конце, а примерно на 0.5см, чтобы при разгоне в варп домой стрипы
;как раз добрали недостающую часть, а не работали в холостую.
Global $WarpCfg[7]=[417, 501,417, 501,0xBFBFBF,10];проверяется левый верхний пиксель буквы W в слове Warp Drive... :)пока он есть мы в гиперпрыжке.
Global $DockChkCfg[7]=[4, 736,35, 718,0xFFD942,10];поиск желтого цвета в кнопке андок
Global $SpaceChkCfg[7]=[777, 130,781, 136,0xCCCCCC,10];ищем треугольник овервью(проверка на космос)
Global $ProcessCfg[7]=[468, 410,468, 483,0x7F7F7F,1];проверка на процесс
Global $EmptyCargoCfg[7]=[361,170,361,170,0x000000,20];проверка сброшен ли груз на станции.пиксель у начала полоски заполнения карго.
Global $ConvoCfg[6]=[303, 172,819, 581,10];диапазон где происходит поиск проверки на конво и шейд.
Global $MenuChkCfg[7]=[278, 255,361, 263,0x999999,10];проверка длины меню, если меню короче, то мы около станции и пункт док в меню 2й ,иначе 4й.
Global $MenuChkCfg2[7]=[76, 127, 168, 154, 0x989898,10];проверка длины меню, что не варпать на белт, пока не прогрузился космос.проверка главного меню, если оно короче, то космос еще не прогрузился.
Global $DroneStatusCfg[7]=[876, 642,976, 642,0x131313,10];проверка открыто ли меню дронов для анализа статуса дронов.когда не раскрыто - в этом пикселе точка черного цвета.
Global $DroneReturnCfg[7]=[928, 640, 947, 642,0x4E4E4E,10];когда серый цвет в первой полоски хп,первого дрона пропал - дроны вернулись.
Global $DroneIdleCfg[7]=[883, 657,901, 724,0x01F501,10];иногда после нажатия назначенной комбинации клавиш для возврата дронов,они просто прилетают к кораблю со статусом - не используется+проверка на простаивание при майне на белте.проверяем по зеленому цвету в статусе.
Global $SpaceAdv[7]=[775, 575, 783, 579, 0xCCCCCC, 10];доп. проверка на космос после дока(меню-штрих дронов). иногда космос не успевает прогрузиться и бот начинает варпать по буке на белт раньше времени.когда дроны прогружаются, то 100% космос прогружен.
Global $Cargo2ndChk[7]=[258+3, 637,258+3, 637,0x005066,10];вторая проверка на заполнение до 8000кубов.
Global $DTWindow[7]=[383, 305,383, 305,0x0072D6,1];проверка по идеально белой части вокруг ок в окне ДТ.
Global $Incursion[7]=[58, 87 ,336, 289, 0x400000,10];проверка на инкурс, если да то валим.
Global $DamageAlarm[7]=[439, 669, 532, 599, 0xFF2121,10];тупейшая чека на умирание:)
Global $Pirate[7]=[774, 181,774, 181,0x89630A,10];скан на суицидника. если рядом желтый гад,улетаем нагло нах.
Global $CargoReadyOTH[7]=[465, 266, 465, 266, 0x5E5E5E, 10];проверка активен ли лут для сброса на станцию
Global $10kmposChk[7]=[863, 50,901, 56,0x959595,20];доп.проверка для определения позиции цифр ><10км(при длинн.назв.объекта цифры сползают)
;variables ОБЩИЕ НАСТРОЙКИ БОТА
Global Const $StripNum=3;общее количество стрипов
Global Const $LockNum=4;количество локов с кот.работаем
Global Const $AstLockNum=5;количество астероидов в овервью,за кот.следим на наличие лока.
Global $CharName="lohochichaka";здесь имя вашего чара в еве
Global $ConvoExe="mp3";ставим по умолчанию срабатывание mp3 при срабатывании проверки конво
Global $DroneUse=IniRead("C:\1\Eve.ini","Drone","Use","Нет");использовать ли боту дронов в процессе. изменить на нет.Бот запоминает в инишке последнее значение.
Global $ConvoAlarmMP3="C:\1\1.mp3";это мелодия путь к mp3, который будет оповещать о наличии конво.

;------- разные переменные
Global $AstLockChk0[25];это разные варианты цвета для проверки значка лока в овервью.
Global $AstLockChk1[25];он бывает чисто белым, активным серым и не выделенным серым.
Global $AstLockChk2[25];эти переменные хранят статистику по каждому из цветов, и если хоть один из цветов найден на тек.позиции астроида,
;астер считается залоченным. результат складывается в массив $AstLockChk[$i] где $i это число астера.
;============================================
Global $Alarm=0
Global $ScriptWorked;общее время работы скрипта
Local  $1stStripRun=1;при первом запуске на белте переменная для активации всех стрипов одновременно на 1ом акт.локе.
Global $FreeLockUse;определение лока,на кот.нет активных модулей
Global $FreeLockPosition;строка овервью со свободным локом.
Global $TimerChk;таймер для разных дел.
Global $Status="#";это переменная текущего действия или процесса.
Global $NearDockWarp=0;после разгруза возле станции.ситуация - нет астеров-> белт+1,летим на белт.чтобы избежать этого информ.логику просто варпаться после разгруза.
Global $Dock=0;ситуация при прилете к станции-нет астероидов-->летим на белт.чтобы избежать этого информируем логику ждать дока,а не варпаться.
Global $MidCicleTime[4];средняя длительность цикла
Global $CicleWorked=0;длительность последнего цикла
Global $ProcChk;процесс
Global $RndStrp;рандомная длительность активности стрипа
Global $all;все в одной переменной.пока не используется
Global $FullEmptyCheck;проверка на наличие любого лута,если на станции
Global $SpaceChk;проверка на космос.
Global $WarpChk;проверка на варп
Global $Belt;состояние возможности майнить на белте.
Global $CargoChk;переменная заполненности трюма
Global $10kmChk;переменная проверки 10км
Global $AsterChk;переменная наличия астероидов на буке
Global $LockChk;переменная лока
Global $Drones;активность дронов
Global $LockAdv;дополнительная проверка на лок по красному кресту.
Global $StripChk;переменная активности стрипов
Global $LootCount=0;счетчик количества сбросов лута за время работы бота.
Global $pause
Global $CicleTime;переменная длительности цикла
Global $timer = TimerInit();таймер общей работы скрипта
Dim $hour,$min,$sec
Global $y=151;координата Y в меню бук.
Global $x;Номер буки
Global $strip[4];активность стрипов
Global $Lock[5];проверка наличия лока в 4х позициях.
Global $AstLockChk[25];проверка залоченности конкретных астероидов.
Global $LockUse[5];массив активности стрипов на локе
Global $LockNumTemp=$LockNum;текущее количество локов.с кот.работаем на тек.белте.
Global $StrpTimer[4]
Global $SpaceLoad;здесь хранится проверка на наличие меню дронов.для доп. проверки на прогруз в космос.
;===================================
;WinWaitActive("EVE -` "&$CharName)

AdlibRegister("Status",150)
IniWrite("C:\1\Eve.ini","Script", _NowCalc(),"Start,Belt №" & $x)
IniWrite("C:\1\Eve.ini","Mined","=","=")
$CicleTime = TimerInit();засекаем длительность 1 цикла.

Mine()

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ЛОГИКА;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func Mine()
Local $StrpTimer;переменная таймера работы стрипа
While 1
	;AllChecks()
	WinActivate("EVE - "&$CharName)
;#cs
	Select
		Case $SpaceChk="Промежуточная загрузка" or $ProcChk="процесс..." or $WarpChk=1
			$Status="загр,процесс или варп"
			If $DTWindow[6]=1 Then; если появилось мешающее окно ДТ, нажать ок.
				$Status="Окно ДТ"
			MouseClick("left", Random(510, 510+10), Random(475, 475+5), 1, 20)
			Sleep(200)
			EndIf
			Sleep(300)
		Case $SpaceChk="Док"
			
			$Status="В Доке"
			If $DTWindow[6]=1 Then; если появилось мешающее окно ДТ, нажать ок.
				$Status="Окно ДТ"
			MouseClick("left", Random(510, 510+10), Random(475, 475+5), 1, 20)
			Sleep(200)
			EndIf
			If $FullEmptyCheck="Есть" Then
				_Action("OreToHome")
			Else
				_Action("Undock")
			EndIf
			;If $Incursion[6]=1 or $Alarm=1 Then
			;	_exitgame()
			;	_exit()
			;	IniWrite("С:\Eve.ini","Incursion",_NowCalc(), "писда!!!как всегда невовремя прилетел инкурс")
			;EndIf
		Case $SpaceChk="Космос"
			If $DTWindow[6]=1 Then; если появилось мешающее окно ДТ, нажать ок.
				$Status="Окно ДТ"
			MouseClick("left", Random(510, 510+10), Random(475, 475+5), 1, 20)
			Sleep(200)
			EndIf
			Select;действия в космосе.
				Case $Incursion[6]=1 or $DamageAlarm[6]=1 Or $Pirate[6]=1;проверка на умирание, на инкурс и на наличие суицидников рядом.валим сразу же на базу и пишем в лог.
					$Status="Инкурс,Дамаг или Пират Ахтунг!"
					If $Alarm=0 Then
						$Alarm=1
						Send ("{PRINTSCREEN}")
					EndIf
					_Action("Dock")
				Case $CargoChk=1
					$Status="Полный трюм"
					_Action("Dronecontrol")
					_Action("Dock")
					Sleep(3000)
				Case $AsterChk=0;если белт не ботабельный,то летим дальше...
					If $Dock=1 Then
						_Action("Dronecontrol")
						_Action("Dock")
						Sleep(3000)
					EndIf
					If TimerDiff($CicleTime)<=30000 or $NearDockWarp=1 Then;если бот только запустился или только андокнулся,то полетев на белт не плюсуем $y=$y+16
						_Action("WarpToBelt")
					Else
						_Action("WarpToBelt","Belt+")
					EndIf
					$Status="Либо летим на белт, либо плюсуем..."
				Case $AsterChk=1;если белт ботабельный,то...
					$Status="Ботабельный..."
					If $NearDockWarp=1 Then
						_Action("WarpToBelt")
					Else
						Select
							Case $Lock[0]=0;если нет лока,то...
								$Status="Надо лочить..."
								_Action("StripControl","Off","1")
								_Action("StripControl","Off","2")
								_Action("StripControl","Off","3")
								_Check("Chk10km","1");проверка ближе или дальше 10км - так как для этого нужно кликнуть мышей - вывел из цикла проверок.
								If $10kmChk="<10км" Then;если астероид ближе 10км
									_Action("LockTarget");лочим
									_Action("StartDrone","Stage 1");дроны,подготовка к работе
								EndIf
								If $10kmChk=">10км" Then;если астеры ближе 10 км кончились.
									Sleep(5000)
									_Check("Chk10km","1");---- 	ЭТА ПОВТОРНАЯ ПРОВЕРКА НА ВСЯКИЙ СЛУЧАЙ.
									If $10kmChk="<10км" Then;если астероид ближе 10км
										IniWrite("C:\1\Eve.ini","Error",_Nowtime(5), "Сработала повторная проверка" & " Бука №" & $x)
										_Action("StartDrone","Stage 1");дроны,подготовка к работе
										_Action("LockTarget");лочим
										;-----///-------
									Else
										_Action("WarpToBelt","Belt+");если не кончились буки - летим на следующую.
									EndIf
								EndIf

							Case $Lock[0]>0;если есть залоченные цели
									$Status="Работаю..."
									_Action("StripControl","Off","Active");проверяем все стрипы.если хоть один выключен- включаем на свободную цель и активируем таймер
									_Action("StripControl","On","Idle");проверяем все стрипы на включенность и если таймер этого стрипа вышел - выключаем
									;MouseMove(774, 183);возвращаем мышку ближе к след.клику,чтобы потом не тратить на это время.
									;_Action("StartDrone","Mine")
									If $LockNumTemp>$Lock[0] Then;если количество локов с кот.работаем на текущем белте>текущего количества залоч.целей
										$Status="Лочим еще цели..."
										_Check("AstLockChk","Free");ищем свободный от лока астер
										_Check("ChkAstCanLock",$FreeLockPosition);проверяем наличие астера на белте в данной позиции
										If $ChkAstCanLock[6]=1 Then
											_Check("Chk10km",$FreeLockPosition);проверяем дистанцию свободного астера
											If $10kmChk=">10км" Then;если свободный астер недоступен то...
												$Status="Работаю с теми целями что есть..."
												$LockNumTemp=$Lock[0];продолжаем работать с тек.количеством целей
												;если карго If $LockNumTemp=1 Then

											Else
												_Action("LockTarget");иначе лочим цель.
											EndIf
										EndIf
									EndIf
						EndSelect
					EndIf
			EndSelect
		Case Else
			$Status="Невозможная ситуация!"
			Sleep(100)
	EndSelect
;#ce
WEnd
EndFunc
;=================================================

Func Status();тултип - важная информация о боте в данный момент.обрабатывается adlib,поэтому всегда актуальна.
	_Check("AstLockChk",1)
	_Check("CheckProcess")
	_Check("CheckSpace")
	_Check("FullEmptyCheck")
	_Check("checkbeltnum")
	_Check("LockCheck")
	_Check("StripChk")
	_Check("CheckWarp")
	_Check("AsterChk")
	_Check("CargoCheck")
	_Check("AstLockChk")
	_Check("LockUse")
	;_Check("Drones")
	_Check("Cargo2ndChk")
	_Check("DTWindowChk")
	_Check("Incursion")
	_Check("DamageAlarm")
	_Check("PirateAlarm")
	_Check("CargoReadyOTH")
	ToolTip("Белт №"&$x&"\Ср.длит.цикла="&$MidCicleTime[0]&"\лут сбросил:"&$LootCount&"\Конво="&$ConvoExe&"\Использование дронов="&$DroneUse&"\Инкурс:"&$Incursion[6]&"\Статус = "&$Status,0,0)
	;ToolTip("врем.локов:"&$LockNumTemp&"\10км="&$10kmChk&"\Ак.Лазеров="&$strip[0]&"\аст.есть?:"&$AsterChk&"\Локи="&$lock[0]&"\Лок7ми1ых.аст="&$AstLockChk[0]&"\"&$AstLockChk2[0]&"\акт.мод.на локе="&$LockUse[0]&"\трюм наполн. = "&$CargoChk&"\дроны пашут?:"&$Drones&"\астер лок да?="&$ChkAstCanLock[6]&"\Где я?:"&$SpaceChk&"\Трюм часть="&$FullEmptyCheck&"\Тек.статус="&$Status,0,0)
	;MsgBox(0,0,TimerDiff($timer))
EndFunc


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Проверки;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func _Check($Object,$Object2="No")
	Select
		Case $Object="checkbeltnum"
			;++++++++++ узнаем номер белта по текущей координате y
				$x=($y-151)/16+1
			;======================
		Case $Object="Chk10km";определение по SI
			;++++++++++ Ближе или дальше 10км любого объекта в овервью
				Local $y=189;координата Y первого объекта оверью
				Local $x=783;координата X первого объекта оверью
				$y=$y+(19*$Object2-19)
				MouseClick("left", Random($x, $x+10), Random($y, $y+5), 1, 20)
			_Action("Timer",500)
            _Check("10kmposChk");проверка сдвинулись ли цифры ниже при отображении длинного названия объекта
            If $10kmposChk[6]=1 Then
                $Status="строка с цифрами ниже"
                PixelSearch ($10kmCfg[0],$10kmCfg[1]+13,$10kmCfg[2],$10kmCfg[3]+13,$10kmCfg[4],$10kmCfg[5])
                If not @error Then
                    $10kmChk="<10км"
                Else
                    PixelSearch ($10kmCfg[0]+13,$10kmCfg[1]+15,$10kmCfg[2]+24,$10kmCfg[3]+15,$10kmCfg[4],$10kmCfg[5]);после буквы к в слове км, если после первой проверки пикселей после к нет,
                    If @error Then
                        $10kmChk="<10км"
                    Else
                        $10kmChk=">10км"
                    EndIf
                EndIf
            Else
                $Status="цифры ОК"
                PixelSearch ($10kmCfg[0],$10kmCfg[1],$10kmCfg[2],$10kmCfg[3],$10kmCfg[4],$10kmCfg[5])
                If not @error Then
                    $10kmChk="<10км"
                Else
                    PixelSearch ($10kmCfg[0]+13,$10kmCfg[1]+2,$10kmCfg[2]+24,$10kmCfg[3]+2,$10kmCfg[4],$10kmCfg[5]);после буквы к в слове км, если после первой проверки пикселей после к нет,
                    If @error Then
                        $10kmChk="<10км"
                    Else
                        $10kmChk=">10км"
                    EndIf
                EndIf
            EndIf
			;======================

		Case $Object="StripChk";проверка на активность каждого стрипа.
			For $i=1 to $StripNum Step 1
				$StripConf[5]=$StripConf[0]+(51*$i-51)
				PixelSearch($StripConf[5], $StripConf[1],$StripConf[5]+1, $StripConf[3],$StripConf[4])
				If not @error Then
					$strip[$i]=0
				Else
					$strip[$i]=1
				EndIf
			Next

			$strip[0]=$strip[1]+$strip[2]+$strip[3]
			If $strip[0]<3 Then;Если хоть один стрип не работает ,проверка не проходит успешно
				$StripChk=0
			Else
				$StripChk=1
			EndIf
			;========================
		Case $Object="AsterChk"
			;++++++++++ проверка на наличие астероидов на белте
			PixelSearch($AsterCfg[0],$AsterCfg[1],$AsterCfg[2],$AsterCfg[3],$AsterCfg[4],$AsterCfg[5])
			If Not @error Then
			$AsterChk=1
			Else
			$AsterChk=0
			EndIf
			;========================
		Case $Object="LockCheck"
			;++++++++++ проверка лока
			For $i=1 to $LockNum Step 1
				$LockConf[6]=($LockConf[2]-($i*98-98))
				PixelSearch($LockConf[6], $LockConf[1], $LockConf[6], $LockConf[3],$LockConf[4],$LockConf[5])
				If not @error Then
					$Lock[$i]=1
				Else
					$Lock[$i]=0
				EndIf
			Next
				PixelSearch($LockAdvCfg[0],$LockAdvCfg[1],$LockAdvCfg[2],$LockAdvCfg[3],$LockAdvCfg[4],$LockAdvCfg[5])
				If @error Then
					$LockAdv=0;лока нет
				Else
					$LockAdv=1;лок уже есть
				EndIf

			$lock[0]=$Lock[1]+$Lock[2]+$Lock[3]+$Lock[4]
			;==============================
		Case $Object="AstLockChk"
			;++++++++++ функция проверки залоченности астероида
			For $x=2 to 4 step 1;здесь 3 разных цвета прогоняется.
				For $i=1 to $AstLockNum Step 1;сбор данных по всем астерам на лок.7 астеров в овервью по-умолчанию.
					$AstLockChkConf[5]=$AstLockChkConf[1]+($i*19-19)
					PixelSearch($AstLockChkConf[0],$AstLockChkConf[5],$AstLockChkConf[0],$AstLockChkConf[5],$AstLockChkConf[$x])
					If Not @error Then
						Select
							case $x=2
								$AstLockChk0[$i]=1
							case $x=3
								$AstLockChk1[$i]=1
							case $x=4
								$AstLockChk2[$i]=1
						EndSelect
					Else
						Select
							case $x=2
								$AstLockChk0[$i]=0
							case $x=3
								$AstLockChk1[$i]=0
							case $x=4
								$AstLockChk2[$i]=0
						EndSelect
					EndIf
					$AstLockChk[$i]=$AstLockChk0[$i]+$AstLockChk1[$i]+$AstLockChk2[$i]
					If $AstLockChk[$i]>1 Then
						$AstLockChk[$i]=1
					EndIf
				Next
				;$AstLockChk0[0]=$AstLockChk[1]&$AstLockChk[2]&$AstLockChk[3]&$AstLockChk[4]&$AstLockChk[5]&$AstLockChk[6]&$AstLockChk[7]
				;$AstLockChk1[0]=$AstLockChk[1]&$AstLockChk[2]&$AstLockChk[3]&$AstLockChk[4]&$AstLockChk[5]&$AstLockChk[6]&$AstLockChk[7]
				;$AstLockChk2[0]=$AstLockChk[1]&$AstLockChk[2]&$AstLockChk[3]&$AstLockChk[4]&$AstLockChk[5]&$AstLockChk[6]&$AstLockChk[7]
				$AstLockChk[0]=$AstLockChk[1]&$AstLockChk[2]&$AstLockChk[3]&$AstLockChk[4]&$AstLockChk[5]&$AstLockChk[6]&$AstLockChk[7]
			Next

			If $Object2="Free" Then;поиск первого свободного для лока астера.
				For $i=1 to $AstLockNum Step 1
					If $AstLockChk[$i]=0 Then
						$FreeLockPosition=$i
						ExitLoop
					EndIf
				Next
			EndIf
		;=============================
		Case $Object="LockUse"
			;++++++++++ функция проверки активных модулей на локе
			For $i=1 to $LockNum Step 1
				$LockUseConf[6]=$LockUseConf[0]-($i*98-98)
				$LockUseConf[7]=$LockUseConf[2]-($i*98-98)
				PixelSearch($LockUseConf[6],$LockUseConf[1],$LockUseConf[7],$LockUseConf[3],$LockUseConf[4],$LockUseConf[5])
				If @error Then
					$LockUse[$i]=0
				Else
					$LockUse[$i]=1
				EndIf
			Next

			If $Object2="Free" Then;поиск первого свободного для лока астера.
				For $i=1 to $LockNumTemp Step 1
					If $LockUse[$i]=0 Then;если на локе номер $i нет акт.модулей, то считать лок номер $i - свободным.
						$FreeLockUse=$i
						ExitLoop
					EndIf
				Next
			EndIf

			$LockUse[0]=$LockUse[1]+$LockUse[2]+$LockUse[3];+$LockUse[4]
		;============================
		Case $Object="Drones"
		;++++++++++ проверка на активность дронов
            PixelSearch($DroneIdleCfg[0],$DroneIdleCfg[1],$DroneIdleCfg[2],$DroneIdleCfg[3],$DroneIdleCfg[4],$DroneIdleCfg[5])
            If Not @error Then
                $Drones=0;дроны простаивают
            Else
                $Drones=1;Трудятся
            EndIf
		;=============================
		Case $Object="CargoCheck"
			;++++++++++ проверка на заполненность трюма
			PixelSearch ($CargoCfg[0],$CargoCfg[1],$CargoCfg[2],$CargoCfg[3],$CargoCfg[4],$CargoCfg[5])
			If Not @error Then
				$CargoChk=1
			Else
				$CargoChk=0
			EndIf
			;==================================@
		Case $Object="CheckWarp"
			;++++++++++ функция проверки окончания варпа
			PixelSearch ($WarpCfg[0],$WarpCfg[1],$WarpCfg[2],$WarpCfg[3],$WarpCfg[4],$WarpCfg[5])
			If @error Then
				$WarpChk=0
			Else
				$WarpChk=1
				$Status="Варпаюсь"
			EndIf
			;=============================
		Case $Object="CheckSpace"
			;++++++++++ проверка на космос
			PixelSearch($DockChkCfg[0],$DockChkCfg[1],$DockChkCfg[2],$DockChkCfg[3],$DockChkCfg[4],$DockChkCfg[5])
			If Not @error Then;- мы находимся в доке.
				$SpaceChk="Док"
			Else
				PixelSearch($SpaceChkCfg[0],$SpaceChkCfg[1],$SpaceChkCfg[2],$SpaceChkCfg[3],$SpaceChkCfg[4],$SpaceChkCfg[5])
				if not @error Then ;- мы находимся в космосе.
					$SpaceChk="Космос"
				Else
					$SpaceChk="Промежуточная загрузка"
				EndIf
			EndIf
            If $Object2="Adv" Then;это проверка прогрузки в космос, если меню дронов прогрузилось, то все ок.
                PixelSearch($SpaceAdv[0], $SpaceAdv[1], $SpaceAdv[2], $SpaceAdv[3], $SpaceAdv[4], $SpaceAdv[5])
                If Not @error Then
                    $SpaceLoad=1
                Else
                    $SpaceLoad=0
                EndIf
            EndIf
			;======================================
		Case $Object="CheckProcess"
			;++++++++++ проверка на процесс(загрузка в док)
			PixelSearch($ProcessCfg[0],$ProcessCfg[1],$ProcessCfg[2],$ProcessCfg[3],$ProcessCfg[4],$ProcessCfg[5])
			If Not @error Then
				$ProcChk="процесс..."
				$Status="процесс"
			Else
				$ProcChk="-"
			EndIf
            ;$ProcessCfg[0]=ProcessCfg[1]+ProcessCfg[2]+ProcessCfg[3]+ProcessCfg[4]+ProcessCfg[5]+ProcessCfg[6]
			;======================================
		Case $Object="FullEmptyCheck"
			;++++++++++ проверка - сброшен лут или нет.
			PixelSearch($EmptyCargoCfg[0],$EmptyCargoCfg[1],$EmptyCargoCfg[2],$EmptyCargoCfg[3],$EmptyCargoCfg[4],$EmptyCargoCfg[5])
			If Not @error Then
				$FullEmptyCheck="Нет"
			Else
				$FullEmptyCheck="Есть"
			EndIf
			;=================================
		Case $Object="ChkAstCanLock"
			PixelSearch($ChkAstCanLock[0],$ChkAstCanLock[1]+($Object2*19-38),$ChkAstCanLock[2],$ChkAstCanLock[3]+($Object2*19-38),$ChkAstCanLock[4],$ChkAstCanLock[5])
			If @error Then
				$LockNumTemp=$Lock[0]
				$ChkAstCanLock[6]=0
			Else
				$ChkAstCanLock[6]=1
			EndIf
			;$ChkAstCanLock[7]=1
			;================================
		Case $Object="Cargo2ndChk"
			PixelSearch($Cargo2ndChk[0],$Cargo2ndChk[1],$Cargo2ndChk[2],$Cargo2ndChk[3],$Cargo2ndChk[4],$Cargo2ndChk[5])
			If @error Then
				$Cargo2ndChk[6]=0
			Else
				$Cargo2ndChk[6]=1
			EndIf
			;=================================
		Case $Object="DTWindowChk"
			PixelSearch($DTWindow[0],$DTWindow[1],$DTWindow[2],$DTWindow[3],$DTWindow[4],$DTWindow[5])
			If @error Then
				$DTWindow[6]=0
			Else
				$DTWindow[6]=1
			EndIf
			;=================================
		Case $Object="Incursion"
			PixelSearch($Incursion[0],$Incursion[1],$Incursion[2],$Incursion[3],$Incursion[4],$Incursion[5])
			If @error Then
				$Incursion[6]=0
			Else
				$Incursion[6]=1
			EndIf
			;=================================
		Case $Object="DamageAlarm"
			PixelSearch($DamageAlarm[0],$DamageAlarm[1],$DamageAlarm[2],$DamageAlarm[3],$DamageAlarm[4],$DamageAlarm[5])
			If @error Then
				$DamageAlarm[6]=0
			Else
				$DamageAlarm[6]=1
			EndIf
			;=================================
		Case $Object="PirateAlarm"
			PixelSearch($Pirate[0],$Pirate[1],$Pirate[2],$Pirate[3],$Pirate[4],$Pirate[5])
			If @error Then
				$Pirate[6]=0
			Else
				$Pirate[6]=1
			EndIf
			;=================================
		Case $Object="CargoReadyOTH"
			PixelSearch($CargoReadyOTH[0],$CargoReadyOTH[1],$CargoReadyOTH[2],$CargoReadyOTH[3],$CargoReadyOTH[4],$CargoReadyOTH[5])
			If @error Then
				$CargoReadyOTH[6]=0
			Else
				$CargoReadyOTH[6]=1
			EndIf
        	;=================================
		Case $Object="10kmposChk"
			PixelSearch($10kmposChk[0],$10kmposChk[1],$10kmposChk[2],$10kmposChk[3],$10kmposChk[4],$10kmposChk[5])
			If @error Then
				$10kmposChk[6]=0
			Else
				$10kmposChk[6]=1
			EndIf
            ;=================================
		Case $Object="ConvoCheck"
			;++++++++++ функции проверки конво
			Local $ConvoChk[4]
			Local $color
			For $i=1 to 3 Step 1
				Select
					Case $i="1"
						$color=0xFFA600
					Case $i="2"
						$color=0x6284AF
					Case $i="3"
						$color=0x0064C0
				EndSelect
				PixelSearch ($ConvoCfg[0],$ConvoCfg[1],$ConvoCfg[2],$ConvoCfg[3],$color,$ConvoCfg[4])
				If Not @error Then
					IniWrite("C:\1\Eve.ini","Convo",_NowCalc(), "Конво!!!сработала проверка "&$i&"")
					$ConvoChk[$i]=1
				Else
					$ConvoChk[$i]=0
				EndIf
			Next

			If $ConvoChk[1]=1 Or $ConvoChk[2]=1 Or $ConvoChk[3]=1 Then ;если вдруг срабатывает любая- принтскрин и загрузка громкой мелодии :)
				$Status="Сработала проверка конво -"&$ConvoExe&""
				Send ("{PRINTSCREEN}")
				If $ConvoExe="mp3" Then
					ShellExecute ($ConvoAlarmMP3)
					_pause()
				Else
					_exitgame()
					_exit()
				EndIf
			EndIf
		;======================================
		EndSelect
EndFunc
;======================================



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Действия;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func _Action($Do,$Do2="No",$Do3="No",$Do4="No",$Do5="No")
	Select
		Case $Do="Dock"
		;++++++++++ Полет домой
			$Status="Докаюсь"
			MouseMove(Random(58, 58+10), Random(40, 40+10), 20)
			MouseClick("left", Random(58, 58+10), Random(40, 40+5), 1, 20)
			Sleep(Random(700, 1000))
			MouseMove(Random(112, 112+10), Random(138, 138+10), 20)
			Sleep(Random(700, 1000))
			MouseMove(Random(274, 274+10), Random(138, 138+10), 20)
			Sleep(Random(700, 1000))
			;MouseMove(Random(313, 313+10), Random(138, 138+10), 20)
			_Action("Timer",700)
			PixelSearch($MenuChkCfg[0],$MenuChkCfg[1],$MenuChkCfg[2],$MenuChkCfg[3],$MenuChkCfg[4],$MenuChkCfg[5])
			If not @error Then
				MouseClick("left", Random(249, 249+10), Random(182, 182+5), 1, 20); если далеко то пункт №4 это док
				sleep (4000)
				If $WarpChk=1 Then
					$dock=1
					sleep(80000)
				EndIf
			Else
				MouseClick("left", Random(270, 270+10), Random(154, 154+5), 1, 20); если возле станции то пункт №2 - это док
				If $NearDockWarp=1 Then
					Sleep(20000)
				EndIf
				$dock=1
			EndIf
			$Dock1st=0
		;========================================
		;========================================
		Case $Do="WarpToBelt"
		;++++++++++ функция полета на белт
			If $Do2="Belt+" Then
				$y=$y+16
				$Status="Меняю белт"
				If $DroneUse="Да" Then
				_Action("Dronecontrol");рекурсия - уж лучше с ней,чем 2 раза повторять такой кусок кода.
				EndIf
				If $y>357 Then
					_exitgame()
					_exit()
				EndIf
			EndIf

			$Status="Варпаюсь на белт"
	        MouseClick("left", Random(59, 59+4), Random(38, 38+4), 1, 20)
			Sleep(Random(700,1000))
			MouseMove(Random(139, 139+20), Random(139, 139+5), 20);дом
			Sleep(Random(700,1000))
			MouseMove(Random(139, 139+20), Random(154, 154+5), 20);додвигаем до начала 1 буки белта         
			Sleep(Random(700,1000))
                ;доводим до списка бук белтов - эти первые 3 операции с мышью
                ;для всех белтов одинаковы
                MouseMove(Random(139, 139+20), Random($y, $y+5), 20);наводим на белт - открывается под меню
				Sleep(Random(700,1000))
				MouseClick("left", Random(290, 290+20), Random($y, $y+5), 1, 20);варпаемся на белт
                _Action("Timer",4000);ожидание Гипердрайв активен.
                If $WarpChk=1 Or $AsterChk=1 Then
                    $NearDockWarp=0;теперь мы не у дока.
                    $LockNumTemp=$LockNum;установить количество целей, с кот.работаем по дефолту.
                    $1stStripRun=1;первый запуск стрипов на белте.
                EndIf
		;======================================
		Case $Do="Undock"
		;++++++++++ вылет со станции.
			$Status="Андок"
			MouseClick("left", Random(21, 21+10), Random(728, 728+10), 1, 20);щелчок на андок
			$Dock=0
			$NearDockWarp=1
			Sleep (15000);этот слип, нужен, чтобы раньше времени ни варпался и успел схватить процесс.
		;=====================================
		Case $Do="StripControl"
		;++++++++++ контроль стрипов
			Select
				Case $Do2 = "On"
					If $strip[$Do3]=0 Then
						$Status="включаю стрип "&$Do3&""
						Send ("{f"&$Do3&"}")
					EndIf

					If $Do3="Idle" Then
						For $i=1 to $StripNum Step 1;
							If $strip[$i]=0 Then
								$Status="Включаю стрип "&$i&""
								If $Lock[0]>1 and $LockUse[0]<4 Then
									_Check("Lockuse","Free")
									_Action("Click","Lock",$FreeLockUse)
								EndIf
								_Action("StripControl","On",$i)
								$StrpTimer[$i] = TimerInit()
								$RndStrp=Random(85000,95000)
                                    If  $1stStripRun>=4 Then
                                        _Action("Timer",3000,"LockUse",$FreeLockUse,1);это святая проверка - дня 3 не мог понять почему стрипы по нескольку активируются:)
                                    Else
                                        $Status="Первая активация стрипов..."
                                        $1stStripRun=$1stStripRun+1
                                        Sleep(300)
                                    EndIf
							EndIf
						Next
					EndIf
				Case $Do2 = "Off"
					If $strip[$Do3]=1 Then
						$Status="выключаю стрип "&$Do3&""
						Send ("{f"&$Do3&"}")
					EndIf

					If $Do3="Active" Then
						For $i=1 to $StripNum Step 1
							If $strip[$i]=1 Then
								If	TimerDiff($StrpTimer[$i])>=$RndStrp Then
									$Status="Выключаю стрип "&$i&""
									_Action("StripControl","Off",$i)
								EndIf
							EndIf
						Next
					EndIf
			EndSelect

		;===============================
		Case $Do="LockTarget"
		;++++++++++ Лок + Активация дронов
			$Status="Лочу цель"
				If $LockAdv=0 Then
				MouseClick("left", Random($LockAdvCfg[0], $LockAdvCfg[0]+5), Random($LockAdvCfg[1], $LockAdvCfg[1]+5), 1, 20);жмем кнопку лока цели
					_Action("Timer",4000,"LockAdv",1)
				EndIf



		;==============================
		Case $Do="StartDrone"
		;++++++++++ Старт дронов
			If $DroneUse="Да" Then
					PixelSearch($DroneStatusCfg[0],$DroneStatusCfg[1],$DroneStatusCfg[2],$DroneStatusCfg[3],$DroneStatusCfg[4],$DroneStatusCfg[5])
					If Not @error Then
						MouseClick("left", Random(832, 832+20), Random(623, 623+5), 1, 20); раскрываем меню
						sleep(Random(900,1500))
					EndIf
				If $Do2="Stage 1" Then
					$Status="Запускаю дронов"
					MouseClick("left", Random(830, 830+20), Random(601, 601+5), 2, 20); двойной клик по меню дронов
					sleep(Random(800,1000))
					MouseClick("left", Random(911, 911+5), Random(74, 74+5), 1, 20);запустить дронов
					_Action("Timer",3000)
					Sleep(Random(500,1000))
					PixelSearch($DroneStatusCfg[0],$DroneStatusCfg[1],$DroneStatusCfg[2],$DroneStatusCfg[3],$DroneStatusCfg[4],$DroneStatusCfg[5])
					if Not @error Then
						MouseClick("left", Random(832, 832+20), Random(623, 623+5), 1, 20);раскрыть меню для анализа состояния
						sleep(Random(900,1500))
					EndIf
					_Action("Timer",2500,"Strip",0,3)
				EndIf

				If $Do2="Mine" Then
					If $Drones=0 Then
						_Action("Timer",500)
						;повторная проверка.бывает нужна
						If $Drones=0 Then
							If $Lock[0]>3 Then
								_Check("Lockuse","Free")
								_Action("Click","Lock",$FreeLockUse)
								_Action("Click","Approach",$FreeLockUse)
						    EndIf
							MouseClick("left", Random(832, 832+20), Random(623, 623+5), 1, 20);меню дронов
							sleep(Random(800,1000))
							MouseClick("left", Random(860, 860+5), Random(73, 73+5), 1, 20);непрерывно добывать
							_Action("Timer",2000,"Drones",1)
						EndIf
					EndIf

				EndIf
			EndIf
		;==============================
		Case $Do="OreToHome"
		;++++++++++ кусок сброса лута
			;MouseMove(567, 372);двигаем мышь поближе к луту
			_Check("CargoReadyOTH")
			If $Status="процесс..." Then;or TimerDiff($CicleTime)<=30000 Then
				_Action("Timer",100)
			Else
			;	_Action("Timer",1000);!
				;MouseClick("left",84, 691,1,8)
				;If $CargoReadyOTH[6]=0 Then
				;	Sleep(200)
				;Else
					$Status="Сбрасываю лут"
					MouseClick("left", Random(402, 402+20), Random(228, 228+20), 1, 20)
					Sleep(Random(900,1000))
					Send ("^a")
					Sleep(Random(900,1000))
					MouseClickDrag("left", Random(402, 402+20), Random(228, 228+20), Random(247, 247+30), Random(214, 214+5), 20);
					_Action("Timer",2000,"Cargo")
					 If $FullEmptyCheck="Нет" Then;прописываем данные только тогда,когда пусто.
						If TimerDiff($timer)>=60000 Then;для того,чтобы если вначале старта бота есть лут в карго - не считалось за сброс за цикл.
						   _TicksToTime(Int(TimerDiff($CicleTime)),$hour,$min,$sec);вычисление времени цикла
						   $CicleWorked=StringFormat("%02d:%02d:%02d", $hour,$min,$sec)
							IniWrite("C:\1\Eve.ini","Mined",_NowTime(5), "сброшен лут" & " Бука №" & $x & " Время цикла: "& $CicleWorked)
							$LootCount=$LootCount+1;счетчик сброшенного лута
							_TicksToTime((TimerDiff($timer)/$LootCount),$MidCicleTime[1],$MidCicleTime[2],$MidCicleTime[3])
							If $LootCount=0 Then
								$MidCicleTime[0]="-"
							Else
							$MidCicleTime[0]=StringFormat("%02d:%02d:%02d", $MidCicleTime[1],$MidCicleTime[2],$MidCicleTime[3])
							EndIf
							$CicleTime = TimerInit();засекаем длительность последующих циклов.
							$TimerOK=0
						EndIf
					 ;EndIf
				EndIf
			EndIf
		;================================
		Case $Do="Dronecontrol"
		;++++++++++ контроль возврата дронов
		If $DroneUse="Да" Then
			$Status="Забираю дронов"
			Send ("+{R}")
			Sleep(Random(5000,7000))
			PixelSearch($DroneStatusCfg[0],$DroneStatusCfg[1],$DroneStatusCfg[2],$DroneStatusCfg[3],$DroneStatusCfg[4],$DroneStatusCfg[5])
				If Not @error Then
					MouseClick("left", Random(832, 832+20), Random(623, 623+5), 1, 20);раскрыть меню для анализа состояния
					sleep(100)
				EndIf

			While 1
				Sleep (1000)
				PixelSearch($DroneReturnCfg[0],$DroneReturnCfg[1],$DroneReturnCfg[2],$DroneReturnCfg[3],$DroneReturnCfg[4],$DroneReturnCfg[5])
					If @error Then
						ExitLoop
					EndIf
				$Status="Ждем дрончегов!"

				PixelSearch($DroneIdleCfg[0],$DroneIdleCfg[1],$DroneIdleCfg[2],$DroneIdleCfg[3],$DroneIdleCfg[4],$DroneIdleCfg[5])
				If Not @error Then
					$Status="сцуко дроны зависли,повторяю команду возврата"
					Sleep(Random(1500,2000))
					Send ("+{R}");если дроны висят,вместо того,чтобы возвратиться - послать команду еще раз.
					IniWrite("C:\1\Eve.ini","Error",_Nowtime(5), "Дроны зависли" & " Бука №" & $x)
				EndIf
			WEnd
			$Status="Дроны вернулись!"
			Sleep (100)
		Endif
		;====================================
		Case $Do="Timer"
	;таймер.использование _Action("Timer","время в милисек","что проверям","номер объекта","Значение").
	;как только переменная равна значению для проверки либо истечет таймер - цикл прекращается.
	;пример  _Action("Timer",2000,"Strip","1","1") проверяет массив strip[1]=1 если значение совпадет,то слип 2 сек.сброситься и
	;скрипт продолжит работать,либо если проверка не пройдет,после двух сек.завершиться функция.
			$TimerChk=TimerInit()
			While 1
				Sleep(100)
				If TimerDiff($TimerChk)>$Do2 Then
					ExitLoop
				EndIf
				Select
					Case $Do3="Strip"
						If $Strip[$Do4]=$Do5 Then
							ExitLoop
						EndIf
					Case $Do3="Lock"
						If $Lock[$Do4]=$Do5 Then
							ExitLoop
						EndIf
					Case $Do3="LockUse"
						If $LockUse[$Do4]=$Do5 Then
							ExitLoop
						EndIf
					Case $Do3="Cargo"
						If $FullEmptyCheck="Нет" Then
							ExitLoop
						EndIf
					Case $Do3="LockAdv"
						If $LockAdv=$Do4 Then
							ExitLoop
						EndIf
					Case $Do3="Drones"
						If $Drones=$Do4 Then
							ExitLoop
						EndIf
                    Case $Do3="Station"
						If $ProcChk="процесс..." Then
							ExitLoop
						EndIf
				EndSelect
			WEnd
;====================================
		Case $Do="Click"
			If $Do2="Lock" Then
				MouseClick("left", Random($LockCenter[0]-($Do3*98-98), $LockCenter[0]-($Do3*98-98)+5), Random($LockCenter[1], $LockCenter[1]+5), 1, 20)
			ElseIf $Do2="Approach" Then
				Send("{q down}") ;Нажать клавишу Q - чтобы подлететь
				Sleep(Random(200,300))
				_Action("Click","Lock",$LockCenter)
				Sleep(Random(200,300))
				Send("{q up}") ;Освободить клавишу A
			EndIf
;====================================
	EndSelect
EndFunc



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ХОТКЕИ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;++++++++++ завершение работы скрипта + время работы скрипта
Func _exit()
	_Action("Dronecontrol");на всякий - часто забываю завершив работу бота забрать дронов(привык все автоматически делается) :)
	$Status="Завершение скрипта"
	Sleep(200)
	_TicksToTime((TimerDiff($timer)/$LootCount),$MidCicleTime[1],$MidCicleTime[2],$MidCicleTime[3])
	If $LootCount=0 Then
		$MidCicleTime[0]="-"
	Else
	$MidCicleTime[0]=StringFormat("%02d:%02d:%02d", $MidCicleTime[1],$MidCicleTime[2],$MidCicleTime[3])
	EndIf
	_TicksToTime(TimerDiff($timer),$hour,$min,$sec)
	$ScriptWorked=StringFormat("%02d:%02d:%02d", $hour,$min,$sec)
	If $LootCount>0 Then
		IniWrite("C:\1\Eve.ini","Script",_NowCalc(), "Stop,Бука №" & $x &" -- "& "Время работы: "& $ScriptWorked & ", лут сбросил: " & $LootCount&" раз."&" \Цикл в среднем="&$MidCicleTime[0])
	EndIf
	Exit
EndFunc
;==============

;++++++++++ пауза
Func _pause()
	$pause=$pause+1
while $pause=1
	$Status="Пауза..."
WEnd
$Status="Снята пауза..."
Sleep(200)
$pause=0
EndFunc
;=======

;++++++++++ активация деактивация дронов
Func DroneUse()
	Select
		Case $DroneUse="Да"
			$DroneUse="Нет"
			$Status="Дроны деактивированы"
			Sleep(200)
			IniWrite("C:\1\Eve.ini","Drone","Use","Нет")
		Case $DroneUse="Нет"
			$DroneUse="Да"
			$Status="Дроны C:\1\Eve.iniактивированы"
			IniWrite("","Drone","Use","Да")
			Sleep(200)
	EndSelect
EndFunc
;=======

;++++++++++ выход из игры - до этого док и сброс лута.
Func _exitgame()
	_Action("Dronecontrol")
	Send ("{esc}")
	sleep (4000)
	MouseClick ("left",862, 614,1,20)
	IniWrite("C:\1\Eve.ini","Game Exit",_NowCalc(),"Stop,Бука №" & $x)
	Return
EndFunc
;======================================

;++++++++++ функция переключения реагирования на конво
Func ConvoSwitch()
	Select
		Case $ConvoExe="mp3"
			$ConvoExe="Выход"
			$Status="Реакция на конво = Выход"
			Sleep(300)
		Case $ConvoExe="Выход"
			$ConvoExe="mp3"
			$Status="Реакция на конво = MP3"
			Sleep(300)
	EndSelect
EndFunc
;========================

;++++++++++ функции горячего переключения белтов
Func BeltPlus()
		$y=$y+16
		$Status="+Бука"
EndFunc
Func BeltMinus()
	$y=$y-16
	$Status="-Бука"
	If $y<151 Then
		$y=151
		$Status="Ниже некуда"
	EndIf
EndFunc
;========================
;========================
;========================


в нулях-то конечно безопасней, но ББ альянс погнали ) да и реды сузили своё влияние за последний год )))
так что может потом в нулях попробуем...
что если этим чаром продолжать копать? не забанят? уже более реально по 8 часов в день )
 

running-frag

why me?
Сообщения
441
Репутация
60
EVEGamer [?]
те проверили логи кликов мыши и увидели точное совпадение кликов раз от раза
пруф?

Ботов банят не из за каких то там кликов "бот" или из за нерэндомных кликов. Ботов банят потому что боты ТУПЫЕ. И не способны реагировать на некоторые варианты действий. И получается что бан зависит от человека который писал бота, предусмотрел ли он все варианты (даже самые неожиданные) действий. Плюс конво ГМов и других игроков. ИМХО в данный момент если у перса стоит Block All это с ОЧЕНЬ большой вероятностью бот. И тут начинается конец перса потому что достаточно пару проверок, и перс спалился, и не надо выдумывать мега-супер алгоритмов проверок типо "рэндомны ли клики" (кстати это тоже недоказано ещё).
 

running-frag

why me?
Сообщения
441
Репутация
60
EVEGamer [?]
Это главный здешний флудер, не обращай внимание.
Так а где доказательство того что "бан из за НЕрэндомных кликов"? Может ты настолько тупого бота написал что дай тебе любой PopUp или "белую непись" так бот зходнет в цикле... :rofl: Или так "ляпнул лишь бы ляпнуть"? Ты ж инфу не даёшь, а только "домыслы в чётком виде" мол так и не иначе.

PS: А на счёт флудера, мне ровно, по крайней мере я поднимаю вопросы те которые мало кто поднимает на этом форуме. ;) И решения их ты тоже читаешь. Поэтому на счёт "флудера" очень сомнительно... :D Но оставим модерам\админам судить.


Добавлено:
Сообщение автоматически объединено:


EVEGamer [?]
For EnemyВроде клики все рандомны, но очень много жёстких таймеров, а мне год назад здесь, после того как я поймал 15 дней отдыха, сказали рандом везде и побольше. Как вариант мож он тупил несколько часов к ряду, кликая там что нибудь. Но это импа там пристально смотрят, конкуренция высокая )). Ботоводы сторочат друг на друга, и слабых вышибают, потому нули лучше. С редами в делве да квериусе врядли спокойно покопать удастся. По мне чем бот проще тем лучше, конво и вся другая меседж деятельность, естественно заблочены. Кузнечики меня не интересуют, потому не участвую, не одной функции с форума не использую, потому что либо не надо, либо не то. Остальное всё банально, потому и предъявлять нет смысла. Ценнее от бана не функция цвета или окр например, а концепция потому секретна. А вот от конкурентов как раз наоборот концептом рады делится чтоб подчёркивать, а реализацию держи при себе. Так что мой тебе совет, сделай паузу в месяц к томуж 2 недели полюбому )), за это время напиши своего со значительными изменениями. И перебирайся как можно дальше от 1.0. Я копаю уже год после бана, в режиме 23/7. Полтийник в месяц выходит. Чуть позже пост удалю. Удачи. А running-frag. Это главный здешний флудер, не обращай внимание.
 

Enemy

Знающий
Сообщения
42
Репутация
7
фишка в том, что бот был под моим вниманием, я работаю а на виртуалке он крутится. коново не было, никто ничего не писал. в этот день думаю, дайка выключу на ночь не буду оставлять, и вот фак, с утра прихожу в офис запускаю... он в блоке.
кстати, сейчас думаю над концепцией трейд бота ))) который не тупо на 0.01 ордера повышает.... а просто будет летать по имерии и смотреть интересующие позиции маркета, например, свозил товара на 300кк, корабль маленький пришлось делать 3 ходки в 8 прыгов туда и обратно, получилось за ходку 13кк... так интересней ))) в торговле самое главное знать рынок - для этого бот и нужен ;)

бот будет летать на яйце скилы не нужны, даже достаточно 21 дней триала )
 

running-frag

why me?
Сообщения
441
Репутация
60
Enemy [?]
фишка в том, что бот был под моим вниманием, я работаю а на виртуалке он крутится. коново не было, никто ничего не писал.
акк проверяют не один же день, при чём бан выдаётся именно после логина или во время онлайна что бы юзвер начал интересоваться и увидел что ему выдали бан

т.е. по факту тебя в последний день палили ГМы

и вообще это как диза идёт, давайте я скажу что на самом деле ева палит наличие автоит в системе, или скажу что ГМ может "войти" в ваш клиент и видеть всё что вы\бот делаете и это TRUE и верьте мне! почему? не знаю просто верьте.... ведь других вариантов не знаете - что делает "мою версию" логичней, а по факту может только ССР из отдела ботоводов сказать поэтому всё это ИМХО из темы "о вечном"
 

running-frag

why me?
Сообщения
441
Репутация
60
OffTopic:
EVEGamer [?]
running-frag Ты прям генератор флуда. Тебе слово, ты 10 в ответ. И всё пустые те слова.
Ну потому что "ЧУШЬ" пишешь по другому не назовёшь... И заметь что в моём "тролинге" больше разумной информации чем в твоих "домыслах". Так кто из нас троль? Я, рассматривая все варианты и не принимая точное решение (потому что я точно не знаю и вводить людей в заблуждения не стану), или ты утверждая что прав без каких либо доказательств. Так ты специально вводишь людей в заблуждение получается? Так как тебя назвать?

я думаю облегчет задачу на порядок. http://eve-central.com/
Вот именно что ты "думаешь", но это не облегчит, это даже самый неразумный подход для написания трейд бота который я слышал. Можно написать OCR но это не будет самым быстрым решением. Беда некоторых ботоводов (тех кто их пишут) в том что они просто НЕ знают как сделать правильный "подход" к той или иной задаче. Но самое не правильное утверждать что "твой поход единственный, а все другие обречены на провал". Чем ты собственно и занимаешься.

EVEGamer лично для тебя разжёвую самый быстрый способ получения маркета (полная инфа) - в маркете есть кнопка "EXPORT TO FILE" в котором есть всё необходимое, небольшой парсер и вуаля. Это что бы ты не орал потом мол "пруф". Ведь я то свою точку зрения доказать могу, в отличии от тебя.

Заметь что именно ты огрызаешься и каждый раз "пытаясь показать себя умным" выходит наоброт.

PS: И вообще при чём тут трейд бот? Смотрим на название топика. Да и минусы можешь лепить сколько тебе угодно, но это знаний\опыта не прибавит. И это радует. :blum:
 
Автор
yaodnako

yaodnako

Продвинутый
Сообщения
120
Репутация
78
Ребята, давайте без срача тут :smile:
Вот с чем не могу не согласиться, так это с точкой зрения running-frag. Пока заявление не доказано, оно является всего лишь предположением. И неважно насколько сильно ты в это веришь и насколько авторитетный человек тебе это сказал - пока лично у тебя нет доказательств - вера остается просто верой. Я лично могу лишь догадываться над тем, из-за чего кого банят. Лучше конечно всевозможные варианты предусмотреть и реализовать защиту от них в боте. Если у кого-то из скачавших моего бота, есть желание - дорабатывайте. Мой бот почти беззащитен от пристального взгляда админа :smile:

Я, кстати, не исключаю, что у EVEGamer могут быть доказательства тому, что именно из-за отсутствия рандом кликов палят бота. Но пока он не подтвердил это каким-либо образом, возражения running-frag считаю вполне обоснованными. Ну и конечно EVEGamer, если правда имеет пруф - не обязан с нами делится :smile: так что, если есть разногласия - не в этой ветке. Можно так долго спорить и если участники дискуссии просто хотят доказать свою правоту, а не разобраться в вопросе, то это обернется просто переходом на личности. Я помню, было дело, спорили про сальваг :smile: Кто-то говорил, что если с первого раза засальважить, то круче лут будет, чем если с 2го или энного:smile: кто-то говорил, что если сальваг качан на макс %, то также лучше лут :smile: В итоге одни девы знают что и как, но срача конечно много было - каждый себя бил в грудь. Вера это конечно классно, но без доказательств - опасное дело. Мало того, что сам можешь ошибаться, так еще и народ за собой тащишь.

Я кстати сам бота столет не запускал :smile: как 8 лярдов намайнили 2 макинавы. Лень стало их включать :smile: проплачиваются, качаются и ладно :smile:

Добрый день!
Помогите нубу разобраться как с ботом работать?
Если можно то отпишите что для этого необходимо?
Не совсем понимаю просто что это за файлы выложены, они являются что то типа дополнением или настройки для autoit или как?
Еще прошу скинуть ссылки где надо прочитать что либо чтобы вообще запустить данный бот?
Заранее спасибо... :-[
Ссылки тебе врядли кто-то кидать будет. Мне например лень, учитывая, что тебе просто в гугл вбить autoit нужно и просто установив его себе - хелп изучить. Когда начнешь разбираться с автоитом - все поймешь - что за файлы и что тут настраивать. Можешь на этом форуме русский хелп посмотреть. В любом случае тебе придется ставить автоит. И еще... Чтобы тебе помогали, тебе необходимо что-то сделать самому. Если бы ты в чем то встал в тупик, то мог бы нам написать что и как сделал и где не получается - и мы бы с удовольствием помогли бы. Но когда ты пишешь помогите я ничо не знаю. То видно, что ты сам никаких усилий не приложил, чтобы разобраться - соответственно интереса тебе помогать будет ноль.
 

Frostnord

Новичок
Сообщения
13
Репутация
1
Ботег мой имеет рандом клик через рандомное время- забанили через 4 дня работы по 6-8 часов в сутки :'(
Код:
Opt("PixelCoordMode", 2) ;Отсчет координат пикселей от левого верхнего угла клиентской части окна
Opt("MouseCoordMode", 2) ;Отсчет координат мыши от левого верхнего угла клиентской части окна
#include "c:\pass.au3"
HotKeySet("{f9}", "_Exit")
HotKeySet("`", "TogglePause")
Global $Win = "EVE"
Global $Paused
Global $T=PixelSearch(565,304, 566, 315, 0x00fbff, 20) ;буква т в слове дисконект окна дисконект
Global $I=PixelSearch(489,304, 490, 315, 0x00fbff, 20) ;буква и в слове дисконект окна дисконект
Global $LogEror= PixelSearch(379, 308, 311, 317 ,0x0066c2, 20)
Global $trial=PixelSearch(380, 291, 387, 297 ,0xffc644, 20)
Global $CargoPlace[6] =[62, 315, 74, 364, 0xffffff, 10]
Global $ShildVKL="off" ;щит по дефолту
Global $AB="Off" ;афтербурнер по дефолту
Global $OverKUB=PixelSearch(758,119,775,158,0xcccdcd,20);поиск куба овербью
;Global $TargetChk
;Global $TargetChk=PixelSearch($OverKUB[0],$OverKUB[1]+59,$OverKUB[0]+8,$OverKUB[1]+57, 0xffffff, 10);поиск треугольника лока относительно кубика оверью

;Global $tar = 
;Global $CurBelt ;Тут хранится номер белта в котором находится бот
;Global $Location = ConCheck("Location")

Func _Exit()
	Exit
EndFunc

winactivate($Win) ;Делает окно EVE активным
winwaitactive($Win) ;Ожидает момента когда окно EVE станет активным
;////////////////////////////////////
   ToolTip("ждем загрузку ",0,0)
   Sleep(1000)
While 1
   winactivate($Win)
   winwaitactive($Win)
DT ()
   Do 
	  ToolTip("В варпе",0,0)
	  Sleep(Random(500,1000))
   Until CheckEndWarp()=1
 DT ()
 if Cargo ()= 1 And Belt ()=2 Then ;пустой и у белтов
	Mine ()
 EndIf
 DT ()
 if CheckSpace() = 2 and Cargo ()= 1 Then ;в доке и пустой
 Undock ()
 EndIf
 DT ()
 If Cargo ()= 1 and Belt ()=1 And aktivCheck()=0 Then ;у станции и пустой
 WarpToBelt()
 EndIf
  DT ()
 if Cargo ()= 2 And Belt ()=1 and CheckEndWarp()=1 and Docking()=1 And CheckSpace()=1 	Then ;у станции и полный
    nearDock ()
 EndIf
DT ()
 if Cargo ()= 2 and CheckSpace()=1 And Belt ()=2 Then ; полный и в космосе ,есть белты
	ToDock ()
 EndIf
 DT ()
 If Cargo ()= 2 And CheckSpace()=2 Then ; полный и в станции
	Otgruz ()
	
 EndIf

WEnd
;////////////////////////////////////

Func KubStatus ()
   Global $OverKUB=PixelSearch(758,119,775,158,0xcccdcd,20) 
			If Not @error Then
				ToolTip("Вижу куб",0,0)
				Sleep(2000)
			Else
				MsgBox(0, "Test","не могу найти овервью")
			EndIf
   
   
   
   
   
 #cs 
   if $OverKUB=0 Then
	  MsgBox(0,"Ошибка","Окно оверью здвинуто")
   Else
	  ToolTip("Вижу куб",0,0)
	  Sleep(1000)
   EndIf
   Sleep(5000)
   ;_Exit()
   #ce
EndFunc

Func Cargo ()
   WinActivate($Win)
   PixelSearch(12,9,25,10,0xe6e5e5,20)
   If not @error Then
	  OpenCargo()
   EndIf
	  	  $coord=PixelSearch($CargoPlace[0],$CargoPlace[1],$CargoPlace[2],$CargoPlace[3],$CargoPlace[4],$CargoPlace[5])
	  If Not @error Then
		 PixelSearch($coord[0]+179,$coord[1]-3,$coord[0]+187,$coord[1]+3,0x004c62, 20)
		 If @error Then
			ToolTip("трюм не заполнен",0,0)
			Sleep(100)
			Return 1
		 Else
			ToolTip("трюм полон",0,0)
			Sleep(100)
			Return 2
		 EndIf
	  EndIf
	  
  EndFunc
;------------------------------------OpenCargo 
Func OpenCargo () ; проверка и открытие карго
		 PixelSearch(62, 315, 74, 364, 0xffffff, 10)
	   if Not @error Then 
		 ToolTip("трюм открыт",0,0)
		 Sleep(500)
	  Else
			;Send("{altdown}")
			Sleep(100)
			Send("!{c}")
			Sleep(100)
			;Send("{altup}")
	  
		 ToolTip("трюм закрыт",0,0)
	  Sleep(2000)
   EndIf
EndFunc
 ;-------------------------------------Doking
Func Docking () ; проверка на докинг
    PixelSearch(534, 502, 536, 504, 0xbfbfbe, 20)
if @error Then 
   Return 1
Else
   Return 0
   ToolTip("Процесс докинга",0,0)
   Sleep(Random(1000,1500))
   
EndIf
EndFunc

Func NearDock () ; док если рядом со станцией
   MouseClick("right", 53, 31, 1,70)
   Sleep(500)
   MouseClick("left", 78, 101, 1,60)
   MouseMove(573, 103, 50)
   MouseClick("left", 535, 135, 1,50)
   Sleep(Random(5000,6000))
EndFunc



Func AutoLog () ;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvAutoLog
  Do
  ToolTip("Загрузка автолога",0,0)
   winactivate($Win)
   MouseClick("left",545,375,2,1)
   Sleep(3000)
   Until  winwaitactive($Win)
   Do
   winactivate($Win)
   winwaitactive($Win)
   ToolTip("жду загрузки клиента",0,0)
   Sleep(5000)
   Until ProcessExists("ExeFile.exe")
   ;Do
   winactivate($Win)
   winwaitactive($Win)
   ToolTip("жду прогрузки клиента клиента",0,0)
   Sleep(5000)
   ;Until User() =1 And Connect() =1
   Sleep(1000)
   Do
		 If User() =1 And Connect() =1 Then
			MouseClick("left",472,707,2)
			;Send("^a")
			Sleep(500)
			Send($pass)
			Sleep(50)
			Send("{Enter}")
			ToolTip("Логинимся",0,0)
			Sleep(10000)
		 EndIf
		 If $logEror= Not @error Then
				  MouseClick("left",513,476,2,50)
				  Sleep(3000)
		 EndIf
		 If $trial= Not @error Then
				  MouseClick("left",513,499,2,50)
				  Sleep(3000)
		 EndIf
	 
   ToolTip("Прогрузка чаров",0,0)
   Sleep(5000)
		 winactivate($Win)
		 winwaitactive($Win)
		 Sleep(5000)
		 $EVE1= PixelGetColor(447,70)
		 $EVE2= PixelGetColor(563,72)
		 if $EVE1 = 0xffffff And $EVE2 =0xffffff Then
			MouseClick("left",182,276,2,1)
		 EndIf
	
	  
   Until CheckSpace()=2 Or Triangl ()=1
		 Sleep(3000)
		 ;Send("{altdown}")
		 Sleep(100)
		 Send("!{c}")
		 Sleep(100)
		 ;Send("{altup}")
EndFunc

Func Triangl () ; хз
	  PixelSearch(448, 673, 461, 681, 0xe6e6e6, 20)
   if @error Then 
	  ToolTip("не вижу треугольника",0,0)
	  Sleep(10)
	  Return 0
   Else
	  ToolTip("вижу треугольник",0,0)
	  Sleep(10)
	  Return 1
   EndIf
EndFunc
   
	
Func DT () ;экстренные проверки
			PixelSearch(355,290, 363, 295, 0x00fbff, 20) ;DT
		 If Not @error Then
			;$I=PixelSearch(489,304, 490, 315, 0x00fbff, 20)
			If $i =Not @error And $T= Not @error Then
			   MouseClick("left",485,476,2,80)
			   Autolog ()
			EndIf
			MouseClick("left",516,476,2,1)
		 EndIf
			PixelSearch(380,326, 386, 332, 0x006dce, 20);Disconnect
		 if Not @error Then
			Sleep(500)
			MouseClick("left",492,492,2,80)
			Sleep(3000)
			AutoLog ()
		 EndIf
		 If User() =1 And Connect() =1 Then
		 AutoLog ()
		 EndIf
		 Do 
			ToolTip("В варпе1",0,0)
			Sleep(Random(500,1000))
		 Until CheckEndWarp()=1		 
EndFunc
;------------------
Func User () ;поиск Юзера в окне логина
	   PixelSearch(397, 679, 401, 686, 0x999999, 20)
if @error Then 
   ToolTip("невижу юзер",0,0)
   Sleep(10)
   Return 0
Else
     ToolTip("вижу юзер",0,0)
   Sleep(10)
   Return 1
EndIf
EndFunc
;--------
Func Connect () ;поиск коннекта в окне логина
	   PixelSearch(397, 679, 401, 686, 0x999999, 20)
if @error Then 
   ToolTip("не вижу коннект",0,0)
   Sleep(10)
   Return 0
Else
     ToolTip("вижу коннект",0,0)
   Sleep(10)
   Return 1
EndIf
EndFunc

Func aktivCheck() ;проверка активации майнеров
 PixelSearch(608, 646, 606, 649, 0xb1afac, 20)
if @error Then 
   ToolTip("майнеры не включены",0,0)
   Sleep(10)
   Return 0
Else
     ToolTip("Майнеры включены",0,0)
   Sleep(10)
   Return 1

EndIf
EndFunc

Func TargetCheck () ;проверка залочина ли цель
   Sleep(Random(2000,3000))
   PixelSearch($OverKUB[0],$OverKUB[1]+59,$OverKUB[0]+8,$OverKUB[1]+67, 0xffffff, 10)
	  If @error Then
	   ToolTip("не в таргете",0,0)
	   Sleep(1000)
	   Return "NeVLOke"
	   Else
        ToolTip("в таргете",0,0)
		Sleep(1000)
	   Return "VLoke"
	 EndIf
  EndFunc
  ;---------------------------------------------------------------aproch()
Func aproch () ; апрочить цель
   MouseClick("left",Random( 865,966), 184, 2,20)
   ToolTip("Апрочу!!!!!",0,0)
   Sleep(1000)
EndFunc

Func Target () ; берем цель в таргет
  	MouseClick("left", Random(729,974), Random(180,185), 1,20)
    MouseClick("right",Random(863,961),Random(180,185), 1,20)
    MouseClick("left",Random(858,1000), 236, 1,20)
	ToolTip("Таргетую",0,0)
	Sleep(5000)
	if TargetCheck () = 1 Then 
	   ToolTip("не попал",0,0)
	   Sleep(1000)
	  Target()
	Else
	   ToolTip("попал",0,0)
		Sleep(1000)
	 EndIf
  EndFunc
  
  Func shildAktiv () ;активация щита
	 Select
		Case shildChk ()="мало хп" And $ShildVKL="off"
			;Send("{altdown}")
			Sleep(100)
			Send("!{f1}")
			Sleep(100)
			;Send("{altup}")
			$ShildVKL="on"
		 Case shildChk ()="хп в норме" And $ShildVKL="on"
			;Send("{altdown}")
			Sleep(100)
			Send("!{f1}")
			Sleep(100)
			;Send("{altup}")
			$ShildVKL="off"
		 EndSelect
   EndFunc
		 
Func shildChk () ;проверка состояния хп
	 PixelSearch(508,600,510,504, 0xff2222, 10)
	 
	  If @error Then
	   ToolTip("хп в норме",0,0)
	   Sleep(500)
	   Return "хп в норме"
	Else
        ToolTip("мало хп",0,0)
		Sleep(500)
	   Return "мало хп"
	 EndIf
  EndFunc
   
Func Dostaet () ; проверка на досягаемость
   WinActivate($Win)
	  PixelSearch(841,174,845,183, 0xc9c8c8, 10)
	  If @error Then
	   ToolTip(" достаем",0,0)
	   Sleep(500)
	   Return " достаем"
	Else
        ToolTip(" не достаем",0,0)
		Sleep(500)
	   Return "не достаем"
	 EndIf
  EndFunc

Func aktiv () ;активация модулей
   Send("{f3}")
   Sleep(100)
   Send("{f2}")
   Sleep(100)
   Send("{f1}")
EndFunc
   ;---------------------------------------------------------mine()
Func Mine () 
   shildAktiv ()
    KUBstatus ()
   if Dostaet()="не достаем" Then 
	  aproch()
	  If $AB="Off" Then
	  Send("!{F2}")
	  $AB="On"
	  EndIf	  
   Else
		
		 PixelSearch($OverKUB[0]+103,$OverKUB[1]+59,$OverKUB[0]+143,$OverKUB[1]+67, 0x538ec0, 10)
		 If Not @error Then
			;MouseClick("left",Random(461,464),Random(700,706),1,20)
			Send("^{SPACE}")			
			Sleep(1000)
		 EndIf
		 if $AB="On"Then
			Send("!{F2}")
			$AB="Off"
		 EndIf
   EndIf
   if targetCheck ()="NeVLoke" Then 
	  Target ()
   EndIf
   if aktivCheck()=0 Then
	  Aktiv ()
   EndIf
   Sleep(5000)
EndFunc

Func Otgruz () ;разгрузка в доке
   Sleep(3000)
   MouseClick("left", Random(84,131), 338, 1,20) ;актив. карго шипа
   MouseClickDrag("left",Random(340,350),475,184,Random(377,380),50)
   Sleep(Random(1000,1500))
   MouseClickDrag("left",Random(201,209),395,Random(95,124),405,50)
   Sleep(Random(1000,2000))
EndFunc
	 
Func ToDock (); отварп в док
   MouseClick("right", 55, 36, 1,70)
   Sleep(Random(500,1000))
   MouseClick("left", Random(85,188), 107, 1,60)
   MouseMove( Random(550,660), 104, 50)
   MouseClick("left", Random(537,630), 147, 1,50)
   $warpToDock =1
   Sleep(Random(3000,4000))
 Do
	
        ToolTip ("летим к doku",0,0)
		Sleep(500)
    Until CheckEndWarp () = 1 
	Sleep(Random(3000,4000))
	Do
	    ToolTip ("doking",0,0)
		Sleep(500)
	 Until Docking ()=1
	 Sleep(4000)
EndFunc
   


   
Func Belt () ;есть или нет белт
   WinActivate($Win)
	  KubStatus()
	 PixelSearch(847, 181, 853, 187, 0xdad7d7, 50)
	 ; PixelSearch($OverKUB[0]+103,$OverKUB[1]+59,$OverKUB[0]+143,$OverKUB[1]+67, 0x538ec0, 10)
	If @error Then
	   ToolTip("нет белтов",0,0)
	   Sleep(100)
	   Return 1
	   Else
        ToolTip("есть белты",0,0)
		Sleep(100)
	   Return 2
	 EndIf
  EndFunc

Func Undock () ;ундок
   WinActivate($Win)
	   MouseClick("left", Random(9,31), Random(713,726), 1)
        
 Do
 Sleep (2000) 
Until CheckSpace()=1

 EndFunc
Func CheckSpace();проверка на космос
	  PixelSearch(8, 718, 31, 735, 0xd5b237, 50)
	  If @error Then 
		  ToolTip ("В космосе",0,0)
		  Sleep(1000)
		  Return 1
	  Else 
		 ToolTip ("В доке",0,0)
		 Sleep(1000)
		 return 2
	  EndIf
   EndFunc
   
 Func WarpToBelt() ;вапр на буку белта
    Sleep(Random(2000,3000))
    MouseClick ("right",Random(770,900), 608,1,35);правой клавишей на буку
    Sleep(Random(500,1500))
    MouseClick ("left",Random(825,930), 615,1,30);выбираем варпаться в белт
    sleep(3000)
    Do
        Sleep(500)
        ToolTip ("летим к белту",0,0)
    Until CheckEndWarp()=1
 EndFunc  
 
 Func CheckEndWarp() ;функция проверки окончания варпа
    PixelSearch(447,501,449,513,0xcdc6c4, 50);проверяется левый верхний пиксель буквы Г в слове Гиперпрыжок :)пока он есть мы в гиперпрыжке.
    If @error Then
    Return 1
    Else
    Return 0
    EndIf
 EndFunc
 
 Func TogglePause() ;не рабочая пауза
    $Paused = NOT $Paused
    While $Paused
        sleep(100)
        ToolTip('Script is "Paused"',0,0)
    WEnd
	WinActivate($Win)
	WinWaitActive($Win)
    ToolTip("")
EndFunc

Тоже никаких конво от гмов небыло.

чтоб не плодить темы
подскажите почему конструкция не робит
Код:
$warp1=PixelSearch(482,505,484,508,0xc3c4c5,10);буква д в слове варп драйв
	  $warp2=PixelSearch(582,504,584,508,0xc3c4c5,10);буква I в слове активайт
If  $warp1=Not @error And $warp2= Not @error Then
   ToolTip("в варпе",0,0)
   Sleep(1000)
   ;Return "в варпе"
EndIf

находит пиксели даже если не в варпе
 

Frostnord

Новичок
Сообщения
13
Репутация
1
эта функция для редчайшего случая , если бот залогался в игру около станции за все время работы помойму и не использовался не разу.
 

Frostnord

Новичок
Сообщения
13
Репутация
1
Окей пытаюсь написать нового бота не на if а на case
Код:
Opt("PixelCoordMode", 2) ;Отсчет координат пикселей от левого верхнего угла клиентской части окна
Opt("MouseCoordMode", 2)
#include "c:\pass.au3"
HotKeySet("{f9}", "_Exit")


Global $Win = "EVE"
winactivate($Win) ;Делает окно EVE активным
winwaitactive($Win)
;Global $BeltArrey[6]=[$OverKUB[0]+98,$OverKUB[1]+59,$OverKUB[0]+125,$OverKUB[1]+67, 0xdad7d7, 50]
Global $warp1;буква д в слове варп драйв
Global $warp2;буква I в слове активайт
Global $docking1;буква д в слове докинг
Global $docking2;буква и в слове докинг
Global $dockBotton;проверка на космос
Global $beltcheck ;поиск бцквы а в слове астеройд
Global $OverKUB
Global $Belt[2] = [1, 18]

While 1
   winactivate($Win) ;Делает окно EVE активным
   winwaitactive($Win)
   Telo()
WEnd
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Func Telo()
   Select
   Case location("в варпе");в варпе
	  Sleep(1000)
	  ;Case OverViev(
   Case location("около станции") And Cargo("карго пуст");пустой у станции
		 ToolTip("около станции и пустой варпаю в белт",0,0)
		 Sleep(1000)
		 _Then("WarpToBelt")
		 Sleep(5000)
	  
EndSelect
EndFunc

Func location($case2)
   
PixelSearch(482,505,484,508,0xc3c4c5,10);буква д в слове варп драйв
   If Not @error Then
	  $warp1="вижу д"
   Else
	  $warp1="не вижу д"
   EndIf
PixelSearch(582,504,584,508,0xc3c4c5,10);буква I в слове активайт
   If Not @error Then
	  $warp2="вижу и"
   Else
	  $warp2="не вижу и"
   EndIf
PixelSearch(476,504,478,508,0xc3c4c5,20);буква д в слове докинг
   If Not @error Then
	  $docking1="вижу д"
   Else
	  $docking1="не вижу д"
   EndIf
PixelSearch(524,504,526,508,0xc3c4c5,20);буква и в слове докинг
   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 $warp1="вижу д" And $warp2="вижу и";варп чек
   ToolTip("в варпе",0,0)
   Sleep(1000)
   ;Return "в варпе"
   $case2="в варпе"
Case $docking1="вижу д" And $docking2="вижу и"; 
   ToolTip("докаюсь",0,0)
   Sleep(1000)
   ;Return "докаюсь"
   $case2="докаюсь"
Case $OverKUB="не вижу куб" and $dockBotton="вижу кн.док"
   ToolTip("в доке",0,0)
   Sleep(1000)
   ;Return "в доке"
   $case2="в доке"
Case $dockBotton="не вижу кн.док" And $beltcheck="не вижу белт"	   
   ToolTip ("около станции",0,0)
   Sleep(1000) 
   ;Return "около станции"
   $case2="около станции"
Case $dockBotton="не вижу кн.док" And $beltcheck="вижу белт"
   ToolTip ("космос-вижу белт",0,0)
   Sleep(1000)			   
   ;Return "космос-вижу белт"  
   $case2="космос-вижу белт"   
EndSelect	

EndFunc

Func Cargo($case3)		;--------------------------cargo ()
   WinActivate($Win)
   PixelSearch(12,9,25,10,0xe6e5e5,20)
   If not @error Then
	  OpenCargo()
   EndIf
	  	  $coord=PixelSearch(62, 315, 74, 364, 0xffffff, 10)
	  If Not @error Then
		 PixelSearch($coord[0]+179,$coord[1]-3,$coord[0]+187,$coord[1]+3,0x004c62, 20)
		 If @error Then
			ToolTip("карго пуст",0,0)
			Sleep(1000)
			;Return "карго пуст"
			$case3="карго пуст"
		 Else
			ToolTip("карго полон",0,0)
			Sleep(1000)
			;Return "карго полон"
			$case3="карго полон"
		 EndIf
	  EndIf
	  
  EndFunc
   
   

		 
Func OverViev();оверью      
   ;Local $DistArrey[6]=[$OverKUB[0]+47,$OverKUB[1]+59,$OverKUB[0]+58,$OverKUB[1]+67,0xc9c9c9, 50] ;координаты для определения расстояния до белта
  ; Local $TargetArrey[6]=[$OverKUB[0],$OverKUB[1]+59,$OverKUB[0]+8,$OverKUB[1]+67,0xffffff, 10] ;координаты поиска цели	
					 PixelSearch($DistArrey[0],$DistArrey[1],$DistArrey[2],$DistArrey[3],$DistArrey[4],$DistArrey[5]);поиск дистанции
			   If @error Then		  
					 ToolTip("не Достаю",0,0)
					 Sleep(500)
					 Return "не Достаю"					
				 Else						
					 ToolTip("достаю",0,0)
					 Sleep(500)
					 ;Return "достаю"
					 PixelSearch($TargetArrey[0],$TargetArrey[1],$TargetArrey[2],$TargetArrey[3],$TargetArrey[4],$TargetArrey[5]);лок цели
				  if Not @error Then
						ToolTip("Влоке",0,0)
						Sleep(500)
						Return "Влоке"
					 Else
						ToolTip("не Влоке",0,0)
						Sleep(500)
						Return "не Влоке"
				  EndIf
			   EndIf
EndFunc 

Func _Then ($case)
   Select
   Case $case="WarpToBelt"
   OpenMenu(1, Random($Belt[0], $Belt[1], 1), 1) ;Варпаем в белт
   EndSelect
EndFunc
		
Func _Exit()
	Exit
 EndFunc
 
 Func OpenMenu($L1, $L2, $L3) ;Фишечка для работы с меню игры
	$L1 = $L1-1
	$L2 = $L2-1
	$L3 = $L3-1
	Local $x=Random(53,65), $y=Random(32,42)
	MouseClick("left", $x, $y, 1, 10)
	Sleep(500)
	Local $var = PixelSearch($x, $y+8+15*$L1, $x+500, $y+8+15*$L1, 0xCDCDCD, 5);Ищим треугольник справа от строки на которую хотим ткнуть
	If Not @error Then ;если нашли
		MouseMove($var[0], $var[1], 5) ;наводим на него мышь и тем самым открываем второй уровень меню
		Sleep(500)
		Local $var1 = PixelSearch($var[0]+50, $var[1]+15*$L2, $var[0]+500, $var[1]+15*$L2, 0xCDCDCD, 5) ;а5 ищим треугольник справа от строки на которую хотим ткнуть
		If Not @error Then ;если нашли
			MouseMove($var1[0], $var1[1], 5) ;наводим на него мышь и тем самым открываем третий уровень меню
			Sleep(500)
			MouseClick("Left", $var1[0]+50, $var1[1]+15*$L3, 1, 5) ;Ну и таки жмакаем на команду на  которую хотели. Я буду работать только со строками варп в 0 и док, так что Warp to with in, изголяться и добавлять работу с 4-м уровнем меню я не стал
		Else
			SetError(2) ;Если мы ошиблись на 2-м уровне - возвращаем Еррор = 2 
		EndIf
	Else
		SetError(1) ;Если ошиблись на первом уровне возвращаем Еррор = 1
	EndIf
 EndFunc
 
 Func OpenCargo () ; проверка и открытие карго
		 PixelSearch(62, 315, 74, 364, 0xffffff, 10)
	   if Not @error Then 
		 ToolTip("трюм открыт",0,0)
		 Sleep(500)
	  Else
			;Send("{altdown}")
			Sleep(100)
			Send("!{c}")
			Sleep(100)
			;Send("{altup}")
	  
		 ToolTip("трюм закрыт",0,0)
	  Sleep(2000)
   EndIf
EndFunc


определяет свое положение в функции location и дальше должна идти проверка карго
Код:
Case location("около станции") And Cargo("карго пуст");пустой у станции

но ответа от функции нет.. что я делаю не так?

upd//
разобрался сам case должен быть вида
Код:
Case location()="около станции" And Cargo()="карго пуст"

хотя я думал это одно и тоже
 

Danneborg

Новичок
Сообщения
7
Репутация
0
Недавно начал разбираться с кодом бота,предложенного топик кастером,кто может подсказать,как заставить его работать с несколькими окнами?
 

Victor

Новичок
Сообщения
7
Репутация
0
Re: Майнер бот. Эволюция от примитивного до умного.v2.49

yaodnako сказал(а):
Версия бота 2.5+лёд 2.5i
- Нашел ошибку - бот неадекватно определял, свое нахождение при промежуточных загрузках.
Сейчас все отлично работает.
- дописал и доредактировал некоторые сообщения статусов. Теперь проще будет понять при первом запуске на каком этапе зависает бот и какие датчики нужно смотреть, чтобы бот полетел.
- теперь адекватно себя ведет при инкурсе и дамаге сверх границы. Скринит 1(!) раз и валит на станцию :smile:

извиняюсь уважаемые вопрос наверное нубский - а где скрипт то ?
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Многие вложения не пережили падения форума пару лет назад.
 

rakar

Новичок
Сообщения
5
Репутация
1
mamontsevds сказал(а):
У кого-нибудь остался скриптик Яоднаки?

Вот нашел у себя, добавил и своего архивом, я там игрался с GUI от скуки.
 

Вложения

  • Miner bot 2.23(yaodnako).au3
    20.5 КБ · Просмотры: 27
  • Miner bot 2.41 smart(yaodnako).au3
    26.8 КБ · Просмотры: 29
  • 2.5forum.au3
    39 КБ · Просмотры: 33
  • mine.rar
    23.4 КБ · Просмотры: 39
Верх