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

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