############################################################### #===---====---===---= Sort Treasure Map =---=---=---=---=---==# # Scripted by Savage (c) 2004 # #"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""# sub CartSort() ; VAR f=file("maps.txt") VAR Exit, Exit2, Buffer, Buffer2, i, Line, MapX, MapY VAR Index=1, MapSerial, BagSerial, MatchFound VAR StepRound=50 ; razbros koordinat VAR WaitTime=500 ; pauza VAR SourceBagNumber=4 ; kolichestvo meshkov s nerazlozhennymi kartami VAR j, SourceBag=''
for j = 1 to SourceBagNumber SourceBag = 'SourceBag' + str(j,0) UO.Print('Vibery meshok s kartamy '+str(j,0)+'!') UO.AddObject(SourceBag) while uo.Targeting()==2 wait(500) wend UO.UseObject(SourceBag) next
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 i runami!') 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') ; meshok IF UO.GetQuantity('finditem')>0 Then Bag[Index]=UO.GetSerial('finditem') UO.UseObject(Bag[Index]) wait(WaitTime) UO.FindType('0x1F14',-1,Bag[Index]); runa IF UO.GetQuantity('finditem')>0 Then UO.DeleteJournal() UO.Click('finditem') Repeat Wait(500) Until UO.InJournal("Rune to") Line=UO.InJournal("Rune to")-1 Buffer=UO.Journal(Line)
Buffer2="" Exit2=0 i=8 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)
j=1 SourceBag='SourceBag' + str(j,0) Exit=0 While Exit<>1 UO.FindType('0x14EB',-1,SourceBag) If UO.GetQuantity('finditem')>0 Then UO.DeleteJournal() UO.MoveItem('finditem','1','backpack') wait(WaitTime) UO.UseObject('finditem') MapSerial=UO.GetSerial('finditem') Repeat wait(500) 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.GetQuantity('finditem')>0 Then UO.MoveItem('finditem','1','ReceiveBag') Bag[Index]=UO.GetSerial('finditem') X[Index]=MapX Y[Index]=MapY wait(WaitTime) UO.FindType('0x1F14',-1,'SkladBag'); runa IF UO.GetQuantity('finditem')>0 Then UO.MoveItem('finditem','1','backpack') ; runa to pack wait(WaitTime) UO.UseObject('finditem') Repeat Wait(500) Until UO.InJournal("What is the new name") UO.Say(STR(MapX)+":"+STR(MapY)) wait(WaitTime) UO.MoveItem('finditem','1',Bag[Index]) ; runa to meshok wait(WaitTime) UO.MoveItem(MapSerial,'1',Bag[Index]) wait(WaitTime) Else Exit=1 UO.Print("Error! Kon4ilis pustie runy!") Endif Index=Index+1 Else Exit=1 UO.Print("Error! Kon4ilis pustie sumki!") Endif Endif ; UO.Print(STR(MapX)+" "+STR(MapY)) ; f.WriteLn(STR(MapX)+" "+STR(MapY)) wait(WaitTime) Else j=j+1 IF j>SourceBagNumber Then Exit=1 Else SourceBag='SourceBag' + str(j,0) Endif Endif Wend