Page 3 of 3

Posted: 2007-11-14 19:21:09
by Kitten
Sanch wrote:За работоспособность не ручаюсь, если выдержки между тагетами на пушку и противника хватит для установки ловушки инжектом на противника то работать будет теоретически, другие способи таргетинга чреваты баном, вобщем тести.

Code: Select all

sub BuM()
var c, aim, pushka
uo.print('Укажите сундук с ядрами')
uo.exec('addobject Sunduk')
while uo.targeting()
  wait(100)
wend
uo.useobject('Sunduk')
wait(1000)
checklag()
uo.set('finddistance', '3')
uo.findtype('0x0e8d', '-1', '1')
if uo.findcount() > 0 then
  pushka = uo.getserial('finditem')
else
  uo.print('Рядом нет пушки, вырубаю скрипт')
  return
endif
uo.ignore('self', 'on')
uo.set('finddistance', '15')
DIM Chars[2]
Chars[0] = '0x0190' #тип игрока мужского пола#
Chars[1] = '0x0191' #тип игрока женского пола#
while not uo.dead()
  for c = 0 to 1       
    uo.findtype(Chars[c], '-1', '1') 
    if uo.findcount() > 0 then
      aim = uo.getserial('finditem')
      uo.findtype('0x0e73', '-1', 'Sunduk')
      if uo.fincount() == 0 then
        uo.print('Нет ядер в сундуке, вырубаю скрипт')
        return
      else
        uo.waittargetobject( pushka )
        uo.useobject('finditem')
        while uo.targeting()
          wait(10)
        wend
        uo.waittargettype( aim )
        wait(3000)
      endif
    else
      wait(100)
    endif
  next
wend
end sub

sub checklag()
uo.click('backpack')
while not uo.injournal('backpack')
  wait(100)
wend
uo.deletejournal('backpack')
end sub

вот этот конкретно не работает. После юза ядер на пушку не тыкает так сказать :). Если я его насильно (uo.lclick) направляю на пушку, потом не может найти мишень. А иногда все таки пытается стрельнуть в себя. Кому не лень, помогите пожалуйста.

Posted: 2007-11-14 20:11:30
by Grin

Code: Select all

sub BuM()

   var c, aim, pushka

   uo.print('Укажите сундук с ядрами')
   uo.addobject('Sunduk')
   while uo.targeting()
     wait(100)
   wend
   uo.useobject('Sunduk')
   wait(1000)
   checklag()
   uo.set('finddistance', '3')
   uo.findtype('0x0e8d', '-1', '1')
   if uo.findcount() then
     pushka = uo.getserial('finditem')
   else
     uo.print('Рядом нет пушки, вырубаю скрипт')
     return
   endif
   uo.ignore('self')
   uo.set('finddistance', '15')
   DIM Chars[2]
   Chars[0] = '0x0190' #тип игрока мужского пола#
   Chars[1] = '0x0191' #тип игрока женского пола#
   while not uo.dead()
     for c = 0 to 1   
       uo.findtype(Chars[c], '-1', 'ground')
       if uo.findcount() then
         aim = uo.getserial('finditem')
         uo.findtype('0x0e73', '-1', 'Sunduk')
         if not uo.fincount() then
           uo.print('Нет ядер в сундуке, вырубаю скрипт')
           return
         else
           uo.waittargetobject( pushka, aim )
           uo.useobject('finditem')
           wait(3000)
           if uo.Waiting() then
               uo.canceltarget()
            end if
         endif
       else
         wait(100)
       endif
     next
   wend

end sub

sub checklag()
   uo.click('backpack')
   while not uo.injournal('backpack')
     wait(100)
   wend
   uo.deletejournal('backpack')
end sub

Posted: 2007-11-14 20:49:37
by Kitten
Grin wrote:

Code: Select all

