Page 1 of 1

В чем ошибка скрипта ?

Posted: 2005-06-18 15:56:56
by Boris

Code: Select all

sub Lootopen() 
   DIM N[5]
   N[0]  = '0x0F87'  ;glazki 
   N[1]  = '0x0F78'  ;batva 
   N[2]  = '0x1088'  ;neklear
   N[3]  = '0x0EED'  ;money
   N[4]  = '0x0DF2'  ;ident
    VAR i
    var otmi4ki = '0x14FB'
    var ms1 = 'Your lockpick breaks!'
    var ms2 = 'Your fail to open the lock!'
    var ms3 = 'You opened the lock!'
     uo.exec('addobject sunduk')
        while uo.targeting()
          wait(100)
        wend
          repeat
            UO.useobject('otmi4ki')
            wait(200)
       uo.waittargetground('sunduk')       ;пытаться взломать сундук
       wait(10000)
              if ( UO.InJournal(ms1) or UO.InJournal(ms2) ) then
                wait(2000) 
              endif   
          until UO.InJournal(ms3)
                UO.useobject('sunduk')
                wait( 1000 )
                  For i = 0 To 4
                     UO.FindType( N[i], '-1', 'sunduk' )
                        if uo.findcount() > 0 then
                           UO.MoveItem( 'finditem' )
                           wait( 100 )
                        endif
                 Next
     UO.Print( '/\yT 3aKoH4eH :-)' )
endsub


он почему не открывает сундук

Posted: 2005-06-18 17:13:39
by flake
Возможно айди сундука меняется, после его взлома?

Posted: 2005-06-18 17:55:16
by Boris
flake wrote:Возможно айди сундука меняется, после его взлома?

он даже не начинает ломать сундук(

Posted: 2005-06-18 18:14:21
by flake

Code: Select all

repeat 
            UO.useobject('otmi4ki')
            wait(200)
       uo.waittargetground('sunduk')       ;пытаться взломать сундук
       wait(10000)
              if ( UO.InJournal(ms1) or UO.InJournal(ms2) ) then
                wait(2000) 
              endif   
until UO.InJournal(ms3)


Так, две ошибки:

1. В переменной, ты указываешь тип otmi4ki. А тут используешь обьект otmi4ki.
Соответственно, используй

Code: Select all

UO.UseType( otmi4ki ) ; именно так, без кавычек


2. Ловушка для прицела должна идти перед использованием обьекта/типа, тобишь:

Code: Select all

 uo.waittargetground('sunduk')       ;пытаться взломать сундук 
       wait(200)
       UO.UseType( otmi4ki )
       wait(10000)

Posted: 2005-06-18 21:14:34
by Boris
flake wrote:2. Ловушка для прицела должна идти перед использованием обьекта/типа, тобишь:

Code: Select all

 uo.waittargetground('sunduk')       ;пытаться взломать сундук 
       wait(200)
       UO.UseType( otmi4ki )
       wait(10000)

с 1 понял ошибку
а вот со вторым это выходит сначала надо задать куда будет попадть ловушка а токо потом от чего эта ловушка появится ?

Posted: 2005-06-18 21:35:52
by flake
Да, ты верно понял.
Короче говоря, вот:


Code: Select all

sub Lootopen() 
   DIM N[5]
   N[0]  = '0x0F87'  ;glazki 
   N[1]  = '0x0F78'  ;batva 
   N[2]  = '0x1088'  ;neklear
   N[3]  = '0x0EED'  ;money
   N[4]  = '0x0DF2'  ;ident
    VAR i
    var otmi4ki = '0x14FB'
    var ms1 = 'Your lockpick breaks!'
    var ms2 = 'Your fail to open the lock!'
    var ms3 = 'You opened the lock!'
     uo.exec('addobject sunduk')
        while uo.targeting()
          wait(100)
        wend
          repeat
            uo.waittargetground( 'sunduk' )    ;пытаться взломать сундук 
            Wait(200)
            UO.UseType( otmi4ki )       
       wait(10000)
              if ( UO.InJournal(ms1) or UO.InJournal(ms2) ) then
                wait(2000) 
              endif   
          until UO.InJournal(ms3)
                UO.useobject('sunduk')
                wait( 1000 )
                  For i = 0 To 4
                     UO.FindType( N[i], '-1', 'sunduk' )
                        if uo.findcount() > 0 then
                           UO.MoveItem( 'finditem' )
                           wait( 100 )
                        endif
                 Next
     UO.Print( '/\yT 3aKoH4eH :-)' )
endsub

Posted: 2005-06-19 08:52:25
by Destruction
Boris wrote:а вот со вторым это выходит сначала надо задать куда будет попадть ловушка а токо потом от чего эта ловушка появится ?

wait* устанавливает не таргеты а ловушки.

Для большей понятности рекомендую попробывать забиндить стрелку, кликнуть на себя и сразу запустить - именно так будет срабатывать и скрипт.

Posted: 2005-06-19 18:55:33
by Boris
вообщем вот сделал что мог

Code: Select all

sub Lootopen() 
   DIM N[19]
   N[0]  = '0x0F87'  ;glazki 
   N[1]  = '0x0F78'  ;batva 
   N[2]  = '0x1088'  ;neklear
   N[3]  = '0x0EED'  ;money
   N[4]  = '0x0F63'  ;magic spear
   N[5]  = '0x0E87'  ;magic fork 
   N[6]  = '0x0F4E'  ;magic bardiche
   N[6]  = '0x13FE'  ;magic sword 
   N[7]  = '0x1402'  ;magic wotik
   N[8]  = '0x0F4B'  ;magic axe
   N[9]  = '0x0F49'  ;magic axe topor
   N[10]  = '0x143C'  ;magic hammerpick
   N[11]  = '0x143A'  ;magic maul
   N[12]  = '0x0F47'  ;magic hat4et
   N[13]  = '0x13B9'  ;magic svord(me4)
   N[14]  = '0x1401'  ;magic krys
   N[15]  = '0x0F5C'  ;magic mace
   N[16]  = '0x1404'  ;magic vilka
   N[17]  = '0x143E'  ;magic haleb
   N[18]  = '0x13B5'  ;magic skrimitar
    VAR i
    var otmi4ki = '0x14FB'
    var ms1 = 'Your lockpick breaks!'
    var ms2 = 'Your fail to open the lock!'
    var ms3 = 'You opened the lock!'
    var ms4 = 'No item found. Next  target request will be canceled'
     uo.exec('addobject sunduk')
        while uo.targeting()
          wait(100)
        wend
          repeat
            uo.waittargetground('sunduk')       ;пытаться взломать сундук
            wait(100)
            UO.UseType( otmi4ki )
               wait(10000)
              if ( UO.InJournal(ms1) or UO.InJournal(ms2) ) then
                wait(2000) 
              endif   
          until UO.InJournal(ms3)
                UO.useobject('sunduk')
                wait( 1000 )
                  For i = 0 To 18
                     UO.FindType( N[i], '-1', 'sunduk' )
                        if uo.findcount() > 0 then
                           UO.MoveItem( 'finditem' )
                           wait( 100 )
                        endif
                 Next
     UO.Print( '/\yT 3aKoH4eH :-)' )
endsub


Щас проблема в том что если отменяешь таргет в начале (появлятся надпись ms4) то он пытается дальше использовать отмычки. А надо чтобы просто останавливал скрипт

Posted: 2005-06-20 21:22:30
by Edred
Интересный способ - обсуждать один и тот же скрипт одновременно на двух форумах... А что ты будешь делать если тебе на разных посоветуют разное? :lol: В общем, на Цитовском я тебе уже объяснил что к чему...