Тинк ожерелий с раскладыванием по мешкам

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
discon
Posts: 34
Joined: 2006-08-09 20:33:57

Тинк ожерелий с раскладыванием по мешкам

Post by discon »

Добрые люди, помогите плиз апгрейдить скрипт.... Вот есть скрипт, чар делал ожерелья и складывает их в сундук, а так как они не складываются в одну кучу, надо чтобы он, наделав 250 штук, перекладывал их в пустой мешок (который тоже лежит в сундуке ну или как придумаете), и когда мешок тоже будет полон, что чар складывал ожерелья в новый пустой мешок. Вот основной скрипт

Code: Select all

 sub tinker() 
   VAR Sunduk = '0x4001F654'       ; Сериал сундука
   VAR Ingi = '0x1BEF'          ; Тип ингов
   VAR Instrum = '0x1EBC'          ; Тип инструмента тинкера
   VAR Bottle = '0x1085'          ; Тип бутылки
   VAR Kolvo = 200          ; Брать ингов
   VAR k = 0
   While TRUE
      UO.FindType( Ingi, -1, Sunduk )   ; Ищем инги в сундуке
      If UO.FindCount() == 0 Then
         UO.Print("Iron Ingots not found, script terminated")
         return
      Endif
      UO.Grab( Str( Kolvo ), 'finditem' )
      wait( 2000 )
      While UO.Count( Ingi ) > 2   ; Пока в паке есть инги
         UO.Print('Ostalos ' + Str( UO.Count( Ingi ) ) + ' ingots' )
         UO.DeleteJournal()
         UO.CancelMenu()
         UO.WaitMenu ('Tinkering', 'Jewelry', 'Jewelry', 'necklace' )
         UO.UseType( Instrum )
         k = 0
         while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 )
            k = k + 1
            wait(500)
         wend
         if UO.Count( Bottle ) > 0 then
            UO.FindType( Bottle, -1, -1 )
            UO.MoveItem( 'finditem', 0, Sunduk )
            wait( 1000 )
            UO.Print( 'Bottle moved' )
         end if
      Wend
   Wend
end sub
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Ищи, здесь есть рабочий и нормальный скрипт на изготовление никласов который тебе и нужен. Поиск в приписке.
discon
Posts: 34
Joined: 2006-08-09 20:33:57

Post by discon »

You Must Die wrote:Ищи, здесь есть рабочий и нормальный скрипт на изготовление никласов который тебе и нужен. Поиск в приписке.


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

Code: Select all

 VAR Cont1 = '0x4023A5A4' ;ресурсы, пустые мешки и фишстейки 
VAR Cont2 = '0x40255B42' ;сундук де будут лежать полные мешки
VAR Count = 250 ;какое количество ресусров бёрем
var Tools = '0x1EBC' ;инструмент, при котором появляется
var Creat = '0x1086' ;тип созданной вещи(удочка, даггер и т.д.)
VAR Food = '0x097B' ;тип еды, кторую будем кушать
var Bag = '0x09B0' ;тип мешочков
var Source = '0x1BE9'
var BagSer, i=0, fizl=0, control=5, time, z


sub carpFishingPole()
Tools = '0x1033'
Creat = '0x0DBF'
Source = '0x1BDD'
UO.CancelMenu()
UO.AutoMenu('Carpentry','Weapons ')
UO.AutoMenu('Weapons ','fishing ')
if UO.Count(Tools) > 0 then
   UO.FindType(Tools,'-1','backpack')
   UO.AddObject('objTools','finditem')
   main()
end if
UO.CancelMenu()
end sub

sub tinkIron()
Tools = '0x1EBC'
Creat = '0x1085'
Source = '0x1BEF'
UO.CancelMenu()
UO.AutoMenu('Tinkering','Jewelry')
UO.AutoMenu('Jewelry','necklace')
if UO.Count(Tools) > 0 then
   UO.FindType(Tools,'-1','backpack')
   UO.AddObject('objTools','finditem')
   main()
end if
UO.CancelMenu()
end sub

sub tinkGold()
Tools = '0x1EBC'
Creat = '0x1086'
Source = '0x1BE9'
UO.CancelMenu()
UO.AutoMenu('Tinkering','Jewelry')
UO.AutoMenu('Jewelry','bracelet')
if UO.Count(Tools) > 0 then
   UO.FindType(Tools,'-1','backpack')
   UO.AddObject('objTools','finditem')
end if
main()
UO.CancelMenu()
end sub

sub main()
var CountSource = 1 ;кол-во разных типов сырья, которые мы возьмем из сундука
Open('backpack')
NewBag()
if UO.Count(Source) then
   UO.FindType(Source,'0x0000', 'backpack')
   UO.MoveItem('finditem','-1',Cont1)
   wait(1000)
end if
UO.FindType(Source,'0x0000', Cont1)
UO.Grab(STR(Count),'finditem')
wait(1000)
CheckLag()       
while UO.Count(Source) > 0
   if UO.Count(Source) < 2 then
      UO.FindType(Source,'0x0000', Cont1)
      UO.Grab(STR(Count),'finditem')
      wait(1000)
   endif
   UO.DeleteJournal()
   UO.UseObject('objTools')
   Repeat
      wait(500)
   Until UO.InJournal('You put ') OR UO.InJournal('failed') or UO.InJournal('You fail ')   
   While UO.Count(Creat)>0
      UO.FindType(Creat,'-1',-1)
      UO.MoveItem('finditem','0',BagSer)
      If UO.Count(Creat)>0 then
         FastLootCheck()
      endif
      if UO.InJournal("Too many items") then
         NewBag()
      endif
   Wend     
