То, что ищут многие...

Anything and all.

Moderators: Murderator+, Murderator

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

Post by Scripts Writer »

Подсчет содержимых логов в бекпаке,-мб полезно для дровосеков.
Аналогично с рудой.

Code: Select all


sub Get_Logs_Count()
  var type='0x1BDD'
  var i
  uo.FindType(type,'-1','backpack')
  for i = 0 to uo.FindCount() - 1
    uo.FindType(type,'-1','backpack')
    uo.Click('finditem')
    uo.Print(uo.GetName('finditem'))
    wait(100)
    uo.Ignore('finditem')
  next
  uo.IgnoreReset()
end sub

Code: Select all

sub Get_Logs_Count()
  var type='0x1BDD'
  var i
  uo.FindType(type,'-1','backpack')
  uo.TextClear()  
  for i = 0 to uo.FindCount() - 1
    uo.FindType(type,'-1','backpack')
    uo.Click('finditem')
    uo.Print(uo.GetName('finditem'))
    wait(100)
    uo.TextOpen()
    uo.TextPrint(uo.GetName('finditem'))
    uo.Ignore('finditem')
  next
  uo.IgnoreReset()
end sub
Считаем логи в паке, выдавая их название и кол-во в отдельное окно.


2Считаем руду, которая лежит в вашем backpack'e.

Code: Select all

sub Get_Ore_Count() 

  DIM ore[4] 

  ore[0]='0x19B9' 
  ore[1]='0x19B7' 
  ore[2]='0x19BA' 
  ore[3]='0x19B8' 

  var i , k 
  
uo.TextClear() 
for k = 0 to 3 
  uo.FindType(ore[k],'-1','backpack') 
  for i = 0 to uo.FindCount() - 1 
    uo.FindType(ore[k],'-1','backpack') 
    uo.Click('finditem') 
    uo.Print(uo.GetName('finditem')) 
    wait(100) 
    uo.TextOpen() 
    uo.TextPrint(uo.GetName('finditem')) 
    uo.Ignore('finditem') 
  next 
next 
  uo.IgnoreReset() 
end sub
Last edited by Scripts Writer on 2006-09-28 17:11:15, edited 2 times in total.
Джесси
Posts: 25
Joined: 2006-06-27 16:46:00

Post by Джесси »

Спасибо за скрипт на пойзонинг , у меня ещё один вопрос ...

Code: Select all

sub rezka() 
var dagger='0x0F51' 
  uo.WaitTargetObject('lastcorpse') 
  uo.UseType(dagger) 
  wait(500) 
  uo.FindType('-1','-1','lastcorpse') 
  while uo.FindCount() 
    uo.FindType('-1','-1','lastcorpse')    
    uo.moveitem('finditem','-1','backpack') 
    wait(500) 
  wend 
end sub
Твой скрипт для автолута для моба ...
как его можно переделать , на скрипт , который при киле плеера выдаёт таргет с даггера ( или тайпа режущего вепа ) и лутаёт все обьекты на земле ?
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Code: Select all

sub rezka_loot_from_ground() 
var dagger='0x0F51' 
  uo.Set('finddistance','7')
  uo.WaitTargetObject('lastcorpse') 
  uo.UseType(dagger) 
  wait(500) 
  uo.FindType('-1','-1','ground') 
  while uo.FindCount() 
    uo.FindType('-1','-1','ground')    
    uo.moveitem('finditem','-1','backpack') 
    wait(500) 
  wend 
end sub
Это не лучший скрипт. Советую посмотреть по другим темам, т.к. этот может сбиватся...
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Рекол по руне, в случае появления человека на экране.

Code: Select all

sub Recall() 
var rune = ' ID of your rune ' 
var player
uo.Set('finddistance','15') 
var i 
  DIM people[2] 
  
  people[0]='0x0190' ; Тип male 
  people[1]='0x0191' ; Тип female 

  uo.Ignore('self')
  for i = 0 to 1 
    uo.FindType(people[i],'-1','ground') 
    player = uo.GetSerial('finditem')
    wait(500) 
    if uo.FindCount() then 
      uo.WaitTargetObject(rune) 
      uo.Cast('Recall') 
    else 
      uo.Print('No one has been found ') 
    end if 
  next 
  uo.IgnoreReset() 
end sub
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

На сколько я понимаю, ты режишь труп-он преобразуется в кости которые являются контейнером ?!

Code: Select all

sub LootFromBones()
var Bones=' type '
var dagger=' type '
var i , bonescontainer
 DIM loot[2]

  loot[0]=''
  loot[1]=''

  uo.WaitTargetObject('lastcorpse')
  uo.UseType(dagger)
  uo.FindType(Bones,'-1','ground')
  if uo.FindCount() then
    bonescontainer = uo.GetSerial('finditem')
    uo.UseObject('bonescontainer')
    for i = 0 to 1
      uo.FindType(loot[i],'-1','bonescontainer')
      if uo.FindCount() then
        uo.moveitem('finditem','all')
        wait(750)
      end if
    next
    uo.Print(' There is nothing good in the corpse ')
  else
    uo.Print('You cant find any corpse around yourself')
  end if
end sub  
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

