Скрипт на ковку фулов + раскладка по мешкам.

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

############################
# edited by Scripts Writer #
# 14.07.07                 #
#####################################
# Script for skill Black Smithing.  #
# Create full armor and then        #
# put them into bags.               #
#####################################
# Find ignots into backpack. If it's found and quantity
# more than 150 then it would start to smith a full armor.
# Before creating every full armor item, it'll be check ingots.
# If the quantity of ignots less than 150, it'll find it on the ground
# near your character and get up 300 ingots if it would be found.
# 
# Script look at journal to find true message for each full armor 
# item , and recreate it if it would be "fail".
#
# When full armor will be created, script'll start function putitem()
# It takes a bag from the first container,put here created items, and put it
# into the second container. Repeat , until ingots could be found.
#####################################
#
# Delay -delay before creating items
# ing -type of ingots
# IngName -name of ingots
# bag -type of bags where to put created items
# Bag2 -ID of a second container
# CurrentBag -ID of a first container
#
#Array with types of created items
# full[0]=0x1413
# full[1]=0x1415
# full[2]=0x1411
# full[3]=0x1412
# full[4]=0x1410
# full[5]=0x1414
#
# i,meshok -local variables without obvious initialization
#####################################
sub Blacksmithing_Full_Rusty() 
bsarm("Rusty",'0x1BEF') 
end sub 

sub Blacksmithing_Full_Old_Copper() 
bsarm("Old Copper",'0x1BEF') 
end sub 

sub Blacksmithing_Full_Copper() 
bsarm("Copper",'0x1BE3') 
end sub 

sub Blacksmithing_Full_Dull_Copper() 
bsarm("Dull Copper",'0x1BEF') 
end sub 

sub Blacksmithing_Full_Silver() 
bsarm("Silver",'0x1BF5') 
end sub 

sub Blacksmithing_Full_Gold() 
bsarm("Golden",'0x1BE9') 
end sub 

sub Blacksmithing_Full_Shadow() 
bsarm("Shadow",'0x1BEF') 
end sub 

sub Blacksmithing_Full_Rose() 
bsarm("Rose",'0x1BEF') 
end sub 

sub Blacksmithing_Full_Agapite() 
bsarm("Agapite",'0x1BEF') 
end sub 

sub Blacksmithing_Full_Blood_Rock() 
bsarm("Blood Rock",'0x1BEF') 
end sub 

sub Blacksmithing_Full_Verite() 
bsarm("Verite",'0x1BEF') 
end sub 

sub Blacksmithing_Full_Valorite() 
bsarm("Valorite",'0x1BEF') 
end sub 

sub Blacksmithing_Full_Mytheril() 
bsarm("Mytheril",'0x1BEF') 
end sub 

sub Blacksmithing_Full_Black_Rock() 
bsarm("Black Rock",'0x1BEF') 
end sub 

sub Blacksmithing_Full_Obsidian() 
bsarm("Obsidian",'0x1BEF') 
end sub 

sub Blacksmithing_Full_Plutonium() 
bsarm("Plutonium",'0x08AF') 
end sub 

sub bsarm(IngName,ing) 

  uo.Set('finddistance','3') 
  var Delay=3000 
  
while not uo.Dead() 
  TestIng(IngName,ing) 
    
  UO.cancelmenu() 

  UO.AutoMenu(IngName+' Plate','Platemail (25') 
  UO.AutoMenu(IngName+' Armor','Plate') 
  UO.AutoMenu('Colored','Armor') 
  UO.AutoMenu('Blacksmithing','Colored') 

Plate:
  TestIng(IngName,ing)
  UO.DeleteJournal() 
  UO.UseType(ing) 

  while NOT UO.InJournal("You put") AND NOT UO.InJournal("You have failed") 
    wait(500) 
  wend 
  if UO.InJournal("You have failed") then 
    goto Plate 
  endif 

  UO.CancelMenu() 
  wait(Delay) 

  UO.AutoMenu(IngName+' Plate','Platemail Legs') 
  UO.AutoMenu(IngName+' Armor','Plate') 
  UO.AutoMenu('Colored','Armor') 
  UO.AutoMenu('Blacksmithing','Colored') 

