Page 2 of 2

Posted: 2005-01-18 20:46:13
by maximka4
Edred wrote:Сорри. Не подумал о первом круге. До того как серийник первого мешка считан, переменная MeshSer не определена. Поставь в самом начале перед первым циклом):

MeshSer = '0'
вроде все работаетмешки он перелаживает мешки, но когда остается именно 4 лога ,открывается конечное меню и он не делает дальше удочки.:( если делаешь вручную, не останавливая скрипта, то когда заканчиваются 4 лога то он ЗАМЕЧЯТЕЛЬНО БЕРЕТ ЛОГИ НОВЫЙ МЕШОК и продалжает делать до 4 логов.вот такие пироги.

Posted: 2005-01-18 23:13:34
by Edred
Пробуй так:

Code: Select all

sub main() 
   VAR Sunduk1 = '0x4033F60E'       ;  сундук с пустыми мешками
   VAR Sunduk2 = '0x4030408A'       ;  пустой сундук
   VAR Meshok = '0x0E76'          ;  тип мешка
   VAR Logi = '0x1BDD'          ; тип логов
   VAR Rubanok = '0x1035'          ;  рубанок
   VAR Udochka = '0x0DBF'          ; удочка
   VAR Kolvo = 200          ; 
   VAR MeshSer, j, k
   UO.CancelMenu()
   UO.AutoMenu('Carpentry', 'Weapons & Tools')
   UO.AutoMenu('Weapons & Tools', 'fishing')
   While TRUE
      UO.FindType( Logi,'-1', '1'  )       ; ищем логи на полу
      UO.Grab( Str( Kolvo ), 'finditem' )    ; кладем логи в пак
      wait( 2000 )
      If UO.FindCount() == 0 Then
         UO.Print("Logs not found, script terminated")
         return
      Endif
      UO.FindType( Meshok,'-1', Sunduk1 )       ; ищем шешок в сундуке
      If UO.FindCount() == 0 Then
         UO.Print("Bags not found, script terminated")
         return
      Endif
      MeshSer = UO.GetSerial( 'finditem' )
      UO.Grab( '1', 'finditem' )          ; кладем его в пак
      wait( 2000 )
      UO.MoveItem( MeshSer,'0' , Sunduk2 )
      wait( 2000 )
      While UO.Count( Logi ) > 4
         ; пока в паке есть логи
         UO.Print('Ostalos ' + Str( UO.Count( Logi ) ) + ' logov' )
         UO.DeleteJournal()
         UO.UseType( Rubanok )
         k = 0
         while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 )
            k = k + 1
            wait(500)
         wend
         ; Wait( 14000 )
         ; скрафтили удочку
         ; перекладываем в мешок
         if UO.Count( Udochka ) > 0 then
            UO.FindType( Udochka, '-1', 'backpack' )
            UO.MoveItem( 'finditem', '0', MeshSer )
            wait( 2000 )
            UO.Print( 'Udochka perelozhena' )
         end if
      Wend
   Wend
end sub

Posted: 2005-01-18 23:22:39
by Edred
И вопрос: сколько логов у вас на шарде требуется для крафта одной удочки?

Posted: 2005-01-19 08:16:22
by maximka4
Edred wrote:И вопрос: сколько логов у вас на шарде требуется для крафта одной удочки?
1, а у вас 2? страннно даже если 2 то , раньше скрипт работал до последней удочки. прям полтергейст какойто.