I wanted a utility to click my Cauldron of Many Things such as Cauldron, and used it for quite a while. But then I decided to expand it a bit to click other items I had in inventory to produce different things that I might need/want. I also wanted to combine it with training myself to tolerate alcohol. This is the result. any many thanks to TreeHugginDruid for the start!
Rich (BB code):
#turbo
#include spell_routines.inc
#Event BagsFull "#*#There was no place to put that!#*#"
#Event BagsFull "#*#There are no open slots for the held item in your inventory.#*#"
#Event LoreItem "#*#You cannot loot this Lore Item.#*#"
#Event Camping "#*#seconds to prepare your camp."
#Event BoozeItUp "#*#You have become better at Alcohol Tolerance#*#"
|--------------------------------------------------------------------------------
| MAIN
|--------------------------------------------------------------------------------
Sub Main
|-- THINGS YOU NEED TO CHANGE!!
|--
|-- If you use this macro, modify:
|--
|-- The values in the Clickies array to be items you want to click to
|-- produce objects
|--
|-- The values in the ItemsToDestroy array to be items you do not want
|-- once they are produced or to limit the quantity of produced items
|--
|-- The value of the cDrink variable to be the item you wish to consume
|-- while training to drink alcohol
|-- declare an array of all items to click and the quantities.
|--
|-- Element definition: <Item To Click>|<Created Item>|<Quantity to Keep>
|--
|-- If <Created Item> and <Quantity To Keep> are not defined, the item is
|-- just clicked and any results of the item are checked to see if they are
|-- to be destroyed with the ItemsToDestroy array
|--
|-- If <Quantity To Keep> is defined, the <Item To Click> is clicked then the
|-- resulting <Created Item> quantity count is checked and if it is under
|-- <Quantity To Keep>, it is kept. Otherwise it is destroyed
|--
/declare Clickies[10] string outer NULL
/varset Clickies[1] Cauldron of Countless Goods
/varset Clickies[2] Cauldron of Endless Goods
/varset Clickies[3] Cauldron of Many Things
/varset Clickies[4] Brell's Brew Dispenser|Brell Day Ale|10
/varset Clickies[5] Endless Turkeys|Cooked Turkey|10
/varset Clickies[6] Spiced Iced Tea Dispenser|Spiced Iced Tea|20
|-- declare an array of all the items to DELETE
|--
|-- Element definition: <Cursor Item>|<Quantity to Keep>
|--
|-- If <Quantity to Keep> is defined, the <Cursor Item> quantity is checked
|-- and if less than <Quantity to Keep> it it kept. Otherwise it is destroyed
|--
/declare ItemsToDestroy[50] string outer NULL
/varset ItemsToDestroy[1] Mardu's Maniacal Mask
/varset ItemsToDestroy[2] Tideslasher
/varset ItemsToDestroy[3] Elemental Shard
/varset ItemsToDestroy[4] Worlu's Windcloak
/varset ItemsToDestroy[5] Worlu's Prying Eyes
/varset ItemsToDestroy[6] Rod of Mechamagical Mastery
/varset ItemsToDestroy[7] Shard of the First Minion
/varset ItemsToDestroy[8] Regal Tonic of Greater Healing
/varset ItemsToDestroy[9] Pail of Slop
/varset ItemsToDestroy[10] Majestic Tonic of Healing
/varset ItemsToDestroy[11] Mardu's Mercurial Visor
/varset ItemsToDestroy[12] Skull of the Spire Servant
/varset ItemsToDestroy[13] Void Shard
/varset ItemsToDestroy[14] Wand of Temporal Mastery
/varset ItemsToDestroy[15] Ether-Fused Shard
/varset ItemsToDestroy[16] Wavethrasher
/varset ItemsToDestroy[17] Brightedge
/varset ItemsToDestroy[18] Imprint of the Enhanced Minion|1
/varset ItemsToDestroy[19] Bulkwark of Many Portals|4
/varset ItemsToDestroy[20] Tavon's Polished Gemstone|8
/varset ItemsToDestroy[21] Tavon's Burnished Gemstone|6
|-- is the toon going to booze it up? Define what to drink
/declare cDrink string local
/varset cDrink Brell Day Ale
| reference variables that do not need to be altered
/declare ItemKeepCount integer outer
/declare i int local
/declare bFound bool local
/declare bCast bool local
/declare nClickie int local
/declare cClickie string local
/declare cWhatToClick string local
/declare cWhatToGet string local
/declare nHowMany int local
/declare cItemToDestroy string local
/declare cItem string local
/echo Running ClickStuff Macro
/popup Running ClickStuff Macro
:MainLoop
/for nClickie 1 to ${Clickies.Size}
|--- Continue checking for an item on the cursor until
|--- there isn't one
:ItemOnCursor
/if (${Cursor.ID}) {
/varset bFound false
/for i 1 to ${ItemsToDestroy.Size}
/varset cItemToDestroy ${ItemsToDestroy[${i}]}
/varset cItem ${cItemToDestroy.Arg[1,|]}
/varset nHowMany ${cItemToDestroy.Arg[2,|]}
|--- if we find the item, get out of the loop
/if (${Cursor.Name.Equal[${cItem}]}) {
/if (!${nHowMany} || ${FindItemCount[=${cItem}]} > ${nHowMany}) /varset bFound true
/break
}
/next i
|--- Are we keeping or destroying the item?
/if (${bFound}) {
/echo ${Time.Date}-${Time} Destroy - ${Cursor.Name}.
/destroy
} else {
/echo ${Time.Date}-${Time} Keep - ${Cursor.Name}.
/autoinventory
}
/doevents
/delay 2s
/goto :ItemOnCursor
}
| --- Start the summoning process
/varset cClickie ${Clickies[${nClickie}]}
|-- See if there is a clickie defined
/if (${cClickie.NotEqual[NULL]}) {
/varset cWhatToClick ${cClickie.Arg[1,|]}
/varset cWhatToGet ${cClickie.Arg[2,|]}
/varset nHowMany ${cClickie.Arg[3,|]}
|-- if there are quantites and items defined, check them first
/varset bCast true
/if (${cWhatToGet.NotEqual[NULL]} && (${nHowMany})) {
/if (${FindItemCount[=${cWhatToGet}]} >= ${nHowMany}) /varset bCast false
}
|-- Can we cast and is the item ready?
/if (${bCast} && ${FindItem[=${cWhatToClick}].ID} && ${Me.ItemReady[${cWhatToClick}]}) {
/useitem "${cWhatToClick}"
/doevents
:CastingCheck
/if (${Me.Casting.ID}) {
/delay 2s
/goto :CastingCheck
}
|--- More than likely the item was clicked. Put in a pause to allow
|--- the user to override the default actions of the macro as well as
|--- not flood the application with requests from the macro
/doevents
/delay 4s
}
}
/doevents
/delay 1s
/next nClickie
| -- see if we can take a drink
/if (${Me.Skill[Alcohol Tolerance]} < 450) {
/if (${FindItem[=${cDrink}].ID} && ${Me.ItemReady[${cDrink}]}) {
/useitem "${cDrink}"
/delay 1s
/doevents
}
}
/doevents
/delay 1s
/goto :MainLoop
/return
|--------------------------------------------------------------------------------
Sub Event_BagsFull
/echo *** Bags are full, time to cleanup ! ***
/end
/return
|--------------------------------------------------------------------------------
Sub Event_LoreItem
/echo + You attempted to summon a lore item you already have.
/return
|--------------------------------------------------------------------------------
Sub Event_Camping
/echo Camp command detected. Ending macro.
/end
/return
|--------------------------------------------------------------------------------
Sub Event_BoozeItUp
/echo Alcohol Tolerance >> ${Me.Skill[Alcohol Tolerance]} << Drunkeness >> ${Me.Drunk} <<
/return