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