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

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