Yoko

All sides of Injection
It is currently 2024-05-11 17:26:53

All times are UTC+02:00




Post new topic  Reply to topic  [ 4 posts ] 
Author Message
PostPosted: 2011-05-11 11:15:58 
Offline

Joined: 2008-05-13 17:04:26
Posts: 66
Народ помогите пожалуйста,поделитесь скриптиком на Bowcraft,нужен простой без наворотов чтобы тупо брал из сундука 7 логов крафтил шафты и обратно в сундук готовые шафты бросал.


Top
   
PostPosted: 2011-05-11 11:45:43 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Прямо как заказывал боукрафт для шарда Forest Wars.
Как вариант вот.
Если будет чтото не так пиши, подредактируем.

PS поиск - шафты - выдал более чем достаточно примеров. ;)

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2011-05-11 14:53:19 
Offline

Joined: 2008-05-13 17:04:26
Posts: 66
Вот этот скрипт логи из мешка берет даже шафты у меня в паке лежали он их в мешок скинул,но вот после того как логи взял встает пишет I can use столько то логов брать их постоянно по 7 штук берет а крафтить не крафтит.
Code:
#####################################################################
; Bowcraft. v.1.03b (c) Edred
;
; ??? ????? ?? ??????? ????, ??????? ?? ??? ?????
; ? ?????????? ??? ????? ? ???? ?? ??????.
; ???? ???? ??????????? - ?????.
; ???? ?????? (??? ??? ?? ??? ???????????) ???????? -
; ?????? ?????? ??????????? ?? ???? ? ??????? ? ???????
; ? ????.
;
; 1.03b: ????????, ???? Kolvo = 1, ?? ????? ??? ? ?????? ??????? ???
;        ????.
;
sub bowcraft()
   VAR Sunduk = '0x400E4262'       ; ?????? ???????
   VAR Logi = '0x1BDD'          ; ??? ?????
   VAR Shafts = '0x1BD4'          ; ??? ??????
   VAR Kolvo = 7               ; ????? ????? ??? ?????? ??????
   VAR k = 0, j, dagger
   dagger = UO.ObjAtLayer( 'Rhand' )
   UO.SetGlobal( 'instrtype', UO.GetGraphic( dagger ) )
   While TRUE
      UO.FindType( Logi, -1, Sunduk )   ; ???? ???? ? ???????
      If UO.FindCount() == 0 Then
         UO.Print("Logs not found, script terminated")
         return
      else
         j = UO.GetQuantity( 'finditem' )
         If j > Kolvo Then
            UO.Print( 'I can use ' + str( j ) + ' logs' )
         else
            UO.Print( "I can't use " + str( j ) + " logs" )
            return
         Endif
      Endif
      If Kolvo == 1 Then
         ; v. 1.03
         UO.Grab( '3', 'finditem' )
         wait(500)
         UO.FindType( Logi )
         UO.MoveItem( 'finditem', '2', Sunduk )
         wait(500)
      Else
         UO.Grab( Str( Kolvo ), 'finditem' )
         wait(500)
      Endif
      ; ? ??? - ???????????? ????? ?? ???
      while UO.Count( Logi ) < Kolvo
         wait(100)
      wend
      ; ???????? ?? ??, ??? ? ????? ??-???????? ??????
      If CheckInstr() == 0 Then
         UO.Print("You don't have daggers!" )
         return
      Endif
      UO.DeleteJournal()
      UO.CancelMenu()
      UO.WaitMenu ('What do you want to carve','Shafts' )
      UO.WaitTargetType( Logi )
      UO.UseObject( dagger )
      k = 0
      while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 50 )
         k = k + 1
         wait(300)
      wend
      If UO.Count( Shafts ) > 0 then
         UO.FindType( Shafts, -1, -1 )
         UO.MoveItem( 'finditem', 0, Sunduk )
         wait(500)
         while UO.Count( Shafts ) > 0
            wait(100)
         wend
         UO.Print( 'Shafts moved' )
      Endif
   Wend
end sub