Legs:
  TestIng(IngName,ing)
  UO.DeleteJournal() 
  UO.UseType(ing) 

  while NOT UO.InJournal("You put") AND NOT UO.InJournal("You have failed") 
    wait(500) 
  wend 
  if UO.InJournal("You have failed") then 
    goto Legs 
  endif 

  UO.CancelMenu() 
  wait(Delay) 

  UO.AutoMenu(IngName+' Plate','Platemail Arms') 
  UO.AutoMenu(IngName+' Armor','Plate') 
  UO.AutoMenu('Colored','Armor') 
  UO.AutoMenu('Blacksmithing','Colored') 

Arms:
  TestIng(IngName,ing)
  UO.DeleteJournal() 
  UO.UseType(ing) 

  while NOT UO.InJournal("You put") AND NOT UO.InJournal("You have failed") 
    wait(500) 
  wend 
  if UO.InJournal("You have failed") then 
    goto Arms 
  endif 
  UO.CancelMenu() 
  wait(Delay) 

  UO.AutoMenu(IngName+' Plate','Platemail Gauntlets') 
  UO.AutoMenu(IngName+' Armor','Plate') 
  UO.AutoMenu('Colored','Armor') 
  UO.AutoMenu('Blacksmithing','Colored') 

Gloves: 
  TestIng(IngName,ing)
  UO.DeleteJournal() 
  UO.UseType(ing) 

  while NOT UO.InJournal("You put") AND NOT UO.InJournal("You have failed") 
    wait(500) 
  wend 
  if UO.InJournal("You have failed") then 
    goto Gloves 
  endif 

  UO.CancelMenu() 
  wait(Delay) 

  UO.AutoMenu(IngName+' Plate','Plate Helm') 
  UO.AutoMenu(IngName+' Armor','Plate') 
  UO.AutoMenu('Colored','Armor') 
  UO.AutoMenu('Blacksmithing','Colored') 

Helm: 
  TestIng(IngName,ing)
  UO.DeleteJournal() 
  UO.UseType(ing) 

  while NOT UO.InJournal("You put") AND NOT UO.InJournal("You have failed") 
    wait(500) 
  wend 
  if UO.InJournal("You have failed") then 
    goto Helm 
  endif 

  UO.CancelMenu() 
  wait(Delay) 
    
  UO.AutoMenu(IngName+' Plate','Platemail Gorget') 
  UO.AutoMenu(IngName+' Armor','Plate') 
  UO.AutoMenu('Colored','Armor') 
  UO.AutoMenu('Blacksmithing','Colored') 

Gorget: 
  TestIng(IngName,ing)
  UO.DeleteJournal() 
  UO.UseType(ing) 

  while NOT UO.InJournal("You put") AND NOT UO.InJournal("You have failed") 
    wait(500) 
  wend 
  if UO.InJournal("You have failed") then 
    goto Gorget 
  endif 

  UO.CancelMenu() 
  wait(Delay) 

  UO.AutoMenu(IngName+' Plate','Heater') 
  UO.AutoMenu(IngName+' Armor','Plate') 
  UO.AutoMenu('Colored','Armor') 
  UO.AutoMenu('Blacksmithing','Colored') 


putitem()

  CheckLag() 
wend 
end sub 

Sub TestIng(IngName,ing)
  UO.FindType(ing,'-1','backpack') 
  if UO.GetQuantity('finditem')<=150 then 
    UO.FindType(ing,'-1','ground')
    if uo.GetQuantity('finditem') >100 then
      uo.moveitem('finditem','300','backpack')
      wait(1000)
    end if
  end if
end sub

sub putitem()

var i
var bag=0x0E76
var Bag2=0x4028ED32
var CurrentBag=0x403648C1

DIM full[6]

full[0]=0x1413
full[1]=0x1415
full[2]=0x1411
full[3]=0x1412
full[4]=0x1410
full[5]=0x1414

  var meshok
  uo.FindType(bag,'-1',CurrentBag)
  if uo.FindCount() then
    meshok=uo.GetSerial('finditem')
    uo.moveitem('finditem','all','backpack')
    wait(1000)
  end if
  uo.UseObject(meshok)
  wait(500)
 for i=0 to 5
  UO.FindType(full[i],'-1','backpack') 
  if uo.FindCount() then 
    uo.moveitem('finditem','-1',meshok)
    wait(1000)
    CheckLag() 
  end if 
 next
 wait(500)
 uo.moveitem(meshok,'-1',Bag2)
 wait(500)
end sub 

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

Post Reply