• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

Upgraded Caudron of Endless / Countless Goods macro - INI based.

  • Thread starter Thread starter Wolfborn
  • Start date Start date
W

Wolfborn

MoneyPot.mac

New Macro to use the lvl 83 Cauldron of Endless Goods or the lvl 99 Cauldron of Countless Goods.

If you're not familiar with those. They are Mage spells that cast an item. This item, when cast, summons various and random items.
Some useful, some not. How useful? Over the past week I've netted about 100K pp per day (your pp income may vary) selling the items in Bazaar.
Not bad for such little effort.

The macro will find the highest level spell you have, including Rk. II or Rk. III if you have it. Cast the spell, drop the cauldron in inventory and cast it until you end the macro.
The items are kept or destroyed based on settings in the INI file. If it doesn't find the item in the INI it will add it using the "Default Action" listed in the INI.

My INI so far:
Rich (BB code):
[SummonedItems]
DefaultAction=Keep
Airkin-Baked Croissant=Keep 
Bulwark of Many Portals=Keep 
Majestic Tonic of Healing=Destroy
Mardu's Mercurial Visor=Keep 
Murky Energy Tonic=Keep  
Pail of Slop=Destroy
Skull of the Spire Servant=Destroy
Void Shard=Keep 
Wand of Temporal Mastery=Keep
Wavethrasher=Keep 
Worlu's Windcloak=Destroy
Aircrisp Apple=Keep 
Brightedge=Keep 
Bulwark of Many Portals=Keep 
Ether-Fused Shard=Keep 
Ether-Fused Tea=Keep 
Exalted Tonic of Healing=Destroy
Imprint of the Enhanced Minion=Keep 
Tavon's Burnished Gemstone=Keep 
Tavon's Polished Gemstone=Keep 
Worlu's Prying Eyes=Destroy
Worlu's Windcloak=Destroy

Debugging code for a spell that can only be cast every 30 minutes can be frustrating!!
However I think I've got all the bugs worked out but I can't give any promises.
In it's present state it does all that I claim.
Create new INI if there isn't one. Find spell, memorize, cast, put cauldron in inventory, cast it. check INI for item. Keep or destroy it based on INI. Repeat.
My toons have most expansions so I'm not sure if you can cast from bags in all expansions.
If you can't, better have an open top slot, or move it to top slot.

Rich (BB code):
| Money Pot macro - Wolfborn
| Credit Maskoi for code fron NinjaAdvLoot.inc
| Cretit Treehuggindruid for basic idea and some code.
| ---------- MoneyPot.mac --------------
| Casts the Cauldron spells to summon items.
| Memorizes the spell, casts the cauldron and checks the INI.
| Macro will Keep or Destroy item based on the INI setting.
| If item is not found in INI it will add item using the
|  default setting.
| If there is no INI it will make one using default action of Keep.
| Reads INI each cast so if you modify it between casts it will
| act on your new settings.
| ------------------------------------

#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 	"#*#Duplicate Lore items are not allowed.#*#"

Sub Main
	/declare DefaultAction 	string	outer
	/declare CauldronSpell	string	outer
	/declare TheCauldron	string 	outer
	/declare CauldronIni	string	outer MoneyPot.ini
	
	/echo Cauldron.mac starting.....
	
|-------------------------------------------------------------------------------- 
| Check for Ini file - If not found. Create using MakeMyIni
|-------------------------------------------------------------------------------- 
	/if (!${Ini[${CauldronIni},SummonedItems,DefaultAction].Length}) {
	     /echo I could not find an INI file. Creating one with default action of KEEP.
             /call MakeMyIni
       }
	
	/varset DefaultAction ${Ini[${CauldronIni},"SummonedItems","DefaultAction"]} 

	/if (${Cursor.ID}) /autoinventory
	
|-------------------------------------------------------------------------------- 
|Setup: Finding spells, finding cauldron if it's already cast. Casting if not.
|-------------------------------------------------------------------------------- 
	/if (${Me.Book[Summon Cauldron of Endless Bounty Rk. III]}) /varset CauldronSpell Summon Cauldron of Endless Bounty Rk. III
	/if (${Me.Book[Summon Cauldron of Endless Bounty Rk. II]}) /varset CauldronSpell Summon Cauldron of Endless Bounty Rk. II
	/if (${Me.Book[Summon Cauldron of Endless Bounty]}) /varset CauldronSpell Summon Cauldron of Endless Bounty
	/if (${Spell[${CauldronSpell}].ID}) /goto :FoundSpell
	/if (${Me.Book[Summon Cauldron of Endless Goods]}) /varset CauldronSpell Summon Cauldron of Endless Goods
	/if (!${Spell[${CauldronSpell}].ID}) /call Finished 1
	
:FoundSpell

|-------------------------------------------------------------------------------- 
|  Checking if Cauldron of Countless Goods is already present, if so, go to main loop.
|-------------------------------------------------------------------------------- 
	/if (${FindItem[Cauldron of Countless Goods].ID}) {
		/varset TheCauldron Cauldron of Countless Goods
		/echo Found the ${TheCauldron}
		/goto :MainLoop
	}
	
|-------------------------------------------------------------------------------- 
|  Didn't find Cauldron of Countless Goods, do we have Cauldron of Endless Goods??
|  If so, jump to main loop, if not. Cast which ever spell we found in Setup.
|--------------------------------------------------------------------------------

	/if (${FindItem[Cauldron of Endless Goods].ID}) {
		/varset TheCauldron Cauldron of Endless Goods
		/echo Found the ${TheCauldron}
		/goto :MainLoop
	} else {
		/echo Didn't find the cauldron, will try to cast ${TheCauldron} now.
		/memorize "${CauldronSpell}" 12
		/delay 10s ${Cast.Ready[12]}
		/cast "${CauldronSpell}"
		/delay 5s
		/autoinventory
		/delay 10
		/goto :FoundSpell
	}
	
:MainLoop

     /if (${FindItem[${TheCauldron}].ID} && ${Cast.Ready[${TheCauldron}]}) {
		/echo Found the ${TheCauldron}. Summoning up some goodies now!!
		/casting "${TheCauldron}" item
		
:Casting
	/if (!${Cast.Ready}) {
	     /delay 10
	     /goto :Casting
	}
		
	/doevents

	/if (${Cursor.ID}) {
	     /echo You have summoned something ${Cursor.Name}
	     /delay 10
	     /if (${Cursor.ID}) /call CheckIt
	}
     }
 	
	/delay 10s
	/goto :MainLoop

/return

|-------------------------------------------------------------------------------- 
|SUB: Event_LoreItem Check for Lore item.... Damn you SOE!!
|-------------------------------------------------------------------------------- 
Sub Event_LoreItem
    
     /echo You attempted to summon a lore item you already have.

/return

|-------------------------------------------------------------------------------- 
|SUB: Bags full event.
|-------------------------------------------------------------------------------- 
Sub Event_BagsFull 
	
     /call Finished 2

/return 

|-------------------------------------------------------------------------------- 
|SUB: CheckIt - Check to see if item is listed as Keep or Destroy.
|				Check to see if item is in INI. If not, add it.
|-------------------------------------------------------------------------------- 

Sub CheckIt

:AmIDone 
	/echo Checking for existing entry in INI
	/if (!${Cursor.ID}) /return
	/if (!${Select[${Ini[${CauldronIni},"SummonedItems","${Cursor.Name}"]},Keep,Destroy]}) { 
	   /echo ${Cursor.Name} wasn't found. Adding it with default action.
	   /if (${Cursor.ID}) /ini ${CauldronIni} "SummonedItems" "${Cursor.Name}" "${DefaultAction}" 
           /delay 10
     } 

	/if (${Ini[${CauldronIni},"SummonedItems","${Cursor.Name}"].Equal[Keep]}) { 
		/echo Putting it in Inventory
		/autoinventory 
	} else { 
		/echo Destroying it.
		/destroy 
	} 

   /delay 5 
   /if (${Cursor.ID}) /goto :AmIDone

/return

|-------------------------------------------------------------------------------- 
|SUB: MakeMyIni - Create the INI file if it doesn't exist.
|-------------------------------------------------------------------------------- 

Sub MakeMyIni
    /if (${Ini[${CauldronIni}].Length}) /return
     /ini ${CauldronIni} "SummonedItems" "DefaultAction" "Keep"
     /delay 20
/return

|-------------------------------------------------------------------------------- 
|SUB: Finished
|-------------------------------------------------------------------------------- 

Sub Finished(Code)
	/if (${Code}==1) {
		/echo I can't find the spell to summon your Cauldron
		/echo Camping to Desktop
		/beep
		/endmac
	}
	
	Sub Finished(Code)
	/if (${Code}==2) {
		/echo Bags are full. Camping to desktop.
		/beep
		/endmac
	}
	
/return

Shout out to Treehuggindruid for the idea and some code.
Shout out to Maskoi for code and ideas from NinjaAdvLoot.inc

-Wolf

- - - Updated - - -

Seems the bottom dropped out of the summoned items market.
I've had to cut the price of Brightedge down to 2.5kp from 7.5kp
Bulwark of portals has stopped selling.. even for 2kp
The summoned augs are stagnant..
Guess my cash cow has dried up.

Fun while it lasted.
 

Attachments

Thank you Wolfborn for this. I had been able to "automate" this on two mages on same acct with my G510 KB but I had to keep my cursor active and Only on that screen else it would not continue. Could only use when I was AFK from comp and not planning to use it. Having this as an automated feature now helps a lot with summoning what I want and Only what I want to keep!

Appreciated,
~TheFiddler~
 
Upgraded Caudron of Endless / Countless Goods macro - INI based.

Users who are viewing this thread

Back
Top
Cart