Оском - скрипт на Tailoring с розкладкой роб по мешках

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Levo
Posts: 9
Joined: 2011-06-23 18:18:24

Оском - скрипт на Tailoring с розкладкой роб по мешках

Post by Levo »

Привет всем. Играю на Оскоме Фри.
Вот собственно нашол такой скрипт но он частенько выкидывает ошибку в инжекте.
Может у кого есть нормальный или етот отладить нормально.
Прошу помочь и поддержать =)

Сам скрипт:

###################################

# Tailoring #
###################################

;|---------------------------|
;| Описание переменных Items |
;|---------------------------|

VAR EQ,RQ1,RQ2,QB
VAR Eat='0x0c77' ; Type Еда (Рыба)
VAR Res1='0x175D' ; Type Ресурс 1 (Ткань)
VAR Res2='0x0FA0' ; Type Ресурс 2 (Нитки)
VAR Kit='0x0F9D' ; Type Инструмента крафта (Sewing Kit)
VAR Items='0x1f01' ; Type Выходного материала
EQ=20 ; Количество ресурса Еда
RQ1=500 ; Количество ресурса Ткань
RQ2=50 ; Количество ресурса Нитки
QB=24 ; Количество сумок в ContainerBag (куда складывать)

;|---------------------------------|
;| Описание переменных контейнеров |
;|---------------------------------|

VAR ContainerRes='0x41515b94' ; Object Контейнер с ресурсами
VAR ContainerBag='0x41234814' ; Object Контейнер с сумками
VAR BagCount='0x0e76' ; Type сумок в контейнере ContainerBag


sub Tailoring()
UO.Set('quiet','1')
UO.Exec('exec Craft')
UO.IgnoreReset()
end sub

Sub OpenBag()
VAR i,BagID
UO.UseObject(ContainerBag)
UO.UseObject(ContainerRes)
UO.IgnoreReset()
Repeat
UO.DeleteJournal()
Wait(1000)
UO.FindType(BagCount,'-1',ContainerBag)
If UO.FindCount('finditem') > 1 Then
i = (UO.FindCount('finditem') +1)
UO.Click('finditem')
If UO.InJournal("a bag") Then
BagID=UO.JournalSerial(UO.InJournal("a bag")-1)
UO.SetJournalLine(UO.InJournal("a bag")-1,"")
UO.FindType(Items,'-1',BagID)
UO.UseObject(BagID)
Wait(2000)
UO.Hide(BagID)
UO.Ignore(BagID,'on')
EndIF
EndIf
i = (i - 1)
Until i == 0
UO.Hide(ContainerBag)
UO.Hide(ContainerRes)
UO.Resend()
Wait(3000)
UO.IgnoreReset()
end sub


Sub Craft()
VAR Last=0,LastTimer
OpenBag()
While NOT UO.Dead()

;|-----------------------------------|
;| Search of resources and Take them |
;|-----------------------------------|

UO.FindType(Eat,'-1','me')
If UO.GetQuantity('finditem') < 1 then
UO.FindType(Eat,'-1',ContainerRes)
If UO.GetQuantity('finditem') > 1 then
ToTake(3)
Else
UO.Exec ('Terminate Craft')
EndIf
Else
ToEat()
EndIf
UO.FindType(Res1,'-1','me')
If UO.GetQuantity('finditem') < 16 then
UO.FindType(Res1,'-1',ContainerRes)
If UO.GetQuantity('finditem') > 1 then
ToTake(1)
Else
UO.Exec ('Terminate Craft')
EndIf
EndIf
UO.FindType(Res2,'-1','me')
If UO.GetQuantity('finditem') < 1 then
UO.FindType(Res2,'-1',ContainerRes)
If UO.GetQuantity('finditem') > 1 then
ToTake(2)
Else
UO.Exec ('Terminate Craft')
EndIf
EndIf

;|-------------|
;| Craft Items |
;|-------------|

