Page 1 of 1

зависание скриптов

Posted: 2005-04-29 08:54:29
by Euuugene
Проблемка с тейлорингом, и как-то давно была со спарингом, где ондин скрипт на 2 чара.

с тейлорингом вот что:

чар начинает шить робы, шьюет от 5-200 и потом зависает, т.е. надо что-нить в бэкпаке передвинуть, он сразу же берет нитки или ткань и начинает шить дальше. TWI включен, кто-нить знает решение?

Posted: 2005-04-29 09:22:50
by Euuugene

Code: Select all

################################### 
#        Ñêðèïò äëÿ Êðàôòîâ       #
# ( äàííîì ñëó÷àå äëÿ Tailoring) #
###################################

;|---------------------------|
;| Îïèñàíèå ïåðåìåííûõ Items |
;|---------------------------|

VAR EQ,RQ1,RQ2,QB 
VAR Eat='0x160A' ; Type ??? (????) 
VAR Res1='0x175D' ; Type ?????? 1 (?????) 
VAR Res2='0x0FA0' ; Type ?????? 2 (?????) 
VAR Kit='0x0F9D' ; Type ??????????? ?????? (Sewing Kit) 
VAR Items='0x1F03' ; Type ????????? ????????? 
EQ=1 ; ?????????? ??? 
RQ1=240 ; ?????????? ??????? 1 
RQ2=15 ; ?????????? ??????? 2 

;|---------------------------------|
;| Îïèñàíèå ïåðåìåííûõ êîíòåéíåðîâ |
;|---------------------------------|

VAR ContainerRes='0x415D778F' ; Object ????????? ? ????????? 
VAR ContainerBag='0x40FF57EF' ; Object ????????? ? ??????? 
VAR BagCount='0x0E76' ; Type ????? ? ?????????? ContainerBag


sub main()
   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("bag") Then
            BagID=UO.JournalSerial(UO.InJournal("bag")-1)
            UO.SetJournalLine(UO.InJournal("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','robe') ; Íàçâàíèå ÊðàôòÌåíþ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("bag")
      If UO.InJournal("bag") Then
         BagID=UO.JournalSerial(UO.InJournal("bag")-1)
         UO.SetJournalLine(UO.InJournal("bag")-1,"")
         UO.FindType('-1','-1',BagID)
         If UO.FindCount('finditem') < 200 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

sub Reconnector() 
    var ReconnectTime, RFlag 
    ReconnectTime = '0' 
    RFlag = 1 
    Repeat 
          While (UO.ObjAtLayer('Bpack') == '') 
                if RFlag Then 
                   ReconnectTime = MakeTime() 
                   RFlag = 0 
                endif 
                Wait(20000) # WorldSave Protection 
                UO.Say('') 
                Wait(3000) 
                UO.Say('') 
                Wait(3000) 
                UO.Say('') 
                Wait(3000) 
                UO.LDblClick(357,164) 
                UO.LClick(616,459) 
                Wait(3000)         
          WEnd 
          Wait(3000) 
          if (RFlag == 0) and (ReconnectTime <> '0') Then 
             UO.Exec('terminate main')
             UO.Exec('terminate Craft')
             UO.Exec('terminate ToTake')
             UO.Exec('terminate ToEat')
             UO.Exec('terminate UnLoadItem') 
             UO.Exec('terminate OpenBag') 
             UO.Exec('exec main') 
             UO.TextOpen() 
             UO.TextPrint('Disconnected & Reconnected @ '+ReconnectTime) 
             RFlag = 1 
             ReconnectTime = '0' 
          endif 
    Until false 
end sub 
 
sub MakeTime() 
   VAR D, T, Ret, i 
   Ret = STR(UO.Time()) 
   T = "" 
   For i = 0 To Len(Ret) 
      T = Ret[Len(Ret)-i] + T 
      If (I == 2) OR (I == 4) Then 
         T = ":" + T 
      EndIf 
   Next 
   Ret = STR(UO.Date()) 
   D = "" 
   For i = 0 To Len(Ret) 
      D = Ret[Len(Ret)-i] + D 
      If (I == 2) OR (I == 4) Then 
         D = "." + D 
      EndIf 
   Next     
   Ret = T + " @ " + D 
   RETURN Ret 
end sub


sub Reconnector() 
    var ReconnectTime, RFlag 
    ReconnectTime = '0' 
    RFlag = 1 
    Repeat 
          While (UO.ObjAtLayer('Bpack') == '') 
                if RFlag Then 
                   ReconnectTime = MakeTime() 
                   RFlag = 0 
                endif 
                Wait(20000) # WorldSave Protection 
                UO.Say('') 
                Wait(3000) 
                UO.Say('') 
                Wait(3000) 
                UO.Say('') 
                Wait(3000) 
                UO.LDblClick(357,164) 
                UO.LClick(616,459) 
                Wait(3000)         
          WEnd 
          Wait(3000) 
          if (RFlag == 0) and (ReconnectTime <> '0') Then 
             UO.Exec('terminate main')
             UO.Exec('terminate Craft')
             UO.Exec('terminate ToTake')
             UO.Exec('terminate ToEat')
             UO.Exec('terminate UnLoadItem') 
             UO.Exec('terminate OpenBag') 
             UO.Exec('exec main') 
             UO.TextOpen() 
             UO.TextPrint('Disconnected & Reconnected @ '+ReconnectTime) 
             RFlag = 1 
             ReconnectTime = '0' 
          endif 
    Until false 
end sub 
 
sub MakeTime() 
   VAR D, T, Ret, i 
   Ret = STR(UO.Time()) 
   T = "" 
   For i = 0 To Len(Ret) 
      T = Ret[Len(Ret)-i] + T 
      If (I == 2) OR (I == 4) Then 
         T = ":" + T 
      EndIf 
   Next 
   Ret = STR(UO.Date()) 
   D = "" 
   For i = 0 To Len(Ret) 
      D = Ret[Len(Ret)-i] + D 
      If (I == 2) OR (I == 4) Then 
         D = "." + D 
      EndIf 
   Next     
   Ret = T + " @ " + D 
   RETURN Ret 
end sub

Posted: 2005-04-29 11:00:19
by MazaFaka
sub Reconnector()

а почему 2 одинаковых оператора?
может один обозвать по другому?
sub MakeTime()

аналогично ..............

Posted: 2005-04-29 11:17:06
by AGRS

Code: Select all

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)


Постарайся избавиться от этой х@$ни. Чек лаг и гет сериал тебе в помощь.