################## # 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='0x4033BF94' ;Сундук с ингами var Containerb='0x4033BF94' ;Сундук с багами var Unload='0x40445312' ;Куда все кидать var CountIng=400 ; Сколько ингов брать var meshok='0x0E76' ;Тип бага) var smeshok
sub main() var Exit=0, LastTimer uo.useobject(Container) wait(500) uo.useobject(Containerb) wait(500) uo.useobject(Unload) wait(500) var MenuIron="'Blacksmithing' 'Weapons'" var MenuOther="'Colored' 'Weapons'" var MenuSwords="Weapons' 'Swords'" var MenuDagger="'Swords' 'Dagger'" var MenuDagger1="'Swords' 'Dagger'"
var i=0
wait(500)
dim ColorOfIng[10] dim NameOre[10] dim TypeOre[10]
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 TypeOre[10]='0x1BEF' ; RoseBlood Rock
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 ColorOfIng[10]='0x04C2' ; Blood Rock
while not uo.dead()
for i=0 to 10 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(1000) UO.FindType( meshok, -1, Containerb ) if uo.FindCount() > 0 then UO.Grab('1','finditem') wait(1000) smeshok=UO.GetSerial('finditem') UO.UnSetCatchBag() wait(1000) 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(1000) GetItem(IngType,IngColor,CountIng,Container,'backpack') uo.FindType(IngType,IngColor,'backpack') if uo.GetQuantity('finditem') < 10 then ext=1 wait(700) 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')