UO.DeleteJournal()
UO.WaitTargetType(Res1)
UO.UseType(Kit)
UO.WaitMenu ('Cloth','Shirts','Shirts','plain dress')
### Название КрафтМеню1(Cloth),ПодМеню2(Shirts) -> КрафтМеню2(Shirts),ПодМеню2(Robe)
LastTimer=UO.Timer()
Repeat
wait(100)
Until UO.InJournal("You put") OR UO.InJournal("Tailoring") OR LastTimer+150<UO.Timer()
UnLoadItem()
Wend
end sub

Sub ToTake(i)
VAR G,F
If i == 1 Then
G = RQ1
F = Res1
EndIf
If i == 2 Then
G = RQ2
F = Res2
EndIf
If i == 3 Then
G = EQ
F = Eat
EndIf
UO.FindType(F,'-1',ContainerRes)
if UO.GetQuantity('finditem') > 1 then
UO.Grab(''+str(G)+'','finditem')
UO.DeleteJournal()
Repeat
UO.FindType(F,'-1','me')
Wait(1500)
Until UO.InJournal("That is too") OR UO.GetQuantity('finditem') > 1
endif
end sub

Sub ToEat()
UO.UseType(Eat)
end sub

Sub UnLoadItem()
VAR BagID
VAR i=0
VAR m=0
Repeat
UO.DeleteJournal()
UO.FindType(BagCount,'-1',ContainerBag)
UO.Click('finditem')
m = 0
Repeat
Wait(1000)
Until UO.InJournal("a bag")
If UO.InJournal("a bag") Then
BagID=UO.JournalSerial(UO.InJournal("a bag")-1)
UO.SetJournalLine(UO.InJournal("a bag")-1,"")
UO.FindType('-1','-1',BagID)
If UO.FindCount('finditem') < 220 then
m = UO.FindCount('finditem')
UO.SetReceivingContainer(BagID)
UO.FindType(Items,'-1','me')
UO.Grab('0','finditem')
UO.ConColor('0x0021')
UO.Set('quiet','0')
UO.Print(UO.Print('In BagPack#'+Str(i+1)+' items '+Str(m)+''))
UO.Set('quiet','1')
UO.ConColor('0x0035')
Wait(1000)
UO.UnSetReceivingContainer()
Else
i = i + 1
UO.Ignore(BagID, 'on')
EndIf
EndIf
If i == QB Then
UO.IgnoreReset()
i = 0
EndIf
UO.FindType(Items,'-1','me')
Until UO.FindCount('finditem') < 1
end sub
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Re: Оском - скрипт на Tailoring с розкладкой роб по мешках

Post by Scripts Writer »

Какая ошибка?
Levo
Posts: 9
Joined: 2011-06-23 18:18:24

Re: Оском - скрипт на Tailoring с розкладкой роб по мешках

Post by Levo »

просто пишет что Terminate uo ...

а ошибка чето там in parse ....

Но ошибка вылетает через довольно длительно время от 1 до 5 часов ....

Будет ошибка точно напишу как есть...
Levo
Posts: 9
Joined: 2011-06-23 18:18:24

Re: Оском - скрипт на Tailoring с розкладкой роб по мешках

Post by Levo »

Вот что нашол по даному скрипту.
Но как сделать пока незнаю.

UO.DeleteJournal()
UO.FindType(BagCount,'-1',ContainerBag)
UO.Click('finditem')
m = 0
Repeat
Wait(1000)
Until UO.InJournal("bag")
If UO.InJournal("bag") Then
BagID=UO.JournalSerial(UO.InJournal("bag")-1)

Постарайся избавиться от этого. Чек лаг и гет сериал тебе в помощь.
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Оском - скрипт на Tailoring с розкладкой роб по мешках

Post by ZeroDX »

На вот попробуй скрипт, но прежде настрой

Code: Select all

var Delay = 10, Pause = 1000, ThreadsNeed = 1, ClothNeed = 10, ClothMove = 500, ThreadsMove = 50