MadUser wrote:
You Must Die wrote:На сколько я понимаю, ты режишь труп-он преобразуется в кости которые являются контейнером ?!

Code: Select all

sub LootFromBones()
var Bones=' type '
var dagger=' type '
var i , bonescontainer
 DIM loot[2]

  loot[0]=''
  loot[1]=''

  uo.WaitTargetObject('lastcorpse')
  uo.UseType(dagger)
  uo.FindType(Bones,'-1','ground')
  if uo.FindCount() then
    bonescontainer = uo.GetSerial('finditem')
    uo.UseObject('bonescontainer')
    for i = 0 to 1
      uo.FindType(loot[i],'-1','bonescontainer')
      if uo.FindCount() then
        uo.moveitem('finditem','all')
        wait(750)
      end if
    next
    uo.Print(' There is nothing good in the corpse ')
  else
    uo.Print('You cant find any corpse around yourself')
  end if
end sub  
Ты все правильно понял, спасибо тебе и респект!
Ок. Пользуйся.
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

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 »

Прокачка Lore & Knowledge для DRW.

Item Identification.

Code: Select all

sub ItemId()
var food='0x097B' # Тип еды
var msg= 'You estimate' # Удачное сообщение использования скила
var fail= 'think of anything off hand' # Неудачное сообщение
var k, a
  uo.AddObject('Item') # Что будем исследовать
  while uo.Targeting()
    wait(100)
  wend
  while not uo.Dead()
    Start:
    wait(3500)
    uo.DeleteJournal()
    k = 0
    uo.WaitTargetObject('Item')
    uo.UseSkill('Item Identification')   
    while not uo.InJournal(msg) and not uo.InJournal(fail) and (k<40)
      CheckLaG()
      wait(100)
      k = k + 1
      if uo.InJournal('must wait') then
        wait(2500)
        goto Start
      end if
    wend
    if uo.InJournal('hungry') or uo.InJournal('starving') then
      uo.FindType(food,'-1','backpack')
      if uo.FindCOunt() then
        for a = 0 to 5
          CheckLaG()
          uo.UseType(food)
          wait(750)
        next
      else
        uo.Print('No food')
      end if
    end if
  wend
end sub

sub CheckLaG()
  uo.CLick('backpack')
  while not uo.InJournal('backpack')
    wait(100)
  wend
end sub
Arms Lore.

Code: Select all

sub ArmsLore()
var food='0x097B'
var msg= 'This item'
var fail= 'You are uncertain'
var save= 'is saving'
var Item='0x4004AF70'
var k, a
  uo.AddObject('Item')
  while uo.Targeting()
    wait(100)
  wend
  while not uo.Dead()
    Start2:
    wait(2500)
    uo.DeleteJournal()
    k = 0
    uo.WaitTargetObject('Item')
    uo.UseSkill('Arms Lore')   
    while not uo.InJournal(msg) and not uo.InJournal(fail) and (k<40)
      CheckLaG()
      wait(100)
      k = k + 1
      if uo.InJournal('must wait') then
        wait(2500)
        goto Start2
      end if
    wend
    if uo.InJournal('hungry') then
      uo.FindType(food,'-1','backpack')
      if uo.FindCount() then
        for a = 0 to 5
          CheckLaG()
          uo.UseType(food)
          wait(750)
        next
      else
        uo.Print('No food')
      end if
    end if
  wend
end sub

sub CheckLaG()
  uo.CLick('backpack')
  while not uo.InJournal('backpack')
    wait(100)
  wend
end sub
Taste Identification

Code: Select all

sub TasteItem()
var food='0x097B'
var msg= 'tastes'
var fail= 'cannot'
var k, a
  uo.AddObject('Item')
  while uo.Targeting()
    wait(100)
  wend
  while not uo.Dead()
    Start:
    wait(3000)
    uo.DeleteJournal()
    k = 0
    uo.WaitTargetObject('Item')
    uo.UseSkill('Taste')   
    while not uo.InJournal(msg) and not uo.InJournal(fail) and (k<40)
      CheckLaG()
      wait(100)
      k = k + 1
      if uo.InJournal('must wait') then
        wait(1000)
        goto Start
      end if
    wend
    if uo.InJournal('hungry') or uo.InJournal('starving') then
      uo.FindType(food,'-1','backpack')
      if uo.FindCOunt() then
        for a = 0 to 5
          CheckLaG()
          uo.UseType(food)
          wait(750)
        next
      else
        uo.Print('No food')
      end if
    end if
  wend
end sub

sub CheckLaG()
  uo.CLick('backpack')
  while not uo.InJournal('backpack')
    wait(100)
  wend
end sub
Last edited by Scripts Writer on 2006-11-10 17:20:30, edited 1 time in total.
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 
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Скрипт на спаринг со слабым нпс,на месте его респа.
Собственно никогда не думал что на дрв втечении 30 минут можно прокачать паринг себе на 40-55% .Оказалось и в самом деле так. Желаю удачи.

Code: Select all

sub Healing()
  var npc='0x0003'
  uo.Set('finddistance','5')
  while not uo.Dead()
    while uo.life < 195
      uo.FindType(npc,'-1','ground')
      while uo.FindCount()
        wait(1000)
        uo.FindType(npc,'-1','ground')
      wend
      uo.bandageself()
      wait(3500)
      Shield()
    wend
    wait(1500)
  wend
