Code: Select all
###Он раскладывает уже расшифрованные карты
###по координатам. Для этого надо 3 контейнера. В первом мешочки с картами,
###во втором ну очень многа пустых мешочков (у мну всегда 255 перед запуском,
###но больше 80-90 обычно не требуется для 3-4-5 левела, а вдруг ...), третий как
###бы вроде пустой, если он не пустой то скрипт переберёт все мешочки и узнает
###карты в какие координаты лежат в мешочках которые тама лежат. В общем ничего
###страшного в том что скрипт вылетел, соскачил конект, жена заигрывающе
###выдернула вилку из розетки, нету Запускаем по новой показываем таргетами на те
###самые контейнеры по порядку и всё будет тип-топ.
###Внимание. В паке чара перед началом не должно быть не одной карты, не в самом
###паке ни в мешочках. Ваще 0 кароче.
###########################################
############## Map_Sort_Uni ###############
###########################################
sub Map_Sort_Uni()
var tx,ty,s,i=0,j=0,flag=0,cc,k=0,Bag0,TMap
var BPack1,BPack2,BPack3
UO.UseObject('backpack')
Cheklag()
UO.exec('resend')
Cheklag()
uo.ignorereset()
wait(50)
Dim Bags[255]
Dim KoordX[255]
Dim KoordY[255]
uo.set('injectecho','1')
uo.print('Pack 1')
uo.exec('addobject Pack')
while uo.targeting()
wait(100)
wend
BPack1=uo.getserial('Pack')
uo.print('Pack 2')
uo.exec('addobject Pack')
while uo.targeting()
wait(100)
wend
BPack2=uo.getserial('Pack')
uo.print('Pack 3')
uo.exec('addobject Pack')
while uo.targeting()
wait(100)
wend
BPack3=uo.getserial('Pack')
uo.useobject(BPack1)
wait(500)
uo.useobject(BPack2)
wait(500)
uo.useobject(BPack3)
wait(500)
uo.findtype('0x0E76','0x0000',BPack3)
wait(50)
while uo.findcount() > 0
Bag0=uo.getserial('finditem')
wait(50)
uo.useobject(Bag0)
wait(500)
uo.findtype('0x14EB','0x0000',Bag0)
wait(50)
if uo.findcount() > 0 then
Tmap=uo.getserial('finditem')
i=i+1
uo.moveitem(Tmap,'-1','backpack')
cc=0
while cc==0
wait(100)
cc=uo.count('0x14EB','0x0000')
wend
wait(200)
uo.deletejournal()
uo.useobject(Tmap)
repeat
wait(10)
until uo.injournal('Map opened to:')
wait(100)
uo.rclick(109,150)
wait(100)
s = uo.journal(uo.injournal('Map opened to:')-1)
s = Trim(Right(s,len(s)-15))
if s[4] == ':' then
tx = val(left(s,4))
ty = val(right(s,len(s)-5))
else
tx = val(left(s,3))
ty = val(right(s,len(s)-4))
end if
k=k+1
KoordX[k]=tx
KoordY[k]=ty
Bags[k]=Bag0
uo.moveitem(Tmap,'-1',Bag0)
cc=uo.weight
while cc==uo.weight
wait(10)
wend
wait(200)
UO.Print("Координат зафиксировано -> "+str(i))
end if
uo.ignore(Bag0)
wait(50)
uo.useobject(BPack3)
wait(500)
uo.findtype('0x0E76','0x0000',BPack3)
wait(50)
wend
i=0
uo.ignorereset()
wait(50)
uo.findtype('0x0E76','0x0000',BPack1)
wait(50)
while uo.findcount() > 0
Bag0=uo.getserial('finditem')
wait(50)
uo.useobject(Bag0)
wait(500)
uo.findtype('0x14EB','0x0000',Bag0)
wait(50)
while uo.findcount() > 0
Tmap=uo.getserial('finditem')
i=i+1
uo.moveitem(Tmap,'-1','backpack')
cc=0
while cc==0
wait(100)
cc=uo.count('0x14EB','0x0000')
wend
wait(200)
uo.deletejournal()
uo.useobject(Tmap)
repeat
wait(10)
until uo.injournal('Map opened to:')
wait(100)
uo.rclick(109,150)
wait(100)
s = uo.journal(uo.injournal('Map opened to:')-1)
s = Trim(Right(s,len(s)-15))
if s[4] == ':' then
tx = val(left(s,4))
ty = val(right(s,len(s)-5))
else
tx = val(left(s,3))
ty = val(right(s,len(s)-4))
end if
flag=0
if k>0 then
For j=1 to k
if abs(KoordX[j]-tx) < 30 and abs(KoordY[j]-ty) < 30 then
uo.moveitem(Tmap,'-1',Bags[j])
cc=uo.weight
while cc==uo.weight
wait(10)
wend
wait(300)
flag=1
end if
next
end if
if flag==0 then
k=k+1
KoordX[k]=tx
KoordY[k]=ty
uo.findtype('0x0E76','0x0000',BPack2)
wait(50)
if uo.findcount()>0 then
Bags[k]=uo.getserial('finditem')
uo.moveitem('finditem','-1',BPack3)
wait(500)
else
uo.exec("terminate all")
end if
uo.moveitem(Tmap,'-1',Bags[k])
cc=uo.weight
while cc==uo.weight
wait(10)
wend
wait(300)
end if
UO.Print("Карт отсортировано -> "+str(i))
uo.findtype('0x14EB','0x0000',Bag0)
wait(50)
wend
uo.moveitem(Bag0,'-1',BPack2)
wait(500)
uo.findtype('0x0E76','0x0000',BPack1)
wait(50)
wend
uo.set('injectecho','0')
end sub
###########################################
################### abs ###################
###########################################
Sub abs(n)
if n < 0 then
return n*(-1)
else
return n
end if
end sub
sub Cheklag()
UO.DeleteJournal()
UO.Click('backpack')
repeat
wait(500)
until UO.InJournal('backpack')
end sub