Проблемка с тейлорингом, и как-то давно была со спарингом, где ондин скрипт на 2 чара.
с тейлорингом вот что:
чар начинает шить робы, шьюет от 5-200 и потом зависает, т.е. надо что-нить в бэкпаке передвинуть, он сразу же берет нитки или ткань и начинает шить дальше. TWI включен, кто-нить знает решение?
зависание скриптов
Moderators: Murderator+, Murderator
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
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)
Постарайся избавиться от этой х@$ни. Чек лаг и гет сериал тебе в помощь.