#Вот. Сортирует карты близко расположенных кладов. #Делал под заказ, не бесплатно. Но срок давности уже вышел... #значит в паке портфель с пустыми мешками и бланк рунами, портфель для карт #пустой или уже с сортированными мешками (токо не доводите количество карт до #255 а то скрипт собъется), и мешок с картами. #Помнится что заказчик запустил с трудом, хз почему. # #Не работает у многих изза инжект эха, вообщем исправил и паузу поменьше #поставил, если будет путать карты то побольше ставьте...
############################################################### #===---====---===---= Sort Treasure Map =---=---=---=---=---==# # Scripted by Savage (c) 2004 ICQ:33336141 # #"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""# sub CartSort() ; VAR f=file("maps.txt") VAR Exit, Exit2, Buffer, Buffer2, i, Line, MapX, MapY VAR Index=1, MapSerial, BagSerial, MatchFound VAR StepRound=100 ; razbros koordinat VAR WaitTime=500 ; pauza
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 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)
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',Bag[Index]) UO.UseObject('finditem') Repeat Wait(500) Until UO.InJournal("What is the new name") UO.Say(STR(MapX)+":"+STR(MapY)) 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 Exit=1 Endif Wend