Pause - Задержка перемещения вещей на сервере
ThreadsNeed, ClothNeed - Сколько нужно конкретного ресусра для крафта 1-ой робы.
ClothMove, ThreadsMove - Сколько перетаскивать в пак (содрал со скрипта, который ты выложил)

Ну и сам скрипт

Code: Select all

sub Tailoring()
  Dim t_Resources[2]
    t_Resources[0] = '0x175D' ;Тип ткани
    t_Resources[1] = '0x0FA0' ;Тип ниток
  var t_SewingKit = '0x0F9D', t_Robe = '0x1f01', t_Bag = '0x0e76', t_Steaks = '0x0c77'
  var id_Container = '0x41515b94', id_RecContainer = '0x41234814'
  var Delay = 10, Pause = 1000, ThreadsNeed = 1, ClothNeed = 10, ClothMove = 500, ThreadsMove = 50
  var msg = 'ou put|fail', Time, id_Bag, ResMove, i
  UO.UseObject(id_Container)
  UO.UseObject(id_RecContainer)
  While true
    If UO.Count(t_Resources[0]) >= ClothNeed and UO.Count(t_Resources[1]) >= ThreadsNeed then
      If UO.Targeting() then
        UO.CancelTarget()
      Endif
      DelJournal(msg)
      Time = UO.Timer()
      UO.WaitMenu('Cloth', 'Shirts', 'Shirts', 'plain dress')
      UO.WaitTargetType(t_Resources[0])
      UO.UseType(t_SewingKit)
      Repeat
        Wait(100)
      Until UO.InJournal(msg) or Time + Delay * 10 <= UO.Timer()
     else
      While UO.Count(t_Robe)
        UO.FindType(t_Bag, -1, id_RecContainer)
        If UO.FindCount() then
          id_Bag = UO.GetSerial('finditem')
          UO.UseObject(id_Bag)
          Wait(100)
          UO.FindType(-1, -1, id_Bag)
          If UO.FindCount() < 255 then
            UO.FindType(t_Robe, -1, 'backpack')
            If UO.FindCount() then
              CheckLag()
              UO.MoveItem('finditem', -1, id_Bag)
              Wait(Pause)
             else
              UO.Print('Непонятная ошибка 404 :Р')
              Return
            Endif
           else
            UO.Ignore(id_Bag)
          Endif
         else
          UO.Print('Вроде как закончились пустые сумки')
          Return
        Endif
      Wend
      UO.IgnoreReset()
      For i = 0 to 1
        UO.FindType(t_Resources[i], -1, id_Container)
        If UO.FindCount() then
          If i > 0 then
            ResMove = ThreadsMove
           else
            ResMove = ClothMove
          Endif
          CheckLag()
          UO.MoveItem('finditem', ResMove - UO.Count(t_Resources[i]), 'backpack')
          Wait(Pause)
         else
          UO.Print('В ' + id_Container + ' не найден один из ресурсов.')
          Return
        Endif
      Next
    Endif
    Eat(id_Container, t_Steaks, Pause)
  Wend
Endsub

Sub Eat(id, type, pause)
  var msg = 'simply|ou can|full', Time, Delay = 10
  DelJournal(msg)
  Time = UO.Timer()
  Repeat
    If UO.Count(type) then
      UO.UseType(type)
      Wait(100)
     else
      UO.FindType(type, -1, id)
      If UO.FindCount() then
        CheckLag()
        UO.MoveItem('finditem', 20, 'backpack')
        Wait(Pause)
       else
        UO.Print('Еды нету')
        Return
      Endif
    Endif
  Until UO.InJournal(msg) or Time + Delay * 10 <= UO.Timer()
Endif

Sub DelJournal(msg)
  While UO.InJournal(msg)
    UO.SetJournalLine(UO.InJournal(msg) - 1, '')
  Wend
Endsub

