Essentially this is a two-part macro. Rather than getting stuck in your bags when you hit an uneven stack of herbs/ore, it will skip them and move on to larger stacks further on in your bags. It will also update your current icon to show whichever herb you are milling/prospecting and however much you have left.
FIRST:
MILLING
MILLING MACRO 1
(Can be named whatever you want, and just needs to run once upon login)
Code:
/run function FnH() for i=0,4 do for j=1,GetContainerNumSlots(i) do local t={GetItemInfo(GetContainerItemLink(i,j) or 0)} if t[7]=="Herb" and select(2,GetContainerItemInfo(i,j))>=5 then return i.." "..j,t[1] end end end end
MILLING MACRO 2
Main Milling macro. IT MUST BE TITLED "Milling2" without the quotations
Code:
/run local f,l,n=AuM or CreateFrame("Button","AuM",nil,"SecureActionButtonTemplate") f:SetAttribute("type","macro") l,n=FnH() if l then f:SetAttribute("macrotext","/cast Milling\n/use "..l) SetMacroItem("Milling2",n) end
/click AuM
/use Desecrated Herb
PROSPECTING
Prospecting Macro 1
(Can be named whatever you want, and just needs to run once upon login)
Code:
/run function FnO() for i=0,4 do for j=1,GetContainerNumSlots(i) do local t={GetItemInfo(GetContainerItemLink(i,j) or 0)} if t[7]=="Metal & Stone" and select(2,GetContainerItemInfo(i,j))>4 then return i.." "..j,t[1] end end end end
PROSPECTING MACRO 2
Main Prospecting macro. IT MUST BE TITLED "Prospecting2" without the quotations
Code:
/run local f,l,n=AuP or CreateFrame("Button","AuP",nil,"SecureActionButtonTemplate") f:SetAttribute("type","macro") l,n=FnO() if l then f:SetAttribute("macrotext","/cast Prospecting\n/use "..l) SetMacroItem("Prospecting2",n) end
/click AuP
HEADS UP!!! This works best with Ore that doesn't produce things like heavy stones as it will try to prospect those... so it works perfect with MoP stuff, just maybe not low lvl stuff. Also, it will try to prospect bars, so make sure you don't have any bars in your bags either.