end sub

sub Shield()
  var shield='0x1B76'
  uo.FindType(shield,'-1','backpack')
  if uo.FindCount() then
    uo.UseObject('finditem')
  end if
end sub
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

В дальнейшем будет редактироваться. Проверено на Dragon World.
За основу взят скрипт спаринга Destruction'a. Изменено тело.

Code: Select all

sub Training()
var bandage='0x0E21' # Тип бинтов
var washing='0x4043B210' # Тип корыта
var bloody='0x0E20' # Тип кровавых бинтов
# Спаринг 1.00.
  uo.AddObject('opponent')
  while uo.Targeting()
    wait(100)
  wend
  while not uo.Dead()
    if uo.GetHp('opponent') <> uo.GetMaxHp('opponent') then
      uo.WarMode(false)
      Walk(4321,3774)
      while uo.GetHp('opponent') <> uo.GetMaxHp('opponent')
        uo.WaitTargetObject('opponent')
        uo.UseType(bandage)
        wait(3500)
        uo.GetHp('opponent')
      wend
    end if
    if uo.GetHp('self') <> uo.GetMaxHp('self') then
      uo.WarMode(false)
      Walk(4321,3774)
      while uo.GetHp('self') <> uo.GetMaxHp('self')
        uo.WaitTargetObject('self')
        uo.UseType(bandage)
        wait(3500)
      wend
      uo.WaitTargetObject(washing)
      uo.UseType(bloody)
      wait(750)
    end if  
    uo.WarMode(true)
    Shield()   
    uo.Attack('opponent')
    wait(500)
    Walk(4321,3775)
    while (uo.GetHp('opponent') > uo.GetMaxHp('opponent')/2) && (uo.Life > 100)
      wait(500)
    wend
  wend
end sub
    
sub Shield()
  var shield='0x1B76'
  uo.FindType(shield,'-1','backpack')
  if uo.FindCount() then
    uo.UseObject('finditem')
  end if
end sub

sub Walk(x,y) 
go: 
while not uo.getX() == x || not uo.getY() == y 
if not uo.getX() == x then 
if uo.getX() > x then 
uo.press(36) 
else 
uo.press(34) 
endif 
endif 
if not uo.getY() == y && uo.getX() == x then 
if uo.getY() > y then 
uo.press(33) 
else 
uo.press(35) 
endif 
endif 
checklag() 
wend 
checklag() 
if not uo.getX() == x || not uo.getY() == y then 
goto go 
endif 
endsub 
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Code: Select all


###
# В рунбуке по порядку лежат руны с первой до 6ой. Указываем таргетом рунбуку, максимальный вес, сундук, # форжу, настраиваем шоплист
# в котором пишем названия всех рингмайл и чайнмайл предметов которые потом пойдут на переплавку,и        # координаты около дома -рядом
# с форжой и сундуком. Запустили-полетели-купили-вернулись-переплавили-инги убрали-полетели дальше. 
#######
# ymd #
#######
sub main()
var X,Y, Xself , Yself, z ,i, n, k
var MaxWeight = 700 # Your max weight
uo.Set('finddistance','15')
uo.Set('buydelay','3000')

  uo.AddObject('Runebook')
  while uo.Targeting()
    wait(100)
  wend
 
for z = 0 to 1
  for i = 1 to 6 #6 - six runes to shop in runebook (mb changes)
    RecallShop:
    CheckLag()
    uo.UseObject('Runebook')
    wait(1000)
    uo.LClick(135 , i*15+55) # Runebook for DRW
    wait(500)
    Xself = uo.GetX('self')
    Yself = uo.GetY('self')
    repeat
      wait(100)
    until Xself<>uo.GetX('self') and Yself<>uo.GetY('self') 
    uo.Print('Buying ...')
    wait(2550)
    uo.Buy('iron2') #Shop list with chainmail items and ringmail items
    wait(6000)
    CheckLag()
    RecallHome()
  next
  wait(300000) #Pause for respaun
next
end sub

sub RecallHome()
var RuneToHome=7 #Slot in runebook where's rune to home
var Runebook='0x4011A025' #ID of your runebook
var Xself , Yself, k
  RecallHome:
  Xself = uo.GetX('self')
  Yself = uo.GetY('self')
  CheckLag()
  uo.UseObject('Runebook')
  wait(2000)
  uo.LClick(135 , RuneToHome*15+55)
  wait(5000)
  k = 0
  repeat
    uo.Print('Get out an items ...')
    wait(1000)
    k = k + 1
  until Xself<>uo.GetX('self') and Yself<>uo.GetY('self')
  if Xself <> uo.GetX('self') then
    wait(1000)
    SmelthingForIron()
    CheckLag()
  end if
end sub

Sub CheckLag() 
  UO.DeleteJournal() 
  UO.Click('backpack') 
  repeat 
    wait(50) 
  until UO.InJournal('backpack') 
end sub

sub SmelthingForIron() 
uo.Set('findistance','5')
var i 
var Forge='0x400D7F9C' #ID of your forge near house
var Sunduk='0x401E340D'  #ID of a container near house
var ingot='0x1BEF'  #Type of iron ingot