Sub CheckInstr()
   ; ????????, ???? ?? ? ?????? ???? ?????????? ???? ??
   ; ????, ??? ? ? ?????????? ?????????? instrtype
   ; ???? ??? - ?????? ? ??????? ????? ?????????? ?
   ; ??????? ? ?????? ????.
   VAR typ = UO.GetGlobal( 'instrtype' )
   VAR cur = UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) )
   If typ == cur Then
      return 1
   Endif
   UO.FindType( typ )
   If UO.FindCount() == 0 Then
      return 0
   Endif
   UO.Equip( 'RHand' , 'finditem' )
   wait(1000)
   return 1
endsub


Top
   
PostPosted: 2011-05-11 16:05:10 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Пробуй вот так. Предварительно перед запуском открой сундук с логами и кинжалами (штук 10 на всякий положи).
Code:
   VAR LastTimer, itemm, timemove
   VAR Container   = '0x4042B1A1'   ; Сериал сундука
   VAR log      = '0x1BDD'   ; Тип логов
   VAR Shafts   = '0x1BD4'   ; Тип шафтов
   VAR Instrum   = '0x0F51'    ; Тип кинжалов dagger
   var item    = Shafts
   var msg    ='You put|положили|fail|не удалось|You broke|сломали'
   var menu   = "waitmenu 'What do you want to carve' 'shaft'"
   var printcolour = '1069'
sub bowcraft()
   UO.CancelMenu()
   WHILE NOT UO.Dead()
      GET(log, Container, 1, 7)
      UO.DeleteJournal()
      LastTimer=UO.Timer()
      Repeat
         UO.DeleteJournal()
         LastTimer=UO.Timer()
         UO.exec( menu )
         UO.Waittargettype ( log )
         UO.Usetype( Instrum )
         repeat
            wait( 100 )
         until UO.InJournal( msg ) or UO.Timer()>LastTimer+150
      Until UO.Count( item ) > 0
      checklag()
      PUT(item, Container)
      UO.FindType( item, -1, Container)
      uo.charprint(printcolour,'Сделано: '+Str(UO.GetQuantity('finditem'))) ; если будет ошибка - удалить строку!
   WEND
end sub
Sub GET(item, cont, min, max) ; предмет, откуда, минимум, сколько брать
   If UO.Count( item ) < min Then
      UO.FindType( item, '-1', cont )
      if UO.FindCount() > 0 Then
         uo.charprint(printcolour,'Сырья в сундуке: '+Str(UO.GetQuantity('finditem')) )  ; если будет ошибка - удалить строку!
         itemM=UO.GetSerial('finditem')
         timemove=UO.Timer()
         while UO.ContainerOf(itemM)==cont && timemove+20>UO.Timer()
            uo.moveitem('finditem', max, 'backpack')
            wait(300)
         wend
      else
         uo.charprint(printcolour, 'Полностью кончилось сырье' ) ; если будет ошибка - удалить строку!
         UO.CancelMenu()
         MyTerminate()
      endif
   Endif
end sub
Sub PUT(item, cont)
   while UO.Count( item ) > 0
      UO.FindType( item, -1, -1 )
      itemM=UO.GetSerial('finditem')
      timemove=UO.Timer()
      UO.MoveItem( 'finditem', 0, cont )
      while UO.ContainerOf(itemM)=='my' && timemove+20>UO.Timer()
         wait(300)
      wend
   wend
end sub
Sub DeleteJournal(msg)
   While UO.InJournal(msg)
      UO.SetJournalLine(UO.InJournal(msg) - 1,'')
   wend
endsub
Sub MyTerminate()
   UO.Set('quiet','1')
   UO.CancelMenu()
   UO.IgnoreReset()
   UO.Set('quiet','0')
   UO.Exec('terminate all')
end sub
Sub checklag()
   DeleteJournal("ackpack")
   UO.Click("backpack")
   repeat
      wait(100)
   until UO.InJournal("ackpack")
end sub


Подредактировал. Теперь точно работает.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 4 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 5 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited