Page 1 of 1

Проблема....скрипт встает!?

Posted: 2005-05-09 23:55:46
by Qualis Eram
Привет

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

Когда я делаю рубашки на нее надо 8 ткани........но когда в сумке остается меньше 8 Ткани макрос встает.....т.е он не берет Ткань с пола.....и все пытается сделать рубашку....но не чего не выходит и вылетает Gump на то что чар может делать из оставшейся ткани в паке: Пример-было 50 Ткани он делал рубашки в сумке осталось 4 Ткани и вылетает Гамп другово меню....а точнее бандан....

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

Code: Select all

sub Tailoring() 
Var Box = '0x4001F699'		; ID сундука с пустыми мешками 
Var Barrel = '0x40024BF4'	; ID пустого сундука, куда будет складываться изделия
Var Bag = '0x0E76'          ; Тип мешка
Var Cloth = '0x175D'        ; Тип ткани
Var Kit = '0x0F9D'          ; Тип инструмента
Var Crafts = '0x1517'       ; Тип предмета который будем делать
Var Kolvo = 50       		; Сколько брать ресурса
Var BagSer, j, ClothSer, k 
While TRUE 
 	 Uo.FindType( Cloth, -1, 1 )    ; Ищем ресурс на полу
 	 If Uo.FindCount() == 0 Then 
     Uo.Print('Ткань не найдена!, скрипт отключается!') 
  return 
Endif 
     Uo.Grab(Str(Kolvo), 'finditem')    ; Кладем ресурс в бакпак
  wait(2000) 
     Uo.FindType(Bag, -1, Box)    ; Ищем мешок в сундуке
     BagSer = Uo.GetSerial('finditem') 
     Uo.Grab('1', 'finditem')       ; Кладем его в бекпак
  wait(2000) 
     Uo.MoveItem(BagSer, 0, Barrel) 
  wait(2000) 
     While Uo.Count(Cloth) > 0
     Uo.Print('Осталось: ' + Str(Uo.Count( Cloth ) ) + ' Ткани' ) 
     Uo.FindType(Cloth, -1, 'backpack') 
     ClothSer = Uo.GetSerial('finditem') 
     Uo.CancelMenu() 
     Uo.DeleteJournal() 
     Uo.WaitMenu ('Cloth','Shirts','Shirts','shirt') 
     Uo.WaitTargetObject(ClothSer) 
     Uo.UseType(Kit) 
     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(Crafts) > 0 then 
     Uo.FindType(Crafts, -1, 'backpack') 
     Uo.MoveItem('finditem', 0, BagSer) 
  wait(2000) 
     Uo.Print('Изделие переложено') 
end if 
Wend 
end sub

Posted: 2005-05-10 07:48:53
by Beyonder
Замени:

Code: Select all

While Uo.Count(Cloth) > 0
На:

Code: Select all

While Uo.Count(Cloth) > 8