DIM chain[10] 

    chain[0]='0x13EC' #0-9 .Types of ringmail and chainmail items
    chain[1]='0x13F0' 
    chain[2]='0x13BF' 
    chain[3]='0x13BB' 
    chain[4]='0x13EE' 
    chain[5]='0x13EB' 
    chain[6]='0x13BE' 
    chain[7]='0x1B76' 
    chain[8]='0x1411'
    chain[9]='0x1413'

    go(4320,3780,0) # X,Y near forge
    while not uo.Hidden()
      uo.UseSkill('Hiding')
      wait(5000)
    wend
    for i = 0 to 9 
      uo.FindType(chain[i],'-1','backpack') 
      if uo.FindCount() then 
        while uo.FindCOunt()
          uo.FindType(chain[i],'-1','backpack')
          uo.WaitTargetObject('finditem') 
          uo.UseObject(Forge) 
          wait(1000) 
        wend 
      else 
        uo.Print('There are no chainmail armor') 
      end if 
    next
    uo.FindType('0x1BEF','-1','backpack')
    if uo.FindCOunt() then
      uo.moveitem('finditem','all',Sunduk)
      wait(1000)
    end if
    uo.FindType('0x1BEF','-1','ground')
    if uo.FindCOunt() then
      uo.moveitem('finditem','all',Sunduk)
      wait(1000)
    end if
end sub   


Sub go(x,y,k) 
    var kop 
   VAR i 
   VAR dir,ldir,rdir,key,olddir 
   VAR dx,dy,Exit=0 
   VAR CacheLimit=9,CacheIndex="Text" 
   DIM CacheX[10], CacheY[10] 
    
   CacheX[0]="Test" 
   kop=0 
   While Exit<>1    

         dx=x-UO.GetX() 
         dy=y-UO.GetY() 
         If dx==0 AND dy==0 Then 
            Exit=1 
         Endif 
          
            kop=kop+1 
            if kop==15 then 
             Exit=1 
            else 
    
      If dx<>0 AND dy<>0 Then 
         If dx>0 AND dy>0 Then ; GoSE 
            dir=3 
            ldir=2 
            rdir=4 
            key=40 ; DownArrow 
            olddir=UO.GetDir() 
            If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then 
               If olddir==2 Then ; GoNE 
                  dir=1 
                  ldir=0 
                  rdir=1 
                  key=39 ; RightArrow 
                  While UO.GetDir()<>1 
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) 
                  Wend 
               Else ; GoSW 
                  dir=5 
                  ldir=5 
                  rdir=6 
                  key=37 ; LeftArrow 
                  While UO.GetDir()<>5 
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) 
                  Wend 
               Endif 
            Endif 
         Endif 

         If dx>0 AND dy<0 Then ; GoNE 
            dir=1 
            ldir=0 
            rdir=2 
            key=39 ; RightArrow 
            olddir=UO.GetDir() 
            If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then 
               If olddir==0 Then ; GoWN 
                  dir=7 
                  ldir=6 
                  rdir=7 
                  key=38 ; UpArrow 
                  While UO.GetDir()<>7 
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) 
                  Wend 
               Else ; GoSE 
                  dir=3 
                  ldir=3 
                  rdir=4 
                  key=40 ; DownArrow 
                  While UO.GetDir()<>3 
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) 
                  Wend 
               Endif 
            Endif 
         Endif 

         If dx<0 AND dy>0 Then ; GoSW 
            dir=5 
            ldir=4 
            rdir=6 
            key=37 ; LeftArrow 
            olddir=UO.GetDir() 
            If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then 
               If olddir==6 Then ; GoWN 
                  dir=7 
                  ldir=7 
                  rdir=0 
                  key=38 ; UpArrow 
                  While UO.GetDir()<>7 
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) 
                  Wend 
               Else ; GoSE 
                  dir=3 
                  ldir=2 
                  rdir=3 
                  key=40 ; DownArrow 
                  While UO.GetDir()<>3 
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) 
                  Wend 
               Endif 
            Endif 
         Endif 

         If dx<0 AND dy<0 Then ; GoWN 
            dir=7 
            ldir=6 
            rdir=0 
            key=38 ; UpArrow 
            olddir=UO.GetDir() 
            If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then 
               If olddir==0 Then ; GoNE 
                  dir=1 
                  ldir=1 
                  rdir=2 
                  key=39 ; RightArrow 
                  While UO.GetDir()<>1 
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) 
                  Wend 
               Else ; GoSW 
                  dir=5 
                  ldir=4 
                  rdir=5 
                  key=37 ; LeftArrow 
                  While UO.GetDir()<>5 
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) 
                  Wend 
               Endif 
            Endif 
         Endif 
      Endif 
    
      If dx<>0 AND dy==0 Then 
         If dx>0 Then ; GoE 
            dir=2 
            key=34 ; PgDown 
            olddir=UO.GetDir() 
            If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then 
               If olddir==2 Then ; GoSE 
                  dir=3 
                  ldir=3 
                  rdir=4 
                  key=40 ; DownArrow 
                  While UO.GetDir()<>3 
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) 
                  Wend 
               Else ; GoNE 
                  dir=1 
                  ldir=1 
                  rdir=0 
                  key=39 ; RightArrow 
                  While UO.GetDir()<>1 
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) 
                  Wend 
               Endif 
            Endif 
         Endif 
          
         If dx<0 Then ; GoW 
            dir=6 
            key=36 ; Home key 
            olddir=UO.GetDir() 
            If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then 
               If olddir==0 Then ; GoWN 
                  dir=7 
                  ldir=7 
                  rdir=0 
                  key=38 ; UpArrow 
                  While UO.GetDir()<>7 
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) 
                  Wend 
               Else ; GoSW 
                  dir=5 
                  ldir=4 
                  rdir=5 
                  key=37 ; LeftArrow 
                  While UO.GetDir()<>5 
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) 
                  Wend 
               Endif 
            Endif 
         Endif 
      Endif 

      If dx==0 AND dy<>0 Then 
         If dy>0 Then ; GoS 
            dir=4 
            key=35 ; End 
            If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then 
               If olddir==2 Then ; GoSE 
                  dir=3 
                  ldir=2 
                  rdir=3 
                  key=40 ; DownArrow 
                  While UO.GetDir()<>3 
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) 
                  Wend 
               Else ; GoSW 
                  dir=5 
                  ldir=6 
                  rdir=5 
                  key=37 ; LeftArrow 
                  While UO.GetDir()<>5 
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) 
                  Wend 
               Endif 
            Endif 
         Endif 
          
         If dy<0 Then ;GoN 
            dir=0 
            key=33 ; PgUp 
            olddir=UO.GetDir() 
            If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then 
               If olddir==2 Then ; GoNE 
                  dir=1 
                  ldir=1 
                  rdir=2 
                  key=39 ; RightArrow 
                  While UO.GetDir()<>1 
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) 
                  Wend 
               Else ; GoWN 
                  dir=7 
                  ldir=7 
                  rdir=6 
                  key=38 ; UpArrow 
                  While UO.GetDir()<>7 
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) 
                  Wend 
               Endif 
            Endif 
         Endif 
      Endif 
     endif 
   Wend 
   if k==1 then 
    minround() 
   endif 
