Dragon World. Скрипт на продажу torch и не только.

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Dragon World. Скрипт на продажу torch и не только.

Post by Scripts Writer »

По мере прокачки персонажа, выкладываю написанные скрипты. Думаю кому то будет полезно. Собственно-скрипт на продажу Торчей.
В дальнейшем возможно будет отредактирован для горгеток и никласов.

Code: Select all

# Продажа торчей. Dragon World #
# You Must Die
# Действие скрипта:
# Стоим перед домом. Указав все переменные, запускаем функцию main.
# Указываем прицелом на рунбуку в которой лежат руны по которым будем летать в магазин для продажи торчей и домой для выкладки денег и добора торчей.
# Скрипт набирает торчей на максимальный вес, летит в магазин-продаёт там все имеющиеся торчи. Как только продал -летит к дому.
# Выкладывает деньги, добирает новые торчи и так по циклу.

  var Sunduk='0x401E340D' # Откуда берём торчи, и куда складываем деньги
  var gold='0x0EED' # Тип денег
  var Torch='0x0F64' # Тип торчей
  var MaxWeight=600 # Максимальный вес
  var Shop=7 # Номер руны в рунбуке, по которой летим в магазин
  var Home=2 # Номер руны в рунбуке, по которой летим домой
  var XSunduk=4320 # Координаты по Х перед сундуком
  var YSunduk=3780 # Координаты по Y перед сундуком
  var ShopList='Torch' # Название Shoplist'a в закладке Main-> Buy/Sell. В окне выбора объектов для продажи вписываем: torch , если Bowcraft =100.0% -вписываем torch crafted " ваш ник ".
  var x,y,k
  uo.Set('buydelay','3000') # Задержка на продажу. Мне хватало.

sub main()
  uo.AddObject('Runebook')
  while uo.Targeting()
    wait(100)
  wend
  Start()
end sub

sub Start()
  GetTorches()
end sub

sub GetTorches()
  while MaxWeight > uo.Weight
    uo.FindType(Torch,'-1',Sunduk)
    uo.moveitem('finditem','100')
    wait(750)
    if not uo.FindCount(Torch) then
      return
    end if
  wend
  RecallShop()
end sub

sub RecallShop()
  x = uo.getX('self')
  y = uo.getY('self')
  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()
  uo.FindType(Torch,'-1','backpack')
  while uo.FindCount()
    uo.Sell(ShopList)
    wait(3500)
    uo.FindType(Torch,'-1','backpack')
  wend
  RecallHome()
end sub

sub RecallHome()
  x = uo.getX('self')
  y = uo.getY('self')
  uo.UseObject('Runebook')
  wait(1000)
  uo.LClick(135,Home*15+55)
  wait(1500)
  k = 0
  while uo.GetX('self') == X and (k<50)
    k = k + 1
    wait(1000)
  wend
  uo.Print('Get out money...')
  GetOutMoney()
end sub

sub GetOutMoney()
  GotoXY(XSunduk,YSunduk)
  uo.FindType(gold,'-1','backpack')
  while uo.FindCount()
    uo.moveitem('finditem','all',Sunduk)
    wait(750)
    uo.FindType(gold,'-1','backpack')
  wend
  Start()
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
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

К вечеру перепишу на продажу никласов.
GimFlex
Expert!
Posts: 766
Joined: 2005-01-07 13:22:19
Contact:

Post by GimFlex »

улыбнуло
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Code: Select all

# Продажа 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
Post Reply