Sub CheckLag()
  DelJournal('ackpack')
  UO.Click('backpack')
  Repeat
    Wait(50)
  Until UO.InJournal('ackpack')
Endsub


Сразу говорю, что работоспособность не проверял, если будут ошибки - пиши.
PS Проще новый скрипт написать, чем ломать можг над чужими, которые без отступов и по журналу что-то там чекают :roll:
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Оском - скрипт на Tailoring с розкладкой роб по мешках

Post by Mirage »

если рассматривать скрипт на крафт продукции в мешки то мне больше нравится следующий алгоритм:
1) два сундука - один с пустыми мешками, сирьем, едой и инструментами; второй пустой
2) мешок переносится в пустой сундук и заполняется готовой продукцией.
Если скрипт выключить в процессе то будет один не до конца заполненный мешок.

Code: Select all

VAR Container   = '0x40B5267F'   ;айрон, рыба, инструменты, может быть равен Sunduk 1
VAR Sunduk1   = '0x40B5267F'      ;пустые мешки
VAR Sunduk2   = '0x40B52599'      ;полные
VAR spool   = '0x0FA0'      #нитки#
VAR dress   = 'ТИП ВЕЩИ'      #               <-----------------------
VAR cloth   = '0x175D'      #ткань#
VAR Skit   = '0x0F9D'      #швейный набор#
VAR Meshok    = '0x0E76'      ;тип мешка
var havka   = '0x097B'
VAR MeshSer, d, LastTimer, timemove, itemM
var quantity = 250; количество предметов в 1 мешке
var msg ='You put|положили|fail|не удалось|You broke|сломали'
var printcolour = '1069'
sub Tailor()
   var menu = "waitmenu 'Cloth' 'Shirts' 'Shirts' 'plain dress'"  ;  меню крафта
   var item = dress
   UO.UseObject(Container)
   wait( 100 )
   UO.UseObject(Sunduk1)
   wait( 100 )
   UO.UseObject(Sunduk2)
   wait( 100 )
   WHILE NOT UO.Dead()
      UO.FindType( Meshok, '-1', Sunduk1 )
      MeshSer = UO.GetSerial( 'finditem' )
      UO.MoveItem( MeshSer, 0, Sunduk2 )
      checklag()
      uo.useobject( MeshSer )
      eat()
      REPEAT
         GET(cloth, Container, 16, 100)
         GET(spool, Container, 1, 100)
         Repeat
            UO.DeleteJournal()
            LastTimer=UO.Timer()
            UO.exec( menu )
            UO.waittargettype ( cloth )
            UO.Usetype( Skit )
            repeat
               wait( 100 )
            until UO.InJournal( msg ) or UO.Timer()>LastTimer+150
         Until UO.Count( item ) > 0
         checklag()
         PUT(item , MeshSer)
         UO.FindType( item , -1, MeshSer)
         uo.charprint(printcolour,'Предметов сделано: ' + Str( UO.FindCount( item ) ) )
      UNTIL UO.FindCount()>=quantity
      uo.charprint(printcolour,'Берем другую сумку' )
      wait( 300 )
   WEND
end sub
Sub eat()
   GET(havka, Container, 1, 20)
   REPEAT
      UO.DeleteJournal()
      LastTimer=UO.Timer()
      UO.findtype(havka,-1,'backpack')
      If UO.FindCount() > 0 Then
         UO.Useobject('finditem')
         wait(200)
      Else
         uo.charprint(printcolour, 'кончилась рыба' )
         return 0
      end if
   Until UO.InJournal("simply too full to eat|stuffed!|think|found|Вы ничего не можете") OR UO.Timer()>LastTimer+200
   PUT(havka, Container)
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
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Оском - скрипт на Tailoring с розкладкой роб по мешках

Post by ZeroDX »

Code: Select all

UO.FindType(-1, -1, id_Bag)
If UO.FindCount() < 255 then
  ...
 else
  UO.Ignore(id_Bag)
