Code: #ABAIXO: Limite das coordenadas (.where), Se passar do limite o char volta var limitW = 0 #LIMIT X de WEST (lefta) var limitE = 0 #LIMIT X de EAST (right) var limitN = 0 #LIMIT Y de NORTH (top) var limitS = 1600 #LIMIT Y de SOUTH (bottom)
var passos = 4 #NUMBER OF TILES TO WALK AFTER MINE AROUND var volta = 6 #NUMERO TILES TO WALKBAC AFTER CROSS A LIMIT var peso = 360 #WEIGHT TO GO BANK
#CHOSE 0 Banker at mine | 1 to recall to bank | 2 to recall to your container var guardar = 1 #MODE Banker at Mine/Recall to banker/Recall to your container
var bau = 'bau' #CONTAINER qwith your ores var runemina = 'runebook 9' #RUNE Runebook and number of Rune of Mine var runeguardar = 'runebook 3' #RUNE Runebook and number of Rune of Banker or your Container var tent1 = 3 #TRYS to BEFORE GO TO ANOTHER TILE TO MINE var tent2 = 2 #TRYS EXTRASto BEFORE GO TO ANOTHER TILE TO MINE IF YOU GOT AN ORE AT THIS TILE #(ANTI-"BUG" i you got no skill to mine some ore )
#MENSAGENS: var outro = 'Tente miner|You cann|O alvo|Nao ha|Skill M|Voce nao' #MSG to go to another tile var pegou = 'You put' #MSG when you found an ore var falha = 'Voce nao con' #MSG when you fail to get a ore var bank = 'You have' #MSG when you have open you bank
var orefora = 'Iron' #NAME OF ORES TO DROP var orepular= 'Ceramic|Silver' #NAME TO ORES TO IGNORE WHEN YOU FOUND IT
var try
sub mining() ; By ChavinhO (para Mina de Minoc DMS) var x,y,ore,asd=1 uo.charprint('0x0045','Iniciando macro...') pickaxe() while uo.findcount('pickaxe')==0 or uo.getquantity('pickaxe')==0 for x = -2 to 2 for y = -2 to 2 if (uo.weight >= peso) then guardarores() endif if ( num(x) + num(y) ) < 4 and ( num(x) + num(y) ) > 0 then ore=0 try=0 repeat UO.DeleteJournal() uo.waittargettile('#0x400', str(uo.GetX() + x), str(uo.GetY() + y), STR(UO.GetZ())) uo.useobject('pickaxe') repeat wait(30) until UO.InJournal( outro+ '|' +pegou ) if UO.InJournal( pegou ) then ore=1 ore() endif if uo.injournal( falha ) then try=try+1 endif until UO.InJournal( outro ) or (try>=tent1 and ore==0) or try>=tent1+tent2 endif next next walk() wend end sub
sub ore() var l, c, n , j, lm if UO.InJournal( orepular+ '|' +orefora ) then if UO.InJournal( orefora ) then j=1 endif try=100 endif uo.ignorereset() uo.findtype('-1','-1','backpack') l=uo.findcount('finditem')-1 while l>0 uo.ignore('finditem') uo.findtype('-1','-1','backpack') l=l-1 wend uo.findtype('-1','-1','backpack') if j==1 then UO.MoveItem('finditem','-1','ground') else lm=UO.LastMessage() uo.click('finditem') repeat wait(1) until UO.LastMessage()<>lm c=uo.getcolor('finditem') n=uo.getname('finditem') uo.charprint(c,n) endif uo.charprint('0x1152','Peso: ' +str(uo.weight)+ '(' +str(peso)+ ')') uo.ignorereset() endsub
sub pickaxe() if uo.count('0x0E85')>0 then uo.addobject('pickaxe','_0x0E85') uo.useobject('backpack') return endif if uo.count('0x0E86')>0 then uo.addobject('pickaxe','_0x0E86') uo.useobject('backpack') return endif uo.charprint('0x0022','Voce nao tem Pickaxe!') endsub
sub walk() var cl,lastdir,py=UO.GetY(),px=UO.GetX(),d ,t dim DIR[8] DIR[0] = 33 DIR[1] = 39 DIR[2] = 34 DIR[3] = 40 DIR[4] = 35 DIR[5] = 37 DIR[6] = 36 DIR[7] = 38 repeat t=passos d=UO.Random(8) py=UO.GetY() px=UO.GetX() while t>0 if uo.getdir()<>d then uo.press(DIR[d]) endif wait(35) uo.press(DIR[d]) t=t-1 if (UO.GetX() < limitW) or (UO.GetX() > limitfix(limitE)) or (UO.GetY() < limitN) or (UO.GetY() > limitfix(limitS)) then if uo.getdir()>3 then d=uo.getdir()-4 else d=uo.getdir()+4 endif t=volta endif wend until (px <> UO.GetX()) or (py <> UO.GetY()) endsub
sub limitfix(x) if x==0 then return 10000 endif return x endsub
Sub num(X) if X>0 then return X else return (-X) end if end sub
sub GuardarOres() if guardar==0 then oresbank() else recall('recall '+runeguardar) oresbank() recall('recall '+runemina) endif endsub
sub recall(runa) var timer=uo.timer() + 80 var px=uo.getx('self'),py=uo.gety('self') uo.exec(runa) while px==uo.getx('self') and py==uo.gety('self') if uo.timer() >= timer then uo.useskill('Meditation') recall(runa) endif wait(5) wend endsub
sub oresbank() var n,b,l=0,lm,i DIM ID[12] ID[1]='0x19B9' ID[2]='0x19B8' ID[3]='0x19BA' ID[4]='0x19B7' ID[5] = '0x0F16' ID[6] = '0x0F10' ID[7] = '0x0F0F' ID[8] = '0x0F18' ID[9] = '0x0F26' ID[10] = '0x0F11' ID[11] = '0x0F15' ID[12] = '0x0F13' uo.deletejournal() if guardar==2 then uo.useobject(bau) b=uo.getserial('bau') else uo.msg('bank') repeat wait(5) until uo.injournal( bank ) b=uo.getserial('lastcontainer') endif For i=1 To 12 while uo.count(ID[i]) > 0 UO.FindType(ID[i],'-1','backpack') while not uo.ContainerOF('finditem')==b UO.moveitem('finditem','-1',b) wait(5) wend wend Next uo.textclear() uo.ignorereset() uo.deletejournal() For i=1 To 4 uo.findtype(ID[i],'-1',b) l=uo.findcount('finditem') while l>0 lm=UO.LastMessage() uo.click('finditem') repeat wait(1) until UO.LastMessage()<>lm n=uo.getname('finditem') uo.exec('showjournal 1') uo.ignore('finditem') uo.findtype(ID[i],'-1',b) l=l-1 wend next end sub
|