Что нового

Цели(target) и работа с ними

DJ_Tommy

Продвинутый
Сообщения
236
Репутация
57
Делаем порядок целей по дистанции.
Если у нас кол-во залоченных целей должно быть максимум 3, то при кол-ве залоченных целей целей меньше трех лочим три верхних цели в овервью. И все, вам не надо проверять были они залочены или нет. Если не понятно объясняю - глянь тему с моим скриптом по анамалькам (в самом конце я выложил старый скрипт). Если все равно не понятно - напиши, попробую более подробно объяснить.
 

Lexx98

Продвинутый
Сообщения
272
Репутация
73
Это конечно, сработает, но это не есть нормальное человеческое поведение. Каждый раз повторно лочить уже залоченное.
Имхо.
 

DJ_Tommy

Продвинутый
Сообщения
236
Репутация
57
SirMaksFromEho [?]
Это конечно, сработает, но это не есть нормальное человеческое поведение. Каждый раз повторно лочить уже залоченное.
Имхо.

Ну я в принципе так всегда делаю даже ручками.
Но в принципе перед локом можно доп проверку запускать - это не проблема
 
Автор
E

Enemy

Знающий
Сообщения
42
Репутация
7
просто пускать проверку на переменную "i" и давать скрипту, если она 3 значит он лочить не будет если две, значит залочит 1
кстати смотрю по работе этого скрипта, почему-то он лочит постоянно 4 свободные цели. т.е. не 3 как в скрипте, счетчик целей.... как можно сделать на 3?
 

Lexx98

Продвинутый
Сообщения
272
Репутация
73
Лочит 4, потому что в переменной $i содержится количество залоченных. И пока оно меньше или равно 3, он пытается залочить ещё одну. Потому и лочит 4-ю.
Код:
While $i <= 3

Хочешь чтоб лочил 3 - убери знак равенства.

А если ты вынесешь
Код:
$i = $i + 1

ниже Endif-а, то он у тебя будет долочивать сколько нужно (если уже залоченные будут в верхних строках овервью). А не пытаться лочить 4(3) штуки, при том, что 2 уже залочено, а хочется чтоб было залочено 3.
Если я ничего не путаю.
 

AllWay

Знающий
Сообщения
16
Репутация
9
Корявенько, но смысл цикличного просмотра овервью на предмет захваченных целей думаю понятен
Код:
Dim $tX= 1213, $tY= 360, $bX= 1232, $bY=375 ;координаты задаются вокруг 1ой цели (овервью)
Dim $Target=0xC11313, $ScanSade= 15, $Target2=0xDAD7D7, $ScanSade2= 30

PixelSearch( $tX, $tY, $bX, 560, $Target, $ScanSade) ;искать красный пиксель неписи во всем столбце овервью
If Not @error Then ;если нашли
	Opt("SendKeyDelay", 250)          
	Send("{CTRLDOWN}") ; нажать и удерживать кнопку Ctrl
For $ft=0 To 140 step 20 ;цикл просматривает 8 позиций, относительно заданных координат с шагом смещения 20 пикселов
	PixelSearch($tX, $tY+$ft, $bX, $bY+$ft, $Target, $ScanSade)
	If Not @error Then
		PixelSearch($tX, $tY+$ft, $bX, $bY+$ft, $Target2, $ScanSade2) ;;белые треугольники прицела вокруг иконок типа корабля (овервью) прицел зафиксирован
		If @error Then
			PixelSearch( $tX, $tY+$ft, $bX, $bY+$ft, 0x898989, 15) ;движущиеся прицельные рамки в иконке корабля(овервью) во время захвата цели
			If @error Then
				PixelSearch( 1351, 231, 1361, 233, 0x404040, 2) ;неактивную окантовку кнопки "Захватить цель" (цель захвачена)	
				If @error Then
					Opt("SendKeyDelay", 250)          
					Send("{CTRLDOWN}") 
				EndIf	
					Opt("MouseClickDownDelay", Random(448,612))
					MouseClick("left", Random(1240,1300),Random(364,371)+$ft,1,Random(4,7))
					Sleep(500) 
			EndIf	
		EndIf
	EndIf
Next
	Opt("SendKeyDelay", 250)          
	Send("{CTRLUP}{CTRLUP}") ; отжать зажатую кнопку Ctrl
	Sleep(100)
EndIf
 

luhta

Новичок
Сообщения
8
Репутация
0
кто решил проблему лока сразу нескольких целей, с одной целью все понятно а вот как быть если фармиш на мазере и у тебя несколько групп дронов и целей 6 вводить шесть датчиков и все их отслеживать может у кого есть более культурное решение ткните пожалуйста в какую степь копать и как отслеживать свободна ли группа дронов или они уже пилят цель
 

Mdsanta

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

Дронов пробегать в цикле, брать свободных, пробегать цели в цикле, травить на свободную, если нету - долочивать и натравливать, если все натравлены, а залочено меньше макс - долочивать.
Ручками же делаешь абсолютно то же самое, чем алгоритм бота отличаться должен то? :smile:
 
Верх