Endif


Где тут эта вероятность? Если в мешке 255 итемов - в игнор его.
Levo
Posts: 9
Joined: 2011-06-23 18:18:24

Re: Оском - скрипт на Tailoring с розкладкой роб по мешках

Post by Levo »

Спасибо огромное ! Буду пробовать )))
Если что напишу...
Levo
Posts: 9
Joined: 2011-06-23 18:18:24

Re: Оском - скрипт на Tailoring с розкладкой роб по мешках

Post by Levo »

ZeroDX


Скрипт выдает ошибку (чтото связано с едой):

Line 72: Variable already defined - ID


можно както подправить

И как узнать задержку на сервере...


Mirage
Ваш скрипт не работает. Не делает ничего. чтото там с меню ...

Code: Select all

sub Tailoring()
  Dim t_Resources[2]
    t_Resources[0] = '0x175D' ;Тип ткани
    t_Resources[1] = '0x0FA0' ;Тип ниток
  var t_SewingKit = '0x0F9D', t_Robe = '0x1f01', t_Bag = '0x0e76', t_Steaks = '0x0c77'
  var id_Container = '0x41515b94', id_RecContainer = '0x41234814'
  var Delay = 10, Pause = 1000, ThreadsNeed = 1, ClothNeed = 10, ClothMove = 500, ThreadsMove = 50
  var msg = 'ou put|fail', Time, id_Bag, ResMove, i
  UO.UseObject(id_Container)
  UO.UseObject(id_RecContainer)
  While true
    If UO.Count(t_Resources[0]) >= ClothNeed and UO.Count(t_Resources[1]) >= ThreadsNeed then
      If UO.Targeting() then
        UO.CancelTarget()
      Endif
      DelJournal(msg)
      Time = UO.Timer()
      UO.WaitMenu('Cloth', 'Shirts', 'Shirts', 'plain dress')
      UO.WaitTargetType(t_Resources[0])
      UO.UseType(t_SewingKit)
      Repeat
        Wait(100)
      Until UO.InJournal(msg) or Time + Delay * 10 <= UO.Timer()
     else
      While UO.Count(t_Robe)
        UO.FindType(t_Bag, -1, id_RecContainer)
        If UO.FindCount() then
          id_Bag = UO.GetSerial('finditem')
          UO.UseObject(id_Bag)
          Wait(100)
          UO.FindType(-1, -1, id_Bag)
          If UO.FindCount() < 255 then
            UO.FindType(t_Robe, -1, 'backpack')
            If UO.FindCount() then
              CheckLag()
              UO.MoveItem('finditem', -1, id_Bag)
              Wait(Pause)
             else
              UO.Print('Непонятная ошибка 404 :Р')
              Return
            Endif
           else
            UO.Ignore(id_Bag)
          Endif
         else
          UO.Print('Вроде как закончились пустые сумки')
          Return
        Endif
      Wend
      UO.IgnoreReset()
      For i = 0 to 1
        UO.FindType(t_Resources[i], -1, id_Container)
        If UO.FindCount() then
          If i > 0 then
            ResMove = ThreadsMove
           else
            ResMove = ClothMove
          Endif
          CheckLag()
          UO.MoveItem('finditem', ResMove - UO.Count(t_Resources[i]), 'backpack')
          Wait(Pause)
         else
          UO.Print('В ' + id_Container + ' не найден один из ресурсов.')
          Return
        Endif
      Next
    Endif
    Eat(id_Container, t_Steaks, Pause)
  Wend
Endsub

Sub Eat(id, type, pause)
  var msg = 'simply|ou can|full', Time, Delay = 10
  DelJournal(msg)
  Time = UO.Timer()
  Repeat
    If UO.Count(type) then
      UO.UseType(type)
      Wait(100)
     else
      UO.FindType(type, -1, id)
      If UO.FindCount() then
        CheckLag()
        UO.MoveItem('finditem', 20, 'backpack')
        Wait(Pause)
       else
        UO.Print('Еды нету')
        Return
      Endif
    Endif
  Until UO.InJournal(msg) or Time + Delay * 10 <= UO.Timer()