end sub 


Sub StepEdit(x,y,dir,key) 
   VAR walkwait=300 
   VAR ErrLevel=0 
   If UO.GetDir()<>dir Then 
      UO.Press(key) 
      wait(walkwait) 
      If UO.GetDir()<>dir Then 
         CheckLag() 
      Endif 
   Endif 
   UO.Press(key) 
   wait(walkwait) 
   If x==UO.GetX() AND y==UO.GetY() Then 
      CheckLag() 
      If x==UO.GetX() AND y==UO.GetY() Then 
;zatik 
         ErrLevel=1 
      Endif 
   Endif 
   Return ErrLevel 
end sub 


Sub StepArrow(x,y,dir,ldir,rdir,key) 
   VAR walkwait=300 
   VAR ErrLevel=0 
   If UO.GetDir()<>dir Then 
      UO.Press(key) 
      wait(walkwait) 
      If UO.GetDir()<>dir AND UO.GetDir()<>ldir AND UO.GetDir()<>rdir Then 
         CheckLag() 
      Endif 
   Endif 

   If UO.GetX()==x AND UO.GetY()==y Then 
      UO.Press(key) 
      wait(walkwait) 
      If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then 
         CheckLag() 
         If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then 
; zatik          
            ErrLevel=1 
         Endif 
      Endif 
   Endif 
   Return ErrLevel 
end sub 

Sub CheckLag() 
var ms="attacking you" 
var k=uo.life-uo.str 
    if k*k>1 or uo.injournal(ms) then 
     uo.say("") 
    endif 
   UO.DeleteJournal() 
   UO.Click('backpack') 
   repeat 
      wait(50) 
   until UO.InJournal('backpack') 
end sub 
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Прокачка боевых. Вызываем существо на напарника. DRW.

Code: Select all

sub BladeSP() 
var spell='name of a spell' #name of a spell
var summon='type of a summon' # type of a summon 
var friend=' ID ' #serial of a friend near whom will be cast a creature
var i,k 
uo.Set('finddistance','15') 
  uo.Ignore('self') 
  while not uo.Dead() 
    uo.FindType(summon,'-1','ground') 
    if uo.FindCount() then 
      k = 0 
      while uo.FindCount() 
        wait(1000) 
        uo.FindType(summon,'-1','ground') 
      wend 
    else 
      medit: 
      uo.DeleteJournal() 
      if uo.mana < uo.int then 
        while uo.mana < uo.int 
          uo.UseSkill('Meditation') 
          wait(1000) 
          CheckLag() 
          if uo.InJournal('attemp') then 
            repeat 
              wait(100) 
              if uo.InJournal('lose') then 
                goto medit 
              end if    
            until uo.mana == uo.int  
          else 
            CheckLag() 
            goto medit 
          end if 
        wend 
      end if  
      uo.DeleteJournal() 
      k = 0 
      uo.Cast(spell,friend) 
      repeat 
        wait(100) 
        k = k + 1 
      until uo.InJournal('fizzle') or (k>50) 
    end if 
  wend 
end sub 

sub CheckLag() 
  uo.DeleteJournal('backpack') 
  uo.Click('backpack') 
  repeat 
    wait(100) 
  until uo.InJournal('backpack') 
