Bowcraft: Делаем стрелы из шафтов и перьев...

Ask for scripts here

Moderators: Murderator+, Murderator

Post Reply
Nima4akin
Posts: 3
Joined: 2009-08-07 17:32:20

Bowcraft: Делаем стрелы из шафтов и перьев...

Post by Nima4akin »

Вот столкнулся с проблемой: есть куча шафтов и перьев, а хотелось бы сделать из них стрелы... Пробовал пользоваться скриптом:

Code: Select all

##################################################################### 
; Bowcraft2. v.1.04b (c) Edred
;
; Чар берет из сундука шафты и перья, крафтит из них стрелы и
; складывает эти стрелы в этот же сундук.
; Если шафты или перья закончились - выход.
;
sub bowcraft2()
   VAR Sunduk = '0x4044FB80'       ; Сериал сундука
   VAR Shafts = '0x1BD4'          ; Тип шафтов
   VAR Feather = '0x1BD1'         ; Тип перьев
   VAR Arrows = '0x0F3F'         ; Тип стрел
   VAR Kolvo = 1               ; Брать шафтов для одного крафта
   VAR k = 0, j
      UO.SetGlobal( 'TimeProcess', str( UO.Timer() ) )
   UO.CancelMenu()
   UO.AutoMenu ('Select arrow type', 'arrow' )
   While TRUE
      EatChar( Sunduk, 2, 1, 120 )
      If UO.Count( Shafts ) == 0 Then
         UO.FindType( Shafts, -1, Sunduk )
         If UO.FindCount() == 0 Then
            UO.Print("Shafts not found, script terminated")
            return
         Endif
         UO.Grab( Str( Kolvo ), 'finditem' )
         wait(500)
         while UO.Count( Shafts ) < Kolvo
            wait(100)
         wend
         CheckLag()
      Endif
      If UO.Count( Feather ) == 0 Then       
         UO.FindType( Feather, -1, Sunduk )
         If UO.FindCount() == 0 Then
            UO.Print("Feather not found, script terminated")
            return
         Endif
         UO.Grab( Str( Kolvo ), 'finditem' )
         wait(500)
         while UO.Count( Feather ) < Kolvo
            wait(100)
         wend
         CheckLag()
      Endif
      UO.DeleteJournal()
      UO.UseType( Shafts )
      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( Arrows ) > 0 then
         UO.FindType( Arrows, -1, -1 )
         UO.MoveItem( 'finditem', 0, Sunduk )
         wait(500)
         while UO.Count( Arrows ) > 0
            wait(100)
         wend
         UO.Print( 'Arrows moved' )
      Endif
   Wend
end sub

Естественно все значения (ИД сундука, тип шафтов и проч) подправил, но вот проблема, выдает ошибку:
Line 100 function not found - EATCHAR
Помоги нубу =) Скажите, как дописать этот скрипт или дайте новый (поиск юзал!). Прошу учесть, что в скриптостроении я полный 0, поэтому, если поправите это скрипт, то дайте пожалуйста код и фрагмент, куда его вписывать. Заранее спс.
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Удали эту строку

Code: Select all

      EatChar( Sunduk, 2, 1, 120 )


либо найди на форуме одноимённый скрипт и вставь в том же файле ниже.
Nima4akin
Posts: 3
Joined: 2009-08-07 17:32:20

Post by Nima4akin »

Удалил. Тогда делает от 0 до 2 стрел и пишет одну из двух ошибок:
Line 124 function not found - CHECKLAG
Line 111 function not found - CHECKLAG
Nima4akin
Posts: 3
Joined: 2009-08-07 17:32:20

Post by Nima4akin »

Не поверите! Просто удалил строки 111 и 124 и вуаля... работает!
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Post by Mirage »

Трудно поверить :lol:

PS без чеклагов может глючить. Не все лучше удалять :roll:
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Post by Nmy »

Code: Select all

VAR Chest='0x4033008D' ; ИД сундука где все
VAR TFeather='0x1BD1'
VAR TArrow='0x0F3F'
VAR TShaft='0x1BD4' ; Тип шафтов
sub Bowcrafting_arrows()
   uo.useobject(Chest)
   wait(200)
   while 1
     uo.findtype(TShaft,-1,Chest)
     if uo.findcount() then
       uo.moveitem('finditem',1,'backpack')
     else
       return
    endif
     wait(300)
     uo.findtype(TFeather,-1,Chest)
     if uo.findcount() then
       uo.moveitem('finditem',1,'backpack')
     else
       return
     endif
     wait(300)
     uo.usetype(TFeather)
     uo.waitmenu('Select arrow type','arrow')
     wait(3100)
     uo.findtype(TArrow,-1,'backpack')
     if uo.getquantity('finditem')>25 then
       uo.moveitem('finditem',0,Chest)
       wait(1000)
     endif
   wend
end sub
SilverOZ
Posts: 58
Joined: 2006-05-23 08:24:24
Location: Moldova

Re: Bowcraft: Делаем стрелы из шафтов и перьев...

Post by SilverOZ »

Можна узнати пачиму всиоранво он делаит все стрелы сразу, мне нада штоб он делал по аднои
Post Reply