sub BuM()

   var c, aim, pushka

   uo.print('Укажите сундук с ядрами')
   uo.addobject('Sunduk')
   while uo.targeting()
     wait(100)
   wend
   uo.useobject('Sunduk')
   wait(1000)
   checklag()
   uo.set('finddistance', '3')
   uo.findtype('0x0e8d', '-1', '1')
   if uo.findcount() then
     pushka = uo.getserial('finditem')
   else
     uo.print('Рядом нет пушки, вырубаю скрипт')
     return
   endif
   uo.ignore('self')
   uo.set('finddistance', '15')
   DIM Chars[2]
   Chars[0] = '0x0190' #тип игрока мужского пола#
   Chars[1] = '0x0191' #тип игрока женского пола#
   while not uo.dead()
     for c = 0 to 1   
       uo.findtype(Chars[c], '-1', 'ground')
       if uo.findcount() then
         aim = uo.getserial('finditem')
         uo.findtype('0x0e73', '-1', 'Sunduk')
         if not uo.fincount() then
           uo.print('Нет ядер в сундуке, вырубаю скрипт')
           return
         else
           uo.waittargetobject( pushka, aim )
           uo.useobject('finditem')
           wait(3000)
           if uo.Waiting() then
               uo.canceltarget()
            end if
         endif
       else
         wait(100)
       endif
     next
   wend

end sub

sub checklag()
   uo.click('backpack')
   while not uo.injournal('backpack')
     wait(100)
   wend
   uo.deletejournal('backpack')
end sub

безумное спасибо :wink: , буду тестить

Posted: 2007-11-14 22:29:32
by Destruction
Можно для меня некоторые моменты пояснить?

Code: Select all

uo.useobject('Sunduk') 
wait(1000)
checklag()

Зачем здесь пауза?.. У меня всегда отично работало и без wait.. Какие могут возникнуть проблемы, если убрать wait?

Code: Select all

uo.findtype('0x0e8d', '-1', '1') 

Какой контейнер соответствует единице?.. Теоретически - это должна быть земля?..

Code: Select all

           wait(3000) 
           if uo.Waiting() then
               uo.canceltarget()
            end if

Не совсем понимаю.. Какой-нить checklag сюда может поставить и паузу сделать динамичной? Почему нет?..

Posted: 2007-11-14 22:40:51
by Grin

Code: Select all

           wait(3000) 
           if uo.Waiting() then
               uo.canceltarget()
            end if

на случай если выстрел по какимто приинам не прошел. Сделал его РАБОТАЮЩИМ и только... По всем остальным вопросам к перво источнику...

Posted: 2007-11-14 22:53:02
by Destruction
Grin wrote:

Code: Select all

           wait(3000) 
           if uo.Waiting() then
               uo.canceltarget()
            end if

на случай если выстрел по какимто приинам не прошел. Сделал его РАБОТАЮЩИМ и только... По всем остальным вопросам к перво источнику...

Понятно.. По-принципу "вроде должен работать" и ладно :)

Не буду флудить, посмотрим, что скажет тестер, будут проблемы - исправим :)

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

Posted: 2007-11-14 22:54:04
by Grin
проблема как минимум будет с обнаружением пушки на земле

Posted: 2007-11-14 22:59:13
by Destruction
Я бы предложил вот так:

Code: Select all

sub BuM() 

   var c, aim, pushka, counter

   uo.print('Укажите сундук с ядрами')
   uo.addobject('Sunduk')
   while uo.targeting()
     wait(100)
   wend
   uo.useobject('Sunduk')
   checklag()
   uo.set('finddistance', '3')
   uo.findtype('0x0e8d', '-1', 'ground')
   if uo.findcount() then
     pushka = uo.getserial('finditem')
   else
     uo.print('Рядом нет пушки, вырубаю скрипт')
     return
   endif
   uo.ignore('self')
   uo.set('finddistance', '15')
   DIM Chars[2]
   Chars[0] = '0x0190' #тип игрока мужского пола#
   Chars[1] = '0x0191' #тип игрока женского пола#
   while not uo.dead()
     for c = 0 to 1   
       uo.findtype(Chars[c], '-1', 'ground')
       if uo.findcount() then
         aim = uo.getserial('finditem')
         uo.findtype('0x0e73', '-1', 'Sunduk')
         if not uo.fincount() then
           uo.print('Нет ядер в сундуке, вырубаю скрипт')
           return
         else
           uo.waittargetobject( pushka, aim )
           uo.useobject('finditem')
           counter = 0
           while uo.waiting() && counter < 30
              wait( 100 )
              counter = counter + 1
           wend
           if uo.Waiting() then
               uo.canceltarget()
           end if
         endif
       else
         wait(100)
       endif
     next
   wend

end sub

sub checklag()
   uo.click('backpack')
   while not uo.injournal('backpack')
     wait(100)
   wend
   uo.deletejournal('backpack')
end sub

Posted: 2007-11-14 23:00:42
by Grin
предложение поддерживается:)