end sub
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Healing + Meditation with Curse.

Code: Select all

sub Heal_Medit() 
# Edited: 
# 1.mana and life -had been changed to STR and INT for more safety. 
  var STR=195 # You STR withour curse 
  var INT=60 # You INT without curse 
  var item='0x153E' #Type of curse 
  var wash='0x402D878C' #ID where to clean bandage 
  var bloody='0x0E20' #Type of bloody bandage 
  var food='0x097B' # Type of anything to eat 
  var k, i 
  while not uo.Dead() && uo.SkillVal('Meditation',1) < 1000 && uo.SkillVal('Healing',1) < 1000 
    if uo.life < STR && uo.mana < INT then 
      goto Begin 
    end if 
    uo.FindType(item,'-1','backpack') 
    if uo.FindCount() then 
      uo.UseObject('finditem') 
      repeat 
        wait(250) 
        CheckLag() 
      until uo.life <= STR -1 && uo.mana <= INT-1 
      Begin: 
      uo.UnDress() 
      repeat 
        k = 0 
        if uo.life <> STR && uo.mana <> INT then 
          uo.CancelTarget() 
          uo.BandageSelf() 
        else 
          if uo.life <> STR && uo.mana == INT then 
            uo.BandageSelf() 
            wait(3500) 
          end if 
        end if 
        CheckLag() 
        if uo.mana <> INT then 
          uo.UseSkill('Meditation') 
          uo.DeleteJournal() 
          wait(150) 
          repeat 
            wait(100) 
            k = k + 1 
          until uo.InJournal('You are') || uo.InJournal('you lose') || (k>50) 
        end if 
      until uo.life == STR && uo.mana == INT    
      uo.FindType(bloody,'-1','backpack') 
      if uo.FindCount() && uo.GetQuantity('finditem') >= 180 then 
        uo.WaitTargetObject(wash) 
        uo.UseObject('finditem') 
        CheckLag() 
        for i = 0 to 10 
          uo.UseType(food) 
          wait(1000) 
        next 
      end if 
    else 
      if not uo.FindCount() then 
        uo.CloseUo() 
        uo.exec('terminate all')        
      else 
        wait(500) 
      end if 
    end if 
  wend 
end sub

sub CheckLag() 
  uo.DeleteJournal('backpack') 
  uo.Click('backpack') 
  repeat 
    wait(100) 
  until uo.InJournal('backpack') 
end sub
Meditation

Code: Select all

sub MeditationTrain() 
  var INT=60 #Your INT withour curse 
  var item='0x153E' #Type of curse 
  var food='0x097B' #Type of something to eat 
  var k, i, l 
  l=0 
  while not uo.Dead() && uo.SkillVal('Meditation',1) < 1000 
    if uo.mana < INT then 
      goto BeginMedit 
    end if 
    uo.FindType(item,'-1','backpack') 
    if uo.FindCount() then 
      uo.UseObject('finditem') 
      repeat 
        wait(150) 
        CheckLag() 
      until uo.mana <= INT-1 
      BeginMedit: 
      uo.UnDress() 
      repeat 
        k = 0 
        CheckLag() 
        if uo.mana <> INT then 
          uo.UseSkill('Meditation') 
          uo.DeleteJournal() 
          wait(150) 
          repeat 
            wait(100) 
            k = k + 1 
          until uo.InJournal('You are') || uo.InJournal('you lose') || (k>50) 
        end if 
      until uo.mana == INT  
      l=l+1 
      if l>100 then 
        for i=0 to 10 
          uo.UseType(food) 
          wait(1000) 
        next 
        l=0 
      end if      
    else 
      if not uo.FindCount() then 
        uo.CloseUo() 
        uo.exec('terminate all')        
      else 
        wait(500) 
      end if 
    end if 
   wend 
end sub

sub CheckLag() 
  uo.DeleteJournal('backpack') 
  uo.Click('backpack') 
  repeat 
    wait(100) 
  until uo.InJournal('backpack') 
end sub
 

Healing

Code: Select all

sub Healing() 
  var STR=195 #Your STR withour curse 
  var item='0x153E' #Type of curse 
  var wash='0x402D878C' #ID where to clean bandage 
  var bloody='0x0E20' #Type of bloody bandage 
  var food='0x097B' #Type of something to eat 
  var k, i  
  while not uo.Dead() && uo.SkillVal('Healing',1) < 1000 
    if uo.life < STR then 
      goto BeginHeal 
    end if 
    uo.FindType(item,'-1','backpack') 
    if uo.FindCount() then 
      uo.UseObject('finditem') 
      repeat 
        wait(250) 
        CheckLag() 
      until uo.life <= STR -1 
      BeginHeal: 
      uo.UnDress() 
      repeat 
        k = 0 
        if uo.life <> STR then 
          uo.BandageSelf() 
          wait(3500) 
        end if 
      until uo.life == STR  
      uo.FindType(bloody,'-1','backpack') 
      if uo.FindCount() && uo.GetQuantity('finditem') >= 180 then 
        uo.WaitTargetObject(wash) 
        uo.UseObject('finditem') 
        CheckLag() 
        for i = 0 to 10 
          uo.UseType(food) 
          wait(1000) 
        next 
      end if 
    else 
      if not uo.FindCount() then 
        uo.CloseUo() 
        uo.exec('terminate all')        
      else 
        wait(500) 
      end if 
    end if 
  wend 
