помощ автотаргет

Ask for scripts here

Moderators: Murderator+, Murderator

Post Reply
~2good4you~
Posts: 5
Joined: 2011-02-25 10:35:26

помощ автотаргет

Post by ~2good4you~ »

всем добрый день, облазил много ресурсов в том числе и Ваш, но не где не смог найти автотаргет который меня интересует, очень много навороченных скриптов и т.д, меня интересует обычный скрипт под шард АОП чтоб просто при нажатии кнопки брало таргет на всех кроме согильдийцев, монстров и НПС, я маг, кастую по lasttarget, если у кого-то есть такое выложите пожалуйста. Спасибо!
~2good4you~
Posts: 5
Joined: 2011-02-25 10:35:26

Re: помощ автотаргет

Post by ~2good4you~ »

пробовал настроить вот это но что-то оно берет как-то через 1 место

Code: Select all

sub NextTarget()
   if not (uo.countground('0x0190')+uo.countground('0x0191')) then
      uo.ignorereset()
   end if
   if uo.countground('0x0190') then
      uo.GetStatus('~0x0190')
      uo.ignore('finditem')
UO.ignore( '0x0475004B' ) ##
UO.ignore( '0x020E66D6' ) ##
UO.ignore( '0x007E7CE6' ) ##
UO.ignore( '0x0170744A' ) ##+
UO.ignore( '0x01BB654C' ) ##++
UO.ignore( '0x00F7EC25' ) ##+
UO.ignore( '0x00F3C2CC' ) ##
UO.ignore( '0x0377F671' ) ##
UO.ignore( '0x04CD5116' ) ##
UO.ignore( '0x0375749E' ) ##
UO.ignore( '0x0000C069' ) ##
UO.ignore( '0x02FCBC9E' ) ##
UO.ignore( '0x0239E51F' ) ##
UO.ignore( '0x0174018B' ) ##
UO.ignore( '0x0051B620' ) ##

   else
      if uo.countground('0x0191') then
         uo.GetStatus('~0x0191')
         uo.ignore('finditem')
      end if
   end if
end sub
Weee
Posts: 90
Joined: 2011-01-19 01:07:15

Re: помощ автотаргет

Post by Weee »

автотаргеты на инже все "через 1 место".

я свой писал при помощи файндтайп. в варках работает хорошо, но иногда сбивается из-за глючной работы findtype. это уже где-то обсуждалось на форуме, дело в том, что файндтайп иногда обнуляет сериал объектов, которые находит, и из-за этого пока не перезагрузишь уо файндтайп будет глючить на тот самый сериал. или бывает еще хуже - один из объектов "зависает" каким-то образом и файндтайп будет думать, что там до сих пор в той точке кто-то есть. Даже если ты среколишься, вернешься обратно - все равно. Это я заметил еще при использовании похожих фишек в скриптах на добычу.

Вот мой авто-таргет, которым я пользуюсь:

Code: Select all

sub Ignores()
	; Игноры для поиска:
	UO.Ignore('self','on')
	UO.Ignore('Friend','on')
	UO.Ignore('Friend2','on')
	UO.Ignore('Friend3','on') ; вместо Friend1, Friend2, Friend3 пишем айди своих друзей и согильдицев.
end sub

sub AutoTarget() ; Авто-таргет на одного чувака. Хорошо для ПК и 1х1.
	var a, i
	var lastplayernum = 0
	var maleplayernum = 0
	var femaleplayernum = 0
	var allplayernum = 0
	var temp = 0
	UO.Set('quiet','1')
	uo.exec('set finddistance 25')
	Ignores()
	DIM Chars[2] 
	Chars[0] = '0x0190' ## - Тип male.
	Chars[1] = '0x0191' ## - Тип female.
	uo.findtype(Chars[0], '-1', '1')
	maleplayernum = uo.findcount()
	uo.findtype(Chars[1], '-1', '1')
	femaleplayernum = uo.findcount()
	allplayernum = maleplayernum + femaleplayernum
	for a = 0 to 1 ## - Перебираем типы male/female.
		uo.findtype(Chars[a], '-1', '1')
		if allplayernum == 1 then
			if UO.GetMaxHP('finditem') < 200 then ; проверка на хп, чтобы отсеивало вендоров.
				UO.AddObject('MainTarget','finditem')
			endif
		else
			if uo.findcount() > 0 then
				temp = uo.findcount()
				for i=0 to uo.findcount()
					uo.findtype(Chars[a], '-1', '1')
					UO.GetStatus('finditem')
					if UO.GetMaxHP('finditem') < 200 then
						lastplayernum = lastplayernum + 1
						if lastplayernum < 5 then
							UO.AddObject('AddTarget'+str(lastplayernum), 'finditem')
						else
							i = temp
						endif
						if lastplayernum == 1 then
							UO.AddObject('MainTarget','finditem')
						endif
						UO.Ignore('finditem', 'on')
					endif
				next
			endif
		endif
	next
	UO.Set('quiet','0')
	UO.Print("MainTarget: "+UO.GetName('MainTarget'))
	UO.Click('MainTarget')
	UO.IgnoreReset()
