Что нового

Дроны

hariton

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

Belfigor

Модератор
Локальный модератор
Сообщения
3 593
Репутация
938
Были бы рады если ты написал статью и выложил обучающий материал в общий доступ :smile:
 
Автор
H

hariton

Новичок
Сообщения
8
Репутация
0
Вот пол дня просидел кое что сделал, завтра на трезвую голову выложу выкладки...
 

DJ_Tommy

Продвинутый
Сообщения
235
Репутация
57
В дронах самое сложное это логика управления. Контролить нужно только здоровье их, состояние агрессии и наличие целей залоченных.
А вот логика уже зависит от предпочитаемого способа охоты, ибо можно взрывать хорды и после получения фулл агры спокойно выпустить десяток огров и контролировать только состояние локала, а можно лочить онли бш и атачить их файтерами, либо разделять файтеры на группы и направлять каждую группу на свою цель - вариантов очень много на самом деле, т.к. есть еще центри дроны и все связанные с ними заморочки.
У дронов же по идее нужно использовать 3 состояния. Зеленое - просто выпущенные дроны, красное - дроны агрят кого то, желтое - возвращаются в дронбей.
 
Автор
H

hariton

Новичок
Сообщения
8
Репутация
0
На мой взгляд все проще
файтеры погоды не делают.
в аномальке нужно лишь проверить все ли неписи тебя аттачат, если все выпускай дронов и натрави их на одну цель, а дальше жди сколько неписей еще живо, если их количество вдруг выросло, значит дроны кам бэк. и начинаем заново.
Предлагаю мой вариант функции поиска окошек (овервью, дроны, селектед итемс, локал)
Условно делим экран на 2 половины (левую, правую)
В левой пусть будет Локал, в правой в порядке сверху вниз будут селектед итем, овервью и дроны)
Код:
[autoit]
Global $overview[2],$fact_eve_res[2],$overline_1_left_up[2],$overline_1_middle[2],$Paused=False,$mini=True
Global $droneinbaylinemiddle[2],$dronelounchlinemiddle[2],$droneinbayOCR[2],$droneinspaceOCR[2],$SIFirstIconCenter[2],$SIstep
Global $localzone[4]

Func checkbaseparams()
	Local $temp1[4], $temp2[2], $tmp[2]
	If WinExists("EVE") Then
		WinActivate("EVE")
		WinWaitActive("EVE")
		WinMove("EVE","",0,0)
		$temp=WinGetPos("EVE")   ;узнаем длину и ширину oкна ЕВЫ
		$fact_eve_res[0]=$temp[2]-6
		$fact_eve_res[1]=$temp[3]-28
		GUICtrlSetData($MyGUI_Lable5,$fact_eve_res[0]&","&$fact_eve_res[1])
		;начинаем искать овервью
		$temp2=PixelSearch($fact_eve_res[0]/2,30,$fact_eve_res[0],$fact_eve_res[1],0xCFCFCF)	;ищем координаты треугольника овервью
		If @error Then
			MsgBox(4096,"Error","Overview not found. I cant work :(")
			Exit(1)
		EndIf
		$overview[0]=$temp2[0]+1;
		$overview[1]=$temp2[1]+3; попровляем координаты чтобы стали серединой треугольника
		$overline_1_left_up[0]=$overview[0]-6;левый верхний угол первой строки овервью
		$overline_1_left_up[1]=$overview[1]+48;
		$overline_1_middle[0]=$overview[0]+5;середина первой строки овервью
		$overline_1_middle[1]=$overview[1]+57;
		; начинаем искать селектед итемс
		$tmp=SISearch()
		If @error Then
			MsgBox(4096,"Error","Selected Item menu not found. I cant work :(")
			Exit(2)
		EndIf
		If $mini Then
			$SIstep=23 ; шаг между иконками в селектед итемс
			$SIFirstIconCenter[0]=$tmp[0]+16 ; центр первой иконки
		Else
			$SIstep=32
			$SIFirstIconCenter[0]=$tmp[0]+21
		EndIf
		$SIFirstIconCenter[1]=$tmp[1]+72
		;начинаем поиск треугольника у дронов
		$temp2=PixelSearch($fact_eve_res[0]/2,$overview[1]+10,$fact_eve_res[0],$fact_eve_res[1],0xCFCFCF)
		If Not @error Then
			$droneinbaylinemiddle[0]=$temp2[0]+48; середина линии Drones in bay
			$droneinbaylinemiddle[1]=$temp2[1]+26
			$dronelounchlinemiddle[0]=$temp2[0]+109; середина линии Drones in local space
			$dronelounchlinemiddle[1]=$temp2[1]+65
			$droneinbayOCR[0]=$temp2[0]+88; координаты цифры количества дронов в трюме
			$droneinbayOCR[1]=$temp2[1]+24
			$droneinspaceOCR[0]=$temp2[0]+122; координаты цифры количества выпущенных дронов
			$droneinspaceOCR[1]=$temp2[1]+43
		Else
			MsgBox(4096,"Error","Drones not found. I cant work :(")
			Exit(3)
		EndIf
		;начинаем искать Локал, а точнее нам нужно получить зону для сканирования нейтралов и минусов

		$localzone=LocalSearch()
		If @error Then
			MsgBox(4096,"Error","Local not found. I cant work :(")
			Exit(4)
		EndIf
		MouseMove($overline_1_middle[0],$overline_1_middle[1],15)
		Sleep(500)
		MouseMove($droneinbayOCR[0]+2,$droneinbayOCR[1]+3,15)
		Sleep(500)
		MouseMove($localzone[0],$localzone[1],15)
		Sleep(500)
		MouseMove($localzone[2],$localzone[3],15)
		Sleep(1500)
	EndIf
