Раскладка карт по координатам
Moderators: Murderator+, Murderator
Раскладка карт по координатам
daici script stob karti raskidavac po kardinatam
Code: Select all
###############################################################
#===---====---===---= 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=40 ; razbros koordinat
VAR WaitTime=2000 ; 2 sec pauza
DIM X[255],Y[255],Bag[255]
; f.Create()
; f.Open()
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)
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
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
; f.Close()
UO.Print("Done!!!")
end sub