
Приношу извинения за повтор тем и т.п. =)
Moderators: Murderator+, Murderator
Code: Select all
sub CartSort()
VAR Exit, Exit2, Buffer, Buffer2, i, Line, MapX, MapY
VAR Index=1, MapSerial, BagSerial, MatchFound
VAR StepRound=60 ; razbros koordinat
VAR WaitTime=500 ; 2 sec pauza
DIM X[255],Y[255],Bag[255]
UO.Print('Vibery meshok s kartamy!')
UO.AddObject('SourceBag')
While UO.Targeting()==2
wait(500)
Wend
UO.UseObject('SourceBag')
UO.Print('Vibery portfel dlya kart!')
UO.AddObject('ReceiveBag')
While UO.Targeting()==2
wait(500)
Wend
UO.UseObject('ReceiveBag')
UO.Print('Vibery portfel s pustimi meshkami!')
UO.AddObject('SkladBag')
While UO.Targeting()==2
wait(500)
Wend
UO.UseObject('SkladBag')
UO.IgnoreReset()
Exit=0
While Exit<>1
UO.FindType('0x0E76','-1','ReceiveBag')
IF UO.findcount() Then
Bag[Index]=UO.GetSerial('finditem')
UO.UseObject(Bag[Index])
wait(WaitTime)
UO.FindType('0x14EB','-1',Bag[Index])
IF UO.findcount() Then
UO.DeleteJournal()
uo.moveitem('finditem','1','backpack')
wait(500)
UO.useobject('finditem')
Repeat
Wait(100)
Until UO.InJournal("Map opened")
Line=UO.InJournal("Map opened")-1
Buffer=UO.Journal(Line)
uo.moveitem('finditem','1',Bag[Index])
wait(500)
Buffer2=""
Exit2=0
i=15
While Exit2<>1
If Buffer[i]<>":" Then
Buffer2=Buffer2+Buffer[i]
Else
Exit2=1
Endif
i=i+1
Wend
MapX=VAl(Buffer2)
Buffer2=""
Exit2=0
While Exit2<>1
If Buffer[i]<>"" Then
Buffer2=Buffer2+Buffer[i]
Else
Exit2=1
Endif
i=i+1
Wend
MapY=VAl(Buffer2)
X[Index]=MapX
Y[Index]=MapY
UO.Ignore(Bag[Index])
Else
UO.MoveItem(Bag[Index],'1','SkladBag')
wait(WaitTime)
Index=Index-1
Endif
Index=Index+1
Else
Exit=1
Endif
Wend
uo.resend()
Exit=0
While Exit<>1
UO.FindType('0x14EB','0x0000','SourceBag')
wait(100)
If uo.findcount() Then
UO.DeleteJournal()
UO.MoveItem('finditem','1','backpack')
wait(WaitTime)
UO.UseObject('finditem')
MapSerial=UO.GetSerial('finditem')
Repeat
wait(100)
Until UO.InJournal("Map opened")
Line=UO.InJournal("Map opened")-1
Buffer=UO.Journal(Line)
Buffer2=""
Exit2=0
i=15
While Exit2<>1
If Buffer[i]<>":" Then
Buffer2=Buffer2+Buffer[i]
Else
Exit2=1
Endif
i=i+1
Wend
MapX=VAl(Buffer2)
Buffer2=""
Exit2=0
While Exit2<>1
If Buffer[i]<>"" Then
Buffer2=Buffer2+Buffer[i]
Else
Exit2=1
Endif
i=i+1
Wend
MapY=VAl(Buffer2)
i=1
Exit2=0
MatchFound=0
While i<Index AND Exit2<>1
If X[i]-StepRound<MapX AND X[i]+StepRound>MapX Then
If Y[i]-StepRound<MapY AND Y[i]+StepRound>MapY Then
BagSerial=Bag[i]
MatchFound=1
Exit2=1
Endif
EndIf
i=i+1
Wend
If MatchFound Then
UO.MoveItem(MapSerial,'1',BagSerial)
wait(WaitTime)
Else
UO.FindType('0x0E76','-1','SkladBag') ; meshok
IF uo.findcount() Then
UO.MoveItem('finditem','1','ReceiveBag')
Bag[Index]=UO.GetSerial('finditem')
X[Index]=MapX
Y[Index]=MapY
UO.MoveItem(MapSerial,'1',Bag[Index])
wait(WaitTime)
Endif
Index=Index+1
Else
Exit=1
UO.Print("Error! Kon4ilis pustie sumki!")
Endif
Endif
wait(WaitTime)
Else
Exit=1
Endif
Wend
UO.Print("Done!!!")
end sub