Code:
# Продажа Necklace. Dragon World #
# You Must Die
# Действие скрипта:
# Стоим перед домом. Указав все переменные, запускаем функцию main.
# Указываем прицелом на рунбуку в которой лежат руны по которым будем летать в магазин для продажи мешков с necklace и домой для выкладки денег и добора necklace.
# Скрипт набирает 2 мешка, летит в магазин-продаёт там все имеющиеся necklace. Как только продал -летит к дому.
# Выкладывает деньги, добирает новые мешки и так по циклу.
var Sunduk='0x401E340D' # Откуда берём мешки с necklace, и куда складываем деньги
var EmptyBag='0x4045C508' # ID сумки, куда будем складывать пустые мешки
var gold='0x0EED' # Тип денег
var Bag='0x0E76' # Тип мешков с necklace
var VendorType='0x0191' # Тип вендора. Если ваши типы совпадают-не забудьте uo.Ignore('self')
var Necklace='0x1085' # Тип Necklace
var Shop=4 # Номер руны в рунбуке, по которой летим в магазин
var Home=5 # Номер руны в рунбуке, по которой летим домой
var MaxWeight = 500 # Средний вес
var XSunduk=4320 # Координаты по Х перед сундуком
var YSunduk=3780 # Координаты по Y перед сундуком
var ShopList='Necklace' # Название Shoplist'a в закладке Main-> Buy/Sell.
uo.Set('buydelay','1900') # Задержка на продажу. Мне хватало.
uo.Set('maxsell','5') # Сколько Necklace продаём за раз
uo.Set('finddistance','10')
var x,y,k,m,vendor, Xv, Yv
sub main()
uo.AddObject('Runebook')
while uo.Targeting()
wait(100)
wend
Start()
end sub
sub Start()
GetNecklace()
end sub
sub GetNecklace()
while MaxWeight > uo.Weight
uo.FindType(Bag,'-1',Sunduk)
Checklag()
if uo.FindCount() then
uo.moveitem('finditem','1')
wait(750)
end if
if not uo.FindCount(Bag) then
return
end if
wend
RecallShop()
end sub
sub RecallShop()
x = uo.getX('self')
y = uo.getY('self')
Checklag()
uo.UseObject('Runebook')
wait(1000)
uo.LClick(135,Shop*15+55)
wait(1500)
k = 0
while uo.GetX('self') == X and (k<50)
k = k + 1
wait(1000)
wend
uo.Print('Selling...')
Sell()
end sub
sub Sell()
for m = 0 to 1
uo.FindType(Bag,'-1','bakpack')
uo.UseObject('finditem')
wait(750)
uo.Ignore('finditem')
next
uo.FindType(VendorType,'-1','ground')
repeat
Xv=uo.GetX('finditem')
Yv=uo.GetY('finditem')
GotoXY(Xv,Yv)
Checklag()
until (uo.GetX('self') == Xv || uo.GetX('self') == Xv -1 || uo.GetX('self') == Xv +1) && (uo.GetY('self') == Yv || uo.GetY('self') == Yv -1 || uo.GetY('self') == Yv +1)
uo.IgnoreReset()
uo.FindType(Necklace,'-1','my')
while uo.FindCount()
Checklag()
uo.Sell(ShopList)
wait(2300)
uo.FindType(Necklace,'-1','my')
wend
RecallHome()
end sub
sub RecallHome()
x = uo.getX('self')
y = uo.getY('self')
Checklag()
uo.UseObject('Runebook')
wait(1000)
uo.LClick(135,Home*15+55)
wait(1500)
k = 0
repeat
k = k + 1
wait(1000)
until uo.GetX('self') <> X || (k>150)
uo.Print('Get out money...')
GetOutMoney()
end sub
sub GetOutMoney()
GotoXY(XSunduk,YSunduk)
while not uo.Hidden()
uo.UseSkill('Hiding')
wait(3500)
wend
Checklag()
uo.FindType(gold,'-1','backpack')
while uo.FindCount()
uo.moveitem('finditem','all',Sunduk)
wait(750)
uo.FindType(gold,'-1','backpack')
wend
uo.FindType(Bag,'-1','backpack')
while uo.FindCOunt()
uo.moveitem('finditem','all',EmptyBag)
wait(750)
uo.FindType(Bag,'-1','backpack')
wend
Start()
end sub
sub Checklag()
uo.Click('backpack')
repeat
wait(100)
until uo.InJournal('backpack')
end sub
sub GotoXY(x,y)
var myX,myY,lastX=0,lastY=0,i,halt=0,z,r=0
for i=1 to 60
myX=uo.getX();
myY=uo.getY();
if LastX==myX and LastY==myY then
halt=halt+1
else
halt=0
end if
if halt>=10 then
if uo.GetDir()==1 then
for z=0 to 8
uo.Press(40)
next
end if
if uo.GetDir()==3 then
for z=0 to 8
uo.Press(37)
next
end if
if uo.GetDir()==5 then
for z=0 to 8
uo.Press(38)
next
end if
if uo.GetDir()==7 then
for z=0 to 8
uo.Press(39)
next
end if
halt=15
end if
if Numb(x-myX)<=1 and Numb(y-myY)<=2 then
return 1
end if
if x<=myX then
if y<=myY then
for z=0 to 3
uo.Press(38)
next
else
for z=0 to 3
uo.Press(37)
next
end if
else
if y<=myY then
for z=0 to 3
uo.Press(39)
next
else
for z=0 to 3
uo.Press(40)
next
end if
end if
lastX=myX
lastY=myY
wait(200)
next
return 0
end sub
sub Numb(num)
if num>=0 then
return num
else
return num*(-1)
end if
end sub