end sub

sub CheckLag() 
  uo.DeleteJournal('backpack') 
  uo.Click('backpack') 
  repeat 
    wait(100) 
  until uo.InJournal('backpack') 
end sub
 
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Тема закрыта.
[зачем??? omi4]
[Разочаровался в инжекте. Решил перейти на Stealth. YouMustDie]
[Да ну... Ты как поймешь всю сущьность стелса, захочется вернутся... Так шо не жги масты ;) DerMeister]
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Code: Select all

####################
# Качаем Tailoring #
####################

sub Tailoring()
var cloth=0x175D # Type of cloth
var sew=0x404733DB # ID of a sewing kit
var sash=0x1541 # Type of created item(i made body sashes)
var scissors=0x404733DD # Type of anything to cut created items
var bandage=0x0E21 # Type of bandages 
var to=0x401E340D # Where to put bandages and to get clothes
var type1=0x0C77 # Type of food1
var type2=0x0C6D # Type of food2
var k,l 
l=0
  while uo.SkillVal('Tailoring','1') < 1000
    uo.FindType(cloth,'-1','backpack')
    if uo.GetQuantity('finditem') < 20 then
      GetItem(cloth,100,to,'backpack')
    end if
    uo.WaitMenu('Cloth','Misc','Misc','sash') # Menu
    uo.WaitTargetObject('finditem')
    uo.UseObject(sew)
    uo.DeleteJournal()
    k=0
    repeat
      wait(100)
      k=k+1
    until uo.InJournal('put') || uo.InJournal('fail') || k>100
    if uo.InJournal('put') then
      uo.FIndType(sash,'-1','backpack')
      while uo.FIndCount()
        uo.FIndType(sash,'-1','backpack')
        uo.WaitTargetObject('finditem')
        uo.UseObject(scissors)
        wait(750)
      wend
    end if
    CheckLag()
    Move(bandage,'all','backpack',to)
    l=l+1
    if (l>100) then
      EatFood(type1,type2)
      l=0
    end if
  wend
end sub

##########
# Eating #
##########

sub EatFood(carrot , onion)
  var i
  for i=0 to 5
    uo.FindType(carrot,'-1','backpack')
    if uo.FindCOunt() then
      uo.UseObject('finditem')
      wait(750)
    else
      if not uo.FindCount() then
        uo.FindType(onion,'-1','backpack')
        if uo.FindCount() then
          uo.UseObject('finditem')
          wait(750)
        else 
          uo.Print('No food...')
        end if
      end if
    end if
    wait(500)
  next
end sub

###########
# GetItem #
###########

sub GetItem(type, quantity, where , to)
  uo.FindType(type,'-1',where)
  if uo.FindCount() then
    uo.moveitem('finditem',quantity,to)
    wait(750)
  end if
end sub

###############
# Moving item #
###############

sub Move(type,quantity,where,to)
  uo.FindType(type,'-1',where)
  if uo.GetQuantity('finditem') > 100 then
    uo.moveitem('finditem',quantity,to)
    wait(750)
  end if
end sub

############
# CheckLag #
############

sub CheckLag()
  uo.DeleteJournal('backpack')
  uo.Click('backpack')
  repeat 
    wait(100)
  until uo.InJournal('backpack')
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Code: Select all

##################
# Black Smithing #
##################
#
# Ignots on the ground. Smith hammer on the right hand.
# We're standing near a forge, which we'll target and
# near ingots. If you can't find ingots - ,set finddistance 10
# When a quantity of produced item more than 20 -smelthing 
# for ingots.
# 21.12.06 .Tested on shard Dragon World 
#
sub BlackSmithingYMD()
 var IngType=0x1BEF # Type of ignots to smith
 var IngColor=0x0000 # Color of ingots to smith
 var Item=0x1410 # Type of a produced item
 uo.AddObject('Forge')
 while uo.Targeting()
   wait(100)
 wend
  while uo.SkillVal('Blacksmithing','1') < 1000
    uo.DeleteJournal()
    uo.FindType(IngType,IngColor,'backpack')
    if not uo.FindCount() || uo.GetQuantity('finditem') < 50 then
      GetItem(IngType,IngColor,500,'ground','backpack')
    end if
    uo.WaitMenu('Black','Armor','Armor','Plate','Plate','arms') # Change
    uo.UseObject('finditem')
    repeat
      wait(100)
    until uo.InJournal('put') || uo.InJournal('fail')
    if uo.InJournal('put') then
      uo.FindType(Item,'-1','backpack')
      if uo.FindCount() > 20 then
        while uo.FindCount()
          uo.WaitTargetObject('finditem')
          uo.UseObject('Forge')
          wait(750)
          uo.FindType(Item,'-1','backpack')
        wend
      end if
      wait(50)
    end if
  wend
end sub

########### 
# GetItem # 
########### 

sub GetItem(type, color, quantity, where , to) 
  uo.FindType(type,'-1',where) 
  if uo.FindCount() then 
    uo.moveitem('finditem',quantity,to) 
    wait(750) 
  end if 
