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
#
var kls=0
var Container='0x4050B366' ;Сундук с ингами
var Containerb='0x402C32D2' ;Сундук с багами
var Unload='0x402BD1E0' ;Куда все кидать
var CountIng=50 ; Сколько ингов брать
var meshok='0x0E76' ;Тип бага)
var smeshok
VAR CraftChest='0x402C32D2'
VAR OreBox = "0x4050B366"
VAR bag='0x0E76'
sub main()
var Exit=0, LastTimer
uo.useobject(Container)
wait(1000)
uo.useobject(Containerb)
wait(1000)
uo.useobject(Unload)
wait(1000)
var MenuIron="'Blacksmithing' 'Weapons'"
var MenuOther="'Colored' 'Weapons'"
var MenuSwords="Weapons' 'Swords'"
var MenuDagger="'Swords' 'Dagger'"
var MenuDagger1="'Swords' 'Dagger'"
var i=0
wait(1000)
dim ColorOfIng[9]
dim NameOre[9]
dim TypeOre[9]
NameOre[0]="' "
NameOre[1]="'Rusty "
NameOre[2]="'Old Copper "
NameOre[3]="'Dull Copper "
NameOre[4]="'Copper "
NameOre[5]="'Bronze "
NameOre[6]="'Silver "
NameOre[7]="'Shadow "
NameOre[8]="'Agapite "
NameOre[9]="'Rose "
TypeOre[0]='0x1BEF' ; Iron
TypeOre[1]='0x1BEF' ; Rusty
TypeOre[2]='0x1BEF' ; Old Copper
TypeOre[3]='0x1BEF' ; Dull Copper
TypeOre[4]='0x1BE3' ; Copper
TypeOre[5]='0x1BEF' ; Bronze
TypeOre[6]='0x1BF5' ; Silver
TypeOre[7]='0x1BEF' ; Shadow
TypeOre[8]='0x1BEF' ; Agarite
TypeOre[9]='0x1BEF' ; Rose
ColorOfIng[0]='0x0000' ; Iron
ColorOfIng[1]='0x0750' ; Rusty
ColorOfIng[2]='0x0590' ; Old Copper
ColorOfIng[3]='0x060A' ; Dull Copper
ColorOfIng[4]='0x0000' ; Copper
ColorOfIng[5]='0x0488' ; Bronze
ColorOfIng[6]='0x0000' ; Silver
ColorOfIng[7]='0x096B' ; Shadow
ColorOfIng[8]='0x0193' ; Agarite
ColorOfIng[9]='0x0014' ; Rose
while not uo.dead()
for i=0 to 9
checklags()
uo.FindType(TypeOre[i],ColorOfIng[i],Container)
if uo.GetQuantity('finditem') > 10 then
uo.cancelmenu()
uo.Exec('automenu '+MenuDagger)
uo.Exec('automenu '+NameOre[i]+MenuSwords)
if i>0 Then
uo.Exec('automenu '+MenuOther)
end if
uo.Exec('automenu '+MenuDagger1)
uo.Exec('automenu '+MenuIron)
bs(TypeOre[i],ColorOfIng[i],NameOre[i])
endif
next
wend
end sub
sub bs(IngType,IngColor,NameOre)
var ext=0,vs,c=0
while ext <> 1
if kls == 0 then
checklags()
UO.UnSetCatchBag()
UO.SetCatchBag(Unload)
wait(2000)
UO.FindType( meshok, -1, Containerb )
if uo.FindCount() > 0 then
UO.Grab('1','finditem')
wait(2000)
smeshok=UO.GetSerial('finditem')
UO.UnSetCatchBag()
wait(2000)
UO.SetCatchBag(smeshok)
else
uo.print("Закончились мешки конец")
uo.exec("terminate all")
endif
kls=kls+1
wait(700)
end if
uo.FindType(IngType,IngColor,'backpack')
if uo.GetQuantity('finditem') < 10 then
checklags()
UO.UnSetCatchBag()
wait(2000)
GetItem(IngType,IngColor,CountIng,Container,'backpack')
uo.FindType(IngType,IngColor,'backpack')
if uo.GetQuantity('finditem') < 10 then
ext=1
wait(1500)
uo.print('Закончились '+NameOre+' инги берем другие')
GetItem(IngType,IngColor,'all','backpack',Container)
else
uo.print('Взяли ' + Str( UO.Count( IngType ) ) + ' ингов')
end if
UO.SetCatchBag(smeshok)
wait(1000)
end if
uo.DeleteJournal()
if ext <> 1 then
checklags()
uo.UseType(IngType)
repeat
wait(100)
until uo.InJournal('put') || uo.InJournal('fail')
endif
if uo.InJournal('put') then
checklags()
kls=kls+1
wait(500)
if kls == 256 then
kls=0
end if
end if
UO.Print('Осталось: ' + Str( UO.Count( IngType ) ) + ' ингов, сделано '+str(kls-1)+' дагеров' )
c=c+1
if c==10 then
c=0
uo.usetype('0x097B')
wait(700)
uo.usetype('0x097B')
wait(1000)
checklags()
uo.print("Spirit Speak...")
uo.useskill ("Spirit Speak")
uo.deletejournal()
repeat
wait(190)
until UO.InJournal("You establish a connection to the netherworld.") or UO.InJournal("You fail your attempt at contacting the netherworld.")
end if
wend
end sub
###########
# GetItem #
###########
sub GetItem(type, color, quantity, where , to)
uo.FindType(type,color,where)
if uo.FindCount() then
uo.moveitem('finditem',quantity,to)
wait(750)
else
return false
endif
end sub
sub checklags()
UO.DeleteJournal()
UO.Click('backpack')
Repeat
wait(700)
Until UO.InJournal('backpack')
end sub
зделаити плиз чтобы если закончилась инги чтобы скрипт перишол на другой скрипт
вот это слово uo.exec('terminate all; exec smelting')