Endif

Sub DelJournal(msg)
  While UO.InJournal(msg)
    UO.SetJournalLine(UO.InJournal(msg) - 1, '')
  Wend
Endsub

Sub CheckLag()
  DelJournal('ackpack')
  UO.Click('backpack')
  Repeat
    Wait(50)
  Until UO.InJournal('ackpack')
Endsub
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Оском - скрипт на Tailoring с розкладкой роб по мешках

Post by Mirage »

Свой скрипт я поправил, попробуй. Тип вещи только напиши там.
Levo
Posts: 9
Joined: 2011-06-23 18:18:24

Re: Оском - скрипт на Tailoring с розкладкой роб по мешках

Post by Levo »

Спасибо будем пробовать )
Levo
Posts: 9
Joined: 2011-06-23 18:18:24

Re: Оском - скрипт на Tailoring с розкладкой роб по мешках

Post by Levo »

Mirage

Шить он уже может, но не достает из контенера ни один ресурс (нитки, ткань, еда.)
Осталась одна нитка и 3 ткани ... просто открылось меню крафта и все...
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Оском - скрипт на Tailoring с розкладкой роб по мешках

Post by ZeroDX »

Поменял названия переменных, мало-ли

Code: Select all

Sub Eat(cont, food, del)
  var msg = 'simply|ou can|full', Time, Delay = 10
  DelJournal(msg)
  Time = UO.Timer()
  Repeat
    If UO.Count(food) then
      UO.UseType(food)
      Wait(100)
     else
      UO.FindType(food, -1, cont)
      If UO.FindCount() then
        CheckLag()
        UO.MoveItem('finditem', 20, 'backpack')
        Wait(del)
       else
        UO.Print('Еды нету')
        Return
      Endif
    Endif
  Until UO.InJournal(msg) or Time + Delay * 10 <= UO.Timer()
Endif
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Оском - скрипт на Tailoring с розкладкой роб по мешках

Post by Mirage »

Levo wrote:Mirage
просто открылось меню крафта и все...

контейнеры прописал вверху?
Они должны открыться перед шитьем.
Проверь скрипт ZeroDX. Если он работает то интересный вариант работы с мешками и игнором. Нужно взять на заметку.
Levo
Posts: 9
Joined: 2011-06-23 18:18:24

Re: Оском - скрипт на Tailoring с розкладкой роб по мешках

Post by Levo »

Работает. Спасибо огромное ZeroDX. И Вам Mirage спасибо за поддержку =)

В етом скрипте только еду переделать нада.
Кидает такую ошибку: Line 72: Variable already defined - ID

я просто закоментировал # Eat(id_Container, t_Steaks, Pause) --- кушаем руками =)


Code: Select all

Eat(id_Container, t_Steaks, Pause)

Sub Eat(cont, food, del)
  var msg = 'simply|ou can|full', Time, Delay = 10
  DelJournal(msg)
  Time = UO.Timer()
  Repeat
    If UO.Count(food) then
      UO.UseType(food)
      Wait(100)
     else
      UO.FindType(food, -1, cont)
      If UO.FindCount() then
        CheckLag()
        UO.MoveItem('finditem', 20, 'backpack')
        Wait(del)
       else
        UO.Print('Еды нету')
        Return
      Endif
    Endif
  Until UO.InJournal(msg) or Time + Delay * 10 <= UO.Timer()
Endif
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Оском - скрипт на Tailoring с розкладкой роб по мешках

Post by ZeroDX »

А если так?

Code: Select all

var t_SewingKit = '0x0F9D', t_Robe = '0x1f01', t_Bag = '0x0e76', t_Steaks = '0x0c77'
var id_Container = '0x41515b94', id_RecContainer = '0x41234814'
var Delay = 10, Pause = 1000, ThreadsNeed = 1, ClothNeed = 10, ClothMove = 500, ThreadsMove = 50

