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

General Injection issues

Moderators: Murderator+, Murderator

Post Reply
Euuugene
Posts: 8
Joined: 2005-04-06 20:28:01

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

Post by Euuugene »

Проблемка с тейлорингом, и как-то давно была со спарингом, где ондин скрипт на 2 чара.

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

чар начинает шить робы, шьюет от 5-200 и потом зависает, т.е. надо что-нить в бэкпаке передвинуть, он сразу же берет нитки или ткань и начинает шить дальше. TWI включен, кто-нить знает решение?
Euuugene
Posts: 8
Joined: 2005-04-06 20:28:01

Post 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
MazaFaka
Posts: 77
Joined: 2005-02-22 20:03:13

Post by MazaFaka »

sub Reconnector()
а почему 2 одинаковых оператора?
может один обозвать по другому?
sub MakeTime()
аналогично ..............
говорила мне мама "учись неуч"
AGRS
Expert!
Posts: 1007
Joined: 2004-04-04 21:40:09
Contact:

Post 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)
Постарайся избавиться от этой х@$ни. Чек лаг и гет сериал тебе в помощь.
Post Reply