EndFunc
; Description ...: Ищит в заданной области поиска окно Selected Item.
; Return values .: Success - Возвращает одномерный массив содержащий X, Y координаты левого верхнего угла Selected Item окна. (Array[0] = x, Array[1] = y).
;                  Failure - Возвращает 0 и присваивает @error одно из следующих значений:
;                  @error = 1 : Если в области сканирования небыло найдено даже намека на окно Selected Item.
;                  @error = 2 : Если было найдено предположительное место расположения окна, но последующая проверка показала
;								что это либо не оно, либо его параметры не такие какими должны быть.
Func SISearch()
	Local $i1 = PixelSearch($fact_eve_res[0]/2,30,$fact_eve_res[0],$fact_eve_res[1]/2,0x333333,5)
	If Not @error Then
		Local $i2 = PixelSearch($i1[0], $i1[1]+32, $i1[0], $i1[1]+32, 0x7A7A7A, 5)
		If @error Then
			Return $i1
		Else
			SetError(2)
		EndIf
	Else
		SetError(1)
	EndIf
	Return 0
EndFunc
Func LocalSearch()
	Local $ret[4]
	Local $i1 = PixelSearch(40,30,$fact_eve_res[0]/2,$fact_eve_res[1],0xCECECE)
	If Not @error Then
		Local $i2=PixelSearch($i1[0]+1,$i1[1]+2,$i1[0]+7,$i1[1]+4,0x6B6B6B)
		If Not @error Then
			$ret[0]=$i1[0]-5
			$ret[1]=$i1[1]+20
			$ret[2]=$ret[0]+25
			$ret[3]=$ret[1]+300
			Return $ret
		Else
			SetError(1)
		EndIf
		SetError(2)
	EndIf
EndFunc
[/autoit]
Это вырезка из кода поэтому могут возникать неточности
 

DJ_Tommy

Продвинутый
Сообщения
235
Репутация
57
если ты используешь не файтеров тогда все совсем просто - просто контролим состояние дронов и если шилд у дронов пополз - отзываем поврежденного, как только вернули в дронбей 3-4 дрона (для кариеров) отзываем всех, ждем паузу временную и снова всех выпускаем, лочим одну цель атачим и дальше контролим состояние дронов.
Ну и контролить только по одному цвету это реальность ошибок, нужен диапазон цветов
 
Верх