Added wait timer if you have lag. Added jump action if you are milling longer than 1 minute, so you don't go AFK.
I got some problem with it, it dont seem to mill some herb, example, i got 220 Sansam, but its just say finnish in honorbuddy window. And The herb it does mill, it mills some, then the whole honorbuddy freeze. I tried to press the scroll window of the milling plugin, but after a while it just flip and be preses the scroll alot of times. Any idea?
Raise the wait time. And for easy working, be sure you have all stacks of 20 and keep the lower stack at the end in your bags.
here's a list from AllRounder, i couldn't tell where the list internally was, so here's a copy, i had to add a few to the list over time, so here's an Updated (tm) version. i usually end up vendoring the rare pigments and inks below cataclysm level, even the old icy pigment/snowfall ink, no sales, and you only get the odd numbers of pigments. Code: public static void milling() { foreach (WoWItem item in Me.BagItems) { List<uint> HerbList = new List<uint> { //Classic Herbs // Alabaster (ivory & moonglow) 2449, //Earthroot 2447, //Peacebloom 765, //Silverleaf // Dusky & Verdant (Midnight / Hunter's) 785, //MageRoyal 2450, //Briarthorn 2453, //Bruiseweed 3820, //Stranglekelp 2452, //Swiftthistle // Golden & Burnt (Lion's / Dawnstar) 3369, //Grave Moss 3356, //Kingsblood 3357, //Liferoot 3355, //Wild Steelbloom // Emerald & Indigo (Jadefire / Royal) 3819, //Dragonsteeth 3818, //Fadeleaf 3821, //Goldthorn 3358, //Khadgar's Whisker // Violet & Ruby (Celestial / Fiery) 8836, //Arthas Tear 8839, //Blindweed 4625, //Firebloom 8846, //Gromsblood 8831, //Purple Lotus 8838, //Sungrass 8845, //Ghost Mushroom //Silvery & Sapphire (Shimmering / IOfThe Sky) 13463, //Dreamfoil 13464, //Golden Sansam 13467, //Icecap 13465, //Mountain Silversage 13466, //Sorrowmoss // BC Herbs // Nether & Ebon (Ethereal / Darkflame) 22790, //Ancient Lichen 22785, //Felweed 22786, //Dreaming Glory 22793, //Mana Thistle 22791, //Netherbloom 22792, //Nightmare vine 22787, //Rageveil 22789, //Terocone //WOTLK Herbs // Azure & Icy (IOfThe Sea / Snowfall) 36907, //Talandra's Rose 36903, //Adder's Tongue 36906, //Icethorn 36904, //Tiger Lily 36905, //Lichbloom 36901, //Goldclover 39970,//Fire Leaf 37921,//Deadnettle //Cata Herbs // Ashen & Burning (Blackfallow / Inferno) 52983,//Cinderbloom 52987,//Twilight Jasmine 52984,//Stormvine 52986,//Heartblossom 52985,//Azshara's Veil 52988,//Whiptail //MoP Herbs // Shadow & Misty (Dreams / Starlight) 72234,//Green Tea Leaf 79010,//Snow Lily 72235,//Silkweed 72237,//Rain Poppy 79011,//Fool's Cap 89639,//Desecrated Herb }; while (HerbList.Contains(item.Entry) && item.StackCount >= 5 && item.BagSlot != -1) { WoWMovement.MoveStop(); Thread.Sleep(250); Logging.Write(Colors.RoyalBlue, "[Milling]:Milling {0} I have {1}", item.Name, NumOfItemsInBag(item.Entry)); SpellManager.Cast(51005); Lua.DoString(string.Format("UseContainerItem({0}, {1})", item.BagIndex + 1, item.BagSlot + 1)); Thread.Sleep(2500); } if (StyxWoW.Me.FreeNormalBagSlots <= 2) { Logging.Write(Colors.Red, "Stopping Because Free Bagspace"); break; } } and here's one for the inks, which requires a bit of space management as well. Code: public static List<uint> _Inklist = new List<uint> { // INKS 39151, //Alabaster Pigment 39334, //Dusky Pigment 43103, //Verdant Pigment 39338, //Golden Pigment 43104, //Burnt Pigment 39339, //Emerald Pigment 43105, //Indigo Pigment 39340, //Violet Pigment 43106, //Ruby Pigment 39341, //Silvery Pigment 43107, //Sapphire Pigment 39342, //Nether Pigment 43108, //Ebon Pigment = Pig16 39343, //Azure Pigment 43109, //Icy Pigment 61979, //Ashen Pigment 61980, //Burning Embers 79253, //Misty Pigment = Pig17 79251, //Shadow Pigment = Pig18 }; here's the excerpt from Allrounder for how it manages ink creation, it doesn't use nested loops, so it can be made smaller with dictionaries & lists (or arrays) (but i'm terrible with C# ) and, to be honest, i have no idea why Allrounder uses this line (i have a feeling it's redundant) in the ink production, Lua.DoString(string.Format("UseContainerItem({0}, {1})", item.BagIndex + 1, item.BagSlot + 1)); because as far as i can tell, there's nothing that happens if you "use" the pigment, it just puts the current pigment into the bank or vendor to sell. From experience, it does. Code: public static void Inkingspell() { foreach (WoWItem item in StyxWoW.Me.BagItems) { if (_Inklist.Contains(item.Entry)) { if (item.Entry == 39343 && item.StackCount >= 2) { WoWMovement.MoveStop(); Thread.Sleep(250); while (NumOfItemsInBag(item.Entry) >= 2) { WoWSpell Pig = WoWSpell.FromId(57715); SpellManager.Cast(Pig); Logging.Write(Colors.Purple, "[Inking]:Inking {0} I have {1}", item.Name, NumOfItemsInBag(item.Entry)); // Lua.DoString(string.Format("UseContainerItem({0}, {1})", item.BagIndex + 1, item.BagSlot + 1)); Thread.Sleep(2500); } here's some Dictionaries, to link the SpellID to cast for each ink, linked to the item.Entry. Code: { public static Inks // dictionary (uint Item, uint SpellID) { // INKS // this dictionary can be used inside the loop for Item.Entry and SpellManager.Cast() to save code. [39151, 52738}, //"Alabaster Pigment" {39334, 53462}, //"Dusky Pigment" {43103, 57703}, //"Verdant Pigment" {39338, 57704}, //"Golden Pigment" {43104, 57706}, //"Burnt Pigment" {39339, 57707}, //"Emerald Pigment" {43105, 57708}, //"Indigo Pigment" {39340, 57709}, //"Violet Pigment" {43106, 57710}, //"Ruby Pigment" {39341, 57711}, //"Silvery Pigment" {43107, 57712}, //"Sapphire Pigment" {39342, 57713}, //"Nether Pigment" {43108, 57714}, //"Ebon Pigment" {39343, 57715}, //"Azure Pigment" {43109, 57716}, //"Icy Pigment" {61979, 86004}, //"Ashen Pigment" {61980, 86005}, //"Burning Embers" {79253, 111646}, //"Misty Pigment" {79251, 111645}, //"Shadow Pigment" } } public var Pigments = new Dictionary<int, string> { // for reference use, and logging of data. {39151, "Alabaster Pigment"}, {39334, "Dusky Pigment"}, {43103, "Verdant Pigment"}, {39338, "Golden Pigment"}, {43104, "Burnt Pigment"}, {39339, "Emerald Pigment"}, {43105, "Indigo Pigment"}, {39340, "Violet Pigment"}, {43106, "Ruby Pigment"}, {39341, "Silvery Pigment"}, {43107, "Sapphire Pigment"}, {39342, "Nether Pigment"}, {43108, "Ebon Pigment"}, {39343, "Azure Pigment"}, {43109, "Icy Pigment"}, {61979, "Ashen Pigment"}, {61980, "Burning Embers"}, {79253, "Misty Pigment"}, {79251, "Shadow Pigment"}, };
SVN to latest version. I changed the GUI and after a 1st test, it was working nice. So, test it out and let me know if you want something more. You can choose all the herbs you want to mill. So, it will not mill herbs that worth alot on the AH (GoldThorn for example). Herbs you want to keep, let it on false. I tested with a few herbs, need testers with alot of herbs
I'll give it a whirl, but seriously it needs a tickbox to mill everything, I if am stupid enough to mill valuable herbs then it's my fault, not yours, picking them one by one means I have to pay attention, I just wanna go away and do something else while all my herbs get milled. G
With the new version you can check everything. Put everything on true and he will mill all your herbs and you still have the option to put some herbs on false to keep them.