sub Tailoring()
  Dim t_Resources[2]
    t_Resources[0] = '0x175D' ;Тип ткани
    t_Resources[1] = '0x0FA0' ;Тип ниток
  var msg = 'ou put|fail', Time, id_Bag, ResMove, i
  UO.UseObject(id_Container)
  UO.UseObject(id_RecContainer)
  While true
    If UO.Count(t_Resources[0]) >= ClothNeed and UO.Count(t_Resources[1]) >= ThreadsNeed then
      If UO.Targeting() then
        UO.CancelTarget()
      Endif
      DelJournal(msg)
      Time = UO.Timer()
      UO.WaitMenu('Cloth', 'Shirts', 'Shirts', 'plain dress')
      UO.WaitTargetType(t_Resources[0])
      UO.UseType(t_SewingKit)
      Repeat
        Wait(100)
      Until UO.InJournal(msg) or Time + Delay * 10 <= UO.Timer()
     else
      While UO.Count(t_Robe)
        UO.FindType(t_Bag, -1, id_RecContainer)
        If UO.FindCount() then
          id_Bag = UO.GetSerial('finditem')
          UO.UseObject(id_Bag)
          Wait(100)
          UO.FindType(-1, -1, id_Bag)
          If UO.FindCount() < 255 then
            UO.FindType(t_Robe, -1, 'backpack')
            If UO.FindCount() then
              CheckLag()
              UO.MoveItem('finditem', -1, id_Bag)
              Wait(Pause)
             else
              UO.Print('Непонятная ошибка 404 :Р')
              Return
            Endif
           else
            UO.Ignore(id_Bag)
          Endif
         else
          UO.Print('Вроде как закончились пустые сумки')
          Return
        Endif
      Wend
      UO.IgnoreReset()
      For i = 0 to 1
        UO.FindType(t_Resources[i], -1, id_Container)
        If UO.FindCount() then
          If i > 0 then
            ResMove = ThreadsMove
           else
            ResMove = ClothMove
          Endif
          CheckLag()
          UO.MoveItem('finditem', ResMove - UO.Count(t_Resources[i]), 'backpack')
          Wait(Pause)
         else
          UO.Print('В ' + id_Container + ' не найден один из ресурсов.')
          Return
        Endif
      Next
    Endif
    Eat()
  Wend
Endsub

Sub Eat()
  var msg = 'simply|ou can|full', Time, Delay = 10
  DelJournal(msg)
  Time = UO.Timer()
  Repeat
    If UO.Count(t_Steaks) then
      UO.UseType(t_Steaks)
      Wait(100)
     else
      UO.FindType(t_Steaks, -1, id_Container)
      If UO.FindCount() then
        CheckLag()
        UO.MoveItem('finditem', 20, 'backpack')
        Wait(Pause)
       else
        UO.Print('Еды нету')
        Return
      Endif
    Endif
  Until UO.InJournal(msg) or Time + Delay * 10 <= UO.Timer()
Endif

Sub DelJournal(msg)
  While UO.InJournal(msg)
    UO.SetJournalLine(UO.InJournal(msg) - 1, '')
  Wend
Endsub

Sub CheckLag()
  DelJournal('ackpack')
  UO.Click('backpack')
  Repeat
    Wait(50)
  Until UO.InJournal('ackpack')
Endsub
Levo
Posts: 9
Joined: 2011-06-23 18:18:24

Re: Оском - скрипт на Tailoring с розкладкой роб по мешках

Post by Levo »

Всеравно не работает.

Возможно инжа глюченая...
Посоветуйте нормальный сборник пожалуйста...
Там я слышал чтото с АСМ ... незнаю просто что ето такое и нада ли оно мне )

Если можно ссылку на файлообменник какой =)
Post Reply