This isn't exactly what you are looking for, but it does make a recipe until you have a certain quantity made. For it to work as I entended it to, you do have to open a merchant window, all your bags be open (or least ones where the items would be autoinventoried, and opened the tradeskill window with item already searched for and selected. Will need to change the "sellthis" variable to whatever you are wanting to count. And then if you don't open the merchant window it will just stop and throw errors in mq window bout not being able to sell.
[CODE title="combinesell.mac"]#event CombineError "#*#There was no place to put that#*#"
#event CombineError "#*#You cannot combine these items in this container type!#*#"
#event CombineError "#*#You are missing#*#"
#event ContUsed "#*#Someone else is using that. Try again later.#*#"
#event CombineError "#*#You have become better at Jewelry Making! (300)#*#"
Sub Main
/declare test string outer
/declare sellthis string outer Mithril Champion Arrows
/declare EndingVar int outer 1
/declare x int local
/if (${Cursor.ID}) {
:auto_inv
/if (${Cursor.Container}) {
/for x 1 to 8
/if (!${InvSlot[pack${x}].Item.Container}) /nomodkey /itemnotify pack${x} leftmouseup
/next x
} else {
/timed 5 /autoinventory
}
/goto :auto_inv
}
:ComboLoop
/autoinventory
/varset test ${FindItemCount[=${sellthis}]}
/if (${test.Equal[1000]}) /call sell
/delay 2
/nomodkey /notify TradeskillWnd CombineButton leftmouseup
/doevents
/delay 2
/nomodkey /notify TradeskillWnd AutoInvButton leftmouseup
/if (${EndingVar}==1) /goto :ComboLoop
/if (${Cursor.ID}) {
:auto_inv
/if (${Cursor.Container}) {
/for x 1 to 8
/if (!${InvSlot[pack${x}].Item.Container}) /nomodkey /itemnotify pack${x} leftmouseup
/next x
} else {
/timed 5 /autoinventory
}
/goto :auto_inv
}
/autoinventory
| /nomodkey /notify TradeskillWnd COMBW_CloseButton Leftmouseup
/return
Sub Event_ContUsed
/echo Container in use. Waiting 1 Minute, or until no PCs are nearby and trying again.
/delay 1m ${SpawnCount[pc radius 50]}<=1
/doevents
/return
Sub Event_CombineError
/varset EndingVar 2
/return
Sub Sell
/if (!${Window[MerchantWnd].Open}) {
/echo You need to have a merchant window open!
/return
}
/if (!${Defined[sellthis]}) {
/echo Proper usage: /macro sellitem ItemName
/end
}
/declare OldMoney int Inner
/call ClearCursor
/if (${sellthis.Equal[NULL]}) /return
/varset test ${FindItemCount[=${sellthis}]}
/if (${test.Equal[1]}) /return
/delay 2s
:Finding
/varset test ${FindItemCount[=${sellthis}]}
/if (${test.Equal[0]}) /return
/if (${FindItemCount[=${sellthis}]}) {
/nomodkey /itemnotify ${FindItem[=${sellthis}].InvSlot} leftmouseup
/delay 5 ${SelectedItem.ID}==${FindItem[=${sellthis}].ID}
/if (${SelectedItem.ID}==${FindItem[=${sellthis}].ID}) {
/delay 1s
/varset OldMoney ${Me.Cash}
/nomodkey /shift /notify MerchantWnd MW_Sell_Button leftmouseup
/delay 2s (${Me.Cash}!=${OldMoney})
}
/goto :Finding
}
/echo No more ${sellthis} to sell!!!
/return
Sub ClearCursor
/declare x int local
:auto_inv
/if (${Cursor.ID}) {
/if (${Cursor.Container}) {
/for x 1 to 8
/if (!${InvSlot[pack${x}].Item.Container}) /nomodkey /itemnotify pack${x} leftmouseup
/next x
} else {
/timed 5 /autoinventory
}
/goto :auto_inv
}
/return [/CODE]