end sub 
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

Code: Select all

##############################
# Alchemy. Craft Cure potion #
##############################
# When you'll create a potion-script'll drink it. 
sub AlchemyYMD()
var reg=0x0F84 # Type of reagent (Garlick )
var potion=0x0F0E # Type of produced potion (Cure )
var cpotion=0x09A6 # Color of produced potion ( Cure )
var sunduk=0x401E340D # ID of a container with your reagent
var k
  while NOT UO.Dead()
    uo.FindType(reg,0x0000,'backpack')
    if uo.GetQuantity('finditem') > 50 then
      uo.DeleteJournal()
      k=0
      UO.WaitMenu('What sort of potion do you want to','(2)') #Menu  
      uo.UseType(reg)
      repeat
        wait(100)
        k = k + 1
      until uo.InJournal('pour) || uo.InJournal('toss') || k>500
      uo.findtype(potion,cpotion,'backpack') 
      if uo.FindCount() then
        uo.UseObject('finditem')
        wait(500)
      end if
    else
      uo.FindType(reg,0x0000,sunduk)
      if uo.FindCOunt() then
        uo.moveitem('finditem','500')
        wait(500)
      end if
      wait(50)
    end if
  wend
end sub
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

DRW. Лут драконов( вирм, виверн ). Собирает многочисленные камушки, сердца, некоторые скролы.

Code: Select all

###########################
# L o o t   d r a g o n s #
###########################

sub LootDragons()
 
  DIM loot[30]
  
  loot[0]='0x0E34'
  loot[1]='0x0E34'
  loot[2]='0x0F82'
  loot[3]='0x0EED'
  loot[4]='0x0F91'
  loot[5]='0x1F52'
  loot[6]='0x1F40'
  loot[7]='0x1F66'
  loot[8]='0x1F5F'
  loot[9]='0x0F15'
 loot[10]='0x0F25'
 loot[11]='0x0F2A'
 loot[12]='0x0F16'
 loot[13]='0x0F26'
 loot[14]='0x0F10'
 loot[15]='0x0F12'
 loot[16]='0x0F1F'
 loot[17]='0x0F1A'
 loot[18]='0x0F1C'
 loot[19]='0x0F24'
 loot[20]='0x0F2F'
 loot[21]='0x0F28'
 loot[22]='0x0F2C'
 loot[23]='0x0F10'
 loot[24]='0x0F23'
 loot[25]='0x0F11'
 loot[26]='0x0F2B'
 loot[27]='0x0F22'
 loot[28]='0x0F13'
 loot[29]='0x1F5B'
  var i
  var weapon=0x4038601C
  
  uo.WaitTargetObject('lastcorpse')
  uo.UseObject(weapon)
  wait(500)
  uo.UseObject('lastcorpse')
  for i = 0 to 29
    uo.FindType(loot[i],'-1','lastcorpse')
    if uo.FindCount() then
      uo.MoveItem('finditem')
      wait(750)
    end if
    wait(50)
  next
end sub
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

DRW. Качаем поизонинг и алхимию. На полу нс, бутылки. В сумке вещь которую травим.

Code: Select all

###################
# Skill Poisoning #
###################

sub Poison_Train()
  var bottle=0x0F0E
  var ns=0x0F88 # Type of reagent
  var weapon=0x4044A731 #ID of item to poison
  var poisonc=0x0998 #Color of poison bottle
  var mortar=0x0E9B
  var msg1='put'
  var msg2='toss'
  var msg3='fail'
  var msg4='You apply'
  var k,alchinstr

  uo.Set('finddistance','5')
  uo.FindType(mortar,'-1','backpack')
  if uo.FindCount() then
    alchinstr=uo.GetSerial('finditem')
    wait(500)
  end if
  while not uo.Dead()
    uo.FindType(ns,'0x0000','backpack')
    if uo.GetQuantity('finditem') < 100 || not uo.FindCount() then
      uo.FindType(ns,'0x0000','ground')
      if uo.FindCount() then
        uo.moveitem('finditem','500')
        wait(750)
      end if
    end if
    wait(50)
    uo.FindType(bottle,'0x0000','backpack')
    if uo.GetQuantity('finditem') < 10 || not uo.FindCount() then
      uo.FindType(bottle,'0x0000','ground')
      if uo.FindCount() then
        uo.moveitem('finditem','100')
        wait(750)
      end if
    end if
    wait(100)
    k=0
    uo.DeleteJournal()
    uo.WaitMenu('What','Deadly') #Menu
    uo.WaitTargetType(ns)
    uo.UseObject(alchinstr)
    CheckLag()
    repeat
      wait(100)
      k = k + 1
    until uo.InJournal(msg1) || uo.InJournal(msg2) || (k>200)
    wait(100)
    if uo.InJournal(msg1) then
      uo.FindType(bottle,poisonc,'backpack')
      uo.WaitTargetObject(weapon,'finditem')
      uo.UseSkill('Poisoning')
      uo.DeleteJournal()
      k=0
      CheckLag()
      repeat
        wait(100)
        k=k+1
      until uo.InJournal(msg3) || uo.InJournal(msg4) || (k>200)
      wait(50)
    end if
    wait(500)
  wend
end sub
    
Post Reply