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

Ask for help

Moderators: Murderator+, Murderator

Post Reply
Boris
Posts: 24
Joined: 2005-06-18 15:55:25

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

Post 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


он почему не открывает сундук
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

Возможно айди сундука меняется, после его взлома?
Boris
Posts: 24
Joined: 2005-06-18 15:55:25

Post by Boris »

flake wrote:Возможно айди сундука меняется, после его взлома?

он даже не начинает ломать сундук(
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post 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)
Boris
Posts: 24
Joined: 2005-06-18 15:55:25

Post by Boris »

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

Code: Select all

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

с 1 понял ошибку
а вот со вторым это выходит сначала надо задать куда будет попадть ловушка а токо потом от чего эта ловушка появится ?
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post 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
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

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

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

Для большей понятности рекомендую попробывать забиндить стрелку, кликнуть на себя и сразу запустить - именно так будет срабатывать и скрипт.
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Boris
Posts: 24
Joined: 2005-06-18 15:55:25

Post 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) то он пытается дальше использовать отмычки. А надо чтобы просто останавливал скрипт
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Интересный способ - обсуждать один и тот же скрипт одновременно на двух форумах... А что ты будешь делать если тебе на разных посоветуют разное? :lol: В общем, на Цитовском я тебе уже объяснил что к чему...
Post Reply