Ultima Online программы,советы,скрипты. Четверг, 03.07.2025, 09:50
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Скрипты [22]
Интересное Чтиво. (советы) [3]
Публикации пользователей [2]
Проверенные статьи переношу в основные разделы.

Главная » Статьи » Скрипты

Сортировка карт
###############################################################
#===---====---===---= 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=''

DIM X[255],Y[255],Bag[255]

uo.exec('set injectecho 1')
; f.Create()
; f.Open()

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)

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


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

; f.Close()
UO.Print("Done!!!")
end sub

Категория: Скрипты | Добавил: cornor (23.03.2008)
Просмотров: 1790 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Форма входа

Поиск

Друзья сайта

Copyright MyCorp © 2025 Сделать бесплатный сайт с uCoz