end sub

sub ChooseTarget1()
	UO.Set('quiet','1')
	UO.AddObject('MainTarget','AddTarget1')
	UO.Set('quiet','0')
	UO.Print("MainTarget: "+UO.GetName('MainTarget'))
	UO.Click('MainTarget')
end sub

sub ChooseTarget2()
	UO.Set('quiet','1')
	UO.AddObject('MainTarget','AddTarget2')
	UO.Set('quiet','0')
	UO.Print("MainTarget: "+UO.GetName('MainTarget'))
	UO.Click('MainTarget')
end sub

sub ChooseTarget3()
	UO.Set('quiet','1')
	UO.AddObject('MainTarget','AddTarget3')
	UO.Set('quiet','0')
	UO.Print("MainTarget: "+UO.GetName('MainTarget'))
	UO.Click('MainTarget')
end sub

sub ChooseTarget4()
	UO.Set('quiet','1')
	UO.AddObject('MainTarget','AddTarget4')
	UO.Set('quiet','0')
	UO.Print("MainTarget: "+UO.GetName('MainTarget'))
	UO.Click('MainTarget')
end sub

Пользоваться так:
Делаешь 5 биндов.
1) Основной бинд: "exec AutoTarget". Выполняет скрипт поиска, если находит одного вражеского персонажа - сразу берет его в MainTarget (у меня все скрипты на инжу заточены не под ласт таргет, а под объект MainTarget, который постоянно меняется этим скриптом или специальным, по таргету. Если находит больше одного вражеского персонажа, то берет первого попавшегося в MainTarget, записывает его в первый таргет AddTarget1, а также записывает 3 других в AddTarget2, AddTarget3, AddTarget4.
2) Дополнительный бинд: "exec ChooseTarget1". Выбирает первый таргет и записывает его в MainTarget.
3) Дополнительный бинд: "exec ChooseTarget2". Выбирает второй таргет и записывает его в MainTarget.
4) Дополнительный бинд: "exec ChooseTarget3". Выбирает третий таргет и записывает его в MainTarget.
5) Дополнительный бинд: "exec ChooseTarget4". Выбирает четвертый таргет и записывает его в MainTarget.



Как бы дело слишком специфичное, у каждого свои предпочтения... Такое лучше писать самому.
~2good4you~
Posts: 5
Joined: 2011-02-25 10:35:26

Re: помощ автотаргет

Post by ~2good4you~ »

Weee wrote:автотаргеты на инже все "через 1 место".

я свой писал при помощи файндтайп. в варках работает хорошо, но иногда сбивается из-за глючной работы findtype. это уже где-то обсуждалось на форуме, дело в том, что файндтайп иногда обнуляет сериал объектов, которые находит, и из-за этого пока не перезагрузишь уо файндтайп будет глючить на тот самый сериал. или бывает еще хуже - один из объектов "зависает" каким-то образом и файндтайп будет думать, что там до сих пор в той точке кто-то есть. Даже если ты среколишься, вернешься обратно - все равно. Это я заметил еще при использовании похожих фишек в скриптах на добычу.

Вот мой авто-таргет, которым я пользуюсь:

Code: Select all

sub Ignores()
	; Игноры для поиска:
	UO.Ignore('self','on')
	UO.Ignore('Friend','on')
	UO.Ignore('Friend2','on')
	UO.Ignore('Friend3','on') ; вместо Friend1, Friend2, Friend3 пишем айди своих друзей и согильдицев.
end sub

sub AutoTarget() ; Авто-таргет на одного чувака. Хорошо для ПК и 1х1.
	var a, i
	var lastplayernum = 0
	var maleplayernum = 0
	var femaleplayernum = 0
	var allplayernum = 0
	var temp = 0
	UO.Set('quiet','1')
	uo.exec('set finddistance 25')
	Ignores()
	DIM Chars[2] 
	Chars[0] = '0x0190' ## - Тип male.
	Chars[1] = '0x0191' ## - Тип female.
	uo.findtype(Chars[0], '-1', '1')
	maleplayernum = uo.findcount()
	uo.findtype(Chars[1], '-1', '1')
	femaleplayernum = uo.findcount()
	allplayernum = maleplayernum + femaleplayernum
	for a = 0 to 1 ## - Перебираем типы male/female.
		uo.findtype(Chars[a], '-1', '1')
		if allplayernum == 1 then
			if UO.GetMaxHP('finditem') < 200 then ; проверка на хп, чтобы отсеивало вендоров.
				UO.AddObject('MainTarget','finditem')
			endif
		else
			if uo.findcount() > 0 then
				temp = uo.findcount()
				for i=0 to uo.findcount()
					uo.findtype(Chars[a], '-1', '1')
					UO.GetStatus('finditem')
					if UO.GetMaxHP('finditem') < 200 then
						lastplayernum = lastplayernum + 1
						if lastplayernum < 5 then
							UO.AddObject('AddTarget'+str(lastplayernum), 'finditem')
						else
							i = temp
						endif
						if lastplayernum == 1 then
							UO.AddObject('MainTarget','finditem')
						endif
						UO.Ignore('finditem', 'on')
					endif
				next
			endif
		endif
	next
	UO.Set('quiet','0')
	UO.Print("MainTarget: "+UO.GetName('MainTarget'))
	UO.Click('MainTarget')
	UO.IgnoreReset()