Wend
UO.CancelMenu()
Detect_Hidden()
end sub

sub Open(Container)
   UO.DeleteJournal()
   UO.UseObject(Container)
   wait(500)
end sub

sub FastLootCheck()
   UO.DeleteJournal()
   wait(450)
   If UO.InJournal("FastLoot") OR UO.InJournal("World save") then
      UO.Click('backpack')
      repeat
         wait(300)
      until UO.InJournal('backpack')
   Endif
end sub

sub NewBag()
   Open(Cont1)
   Open(Cont2)
   ToEat()
   UO.FindType(Bag, -1, Cont1)
   UO.Print('Ok')
   if UO.FindCount() < 1 then
      Detect_Hidden()
   end if
   BagSer=UO.GetSerial('finditem')     
   UO.MoveItem(BagSer, 0, Cont2)
   wait(1000)
end sub

sub ToEat()
   UO.FindType('0x097B', '0x0000',Cont1)
   if UO.FindCount() > 0 then
      UO.MoveItem('finditem','20','backpack')
   else
      return
   end if
   repeat     
      CheckLag()
      uo.UseType('0x097B')
      while not uo.InJournal("can't") and not uo.InJournal('full') and not uo.InJournal('stuffed') and not uo.InJournal('hungry') and not uo.InJournal('satiated') and not UO.Dead()
         wait(100)
      wend
   until uo.InJournal('too full') or UO.Dead() or uo.InJournal("can't")
   UO.FindType('0x097B', '0x0000','backpack')
   if UO.FindCount() > 0 then
      UO.MoveItem('finditem','20','Cont1')     
   end if
end sub

sub Detect_Hidden()
 UO.CancelMenu()
 repeat
  CheckLag()
  uo.UseSkill('Detect Hidden') 
  repeat
   wait(50)
  until UO.InJournal("You can see nothing hidden there.") or UO.InJournal("You find")
 until uo.Dead()
end sub

sub CheckLag()
   UO.DeleteJournal()
   UO.Click('backpack')
   repeat
      wait(50)
   until UO.InJournal('backpack')
end sub
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Он из main запускает функцию:

Code: Select all

sub NewBag() 
   Open(Cont1)
   Open(Cont2)
   ToEat()
   UO.FindType(Bag, -1, Cont1)
   UO.Print('Ok')
   if UO.FindCount() < 1 then
      Detect_Hidden()
   end if
   BagSer=UO.GetSerial('finditem')     
   UO.MoveItem(BagSer, 0, Cont2)
   wait(1000)
end sub


которая если не находит сумок, как я понимаю -начинает качать детект хайдинг. Чтобы не стоять без дела.
discon
Posts: 34
Joined: 2006-08-09 20:33:57

Post by discon »

ага сенкс! Разобрался
obiwan
Posts: 15
Joined: 2005-05-04 12:52:20

Post by obiwan »

Code: Select all

##################################################################### 
; Tinker. v.1.00b (c) Edred , + часть скрипта на
; БС за авторством Edred-а
; Чар берет из сундука 255 инготов из того-же сундука берет мешок,
; крафтит из них неклейсы, складывает в мешок и убирает во второй
; сундук.
;
; Если инги закончились - выход.
;
;
sub tinker2()
   VAR Sunduk1 = '0x400608C6'       ; Сериал сундука с пустыми мешками
   VAR Sunduk2 = '0x400608A2'       ; Сериал пустого сундука
   VAR Ingi = '0x1BEF'          ; Тип ингов
   VAR Instrum = '0x1EBC'          ; Тип инструмента тинкера
   VAR Bottle = '0x1085'          ; Тип неклейса
   VAR Kolvo = 255          ; Брать ингов
   VAR k = 0
   VAR Meshok = '0x0E76'          ; Тип мешка
   VAR MeshSer, j

   While TRUE
      UO.FindType( Ingi, -1, Sunduk1 )   ; Ищем инги в сундуке 1
      If UO.FindCount() == 0 Then
         UO.Print("Iron Ingots not found, script terminated")
         return

      Endif
      UO.Grab( Str( Kolvo ), 'finditem' )
      wait( 2000 )
     
   UO.FindType( Meshok, -1, Sunduk1 )       ; Ищем мешок в сундуке 1
      MeshSer = UO.GetSerial( 'finditem' )
      UO.Grab( '1', 'finditem' )          ; Кладем его в бэкпак
      wait( 2000 )
      UO.MoveItem( MeshSer, 0, Sunduk2 )
      wait( 2000 )

      While UO.Count( Ingi ) > 0
         ; Пока в паке есть инги
         UO.Print('Ostalos ' + Str( UO.Count( Ingi ) ) + ' ingots' )
         UO.DeleteJournal()
         UO.CancelMenu()
         UO.WaitMenu ('Tinkering', 'Jewelry', 'Jewelry', 'necklace' )
         UO.UseType( Instrum )
         k = 0
         while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 )
            k = k + 1
            wait(500)
         wend
         if UO.Count( Bottle ) > 0 then
            UO.FindType( Bottle, -1, 'backpack' )
            UO.MoveItem( 'finditem', 0, MeshSer )
            wait( 1000 )
            UO.Print( 'Bottle moved' )
         end if
      Wend
   Wend
end sub


желательно перед началом скрипта открыть оба сундука, тк может не находить инги.
Post Reply