end sub

sub ChooseTarget1()
	UO.Set('quiet','1')
	UO.AddObject('MainTarget','AddTarget1')
	UO.Set('quiet','0')
	UO.Print("MainTarget: "+UO.GetName('MainTarget'))
	UO.Click('MainTarget')
end sub

sub ChooseTarget2()
	UO.Set('quiet','1')
	UO.AddObject('MainTarget','AddTarget2')
	UO.Set('quiet','0')
	UO.Print("MainTarget: "+UO.GetName('MainTarget'))
	UO.Click('MainTarget')
end sub

sub ChooseTarget3()
	UO.Set('quiet','1')
	UO.AddObject('MainTarget','AddTarget3')
	UO.Set('quiet','0')
	UO.Print("MainTarget: "+UO.GetName('MainTarget'))
	UO.Click('MainTarget')
end sub

sub ChooseTarget4()
	UO.Set('quiet','1')
	UO.AddObject('MainTarget','AddTarget4')
	UO.Set('quiet','0')
	UO.Print("MainTarget: "+UO.GetName('MainTarget'))
	UO.Click('MainTarget')
end sub

Пользоваться так:
Делаешь 5 биндов.
1) Основной бинд: "exec AutoTarget". Выполняет скрипт поиска, если находит одного вражеского персонажа - сразу берет его в MainTarget (у меня все скрипты на инжу заточены не под ласт таргет, а под объект MainTarget, который постоянно меняется этим скриптом или специальным, по таргету. Если находит больше одного вражеского персонажа, то берет первого попавшегося в MainTarget, записывает его в первый таргет AddTarget1, а также записывает 3 других в AddTarget2, AddTarget3, AddTarget4.
2) Дополнительный бинд: "exec ChooseTarget1". Выбирает первый таргет и записывает его в MainTarget.
3) Дополнительный бинд: "exec ChooseTarget2". Выбирает второй таргет и записывает его в MainTarget.
4) Дополнительный бинд: "exec ChooseTarget3". Выбирает третий таргет и записывает его в MainTarget.
5) Дополнительный бинд: "exec ChooseTarget4". Выбирает четвертый таргет и записывает его в MainTarget.



Как бы дело слишком специфичное, у каждого свои предпочтения... Такое лучше писать самому.
спасибо. будем пробовать
проблема со сточкой UO.AddObject('AddTarget'+str('lastplayernum'), 'finditem') пишет что не понятные данные для STR
Weee
Posts: 90
Joined: 2011-01-19 01:07:15

Re: помощ автотаргет

Post by Weee »

~2good4you~ wrote:проблема со сточкой UO.AddObject('AddTarget'+str('lastplayernum'), 'finditem') пишет что не понятные данные для STR
Ну сейчас строчка точно неправильная, не знаю зачем ты её изменял :)
lastplayernum должен быть без кавычек:

Code: Select all

UO.AddObject('AddTarget'+str(lastplayernum), 'finditem')
У меня так работает, ничего не менял (почти, только пару левых проверок убрал, которые тебе не нужны).

Попробуй вместо str(lastplayernum), просто lastplayernum:

Code: Select all

UO.AddObject('AddTarget'+lastplayernum, 'finditem')
Но не факт, что оно будет нормально добавлять эти объекты.
~2good4you~
Posts: 5
Joined: 2011-02-25 10:35:26

Re: помощ автотаргет

Post by ~2good4you~ »

Weee wrote:
~2good4you~ wrote:проблема со сточкой UO.AddObject('AddTarget'+str('lastplayernum'), 'finditem') пишет что не понятные данные для STR
Ну сейчас строчка точно неправильная, не знаю зачем ты её изменял :)
lastplayernum должен быть без кавычек:

Code: Select all

UO.AddObject('AddTarget'+str(lastplayernum), 'finditem')
У меня так работает, ничего не менял (почти, только пару левых проверок убрал, которые тебе не нужны).

Попробуй вместо str(lastplayernum), просто lastplayernum:

Code: Select all

UO.AddObject('AddTarget'+lastplayernum, 'finditem')
Но не факт, что оно будет нормально добавлять эти объекты.
спасибо за все варианты, но они оба не работают у меня (( наверное и--за версии инжы, какая у тебя версия?
Weee
Posts: 90
Joined: 2011-01-19 01:07:15

Re: помощ автотаргет

Post by Weee »

Если память не изменяет 505.18 вендор
Post Reply