This is a simple utility to perform a simple function, and is easily modified with minimal skills. It's only 18 lines of code, (EDIT: Line count has grown considerably in V2.) and that includes limits, counting, and progress messages. In most cases, you won't need to edit the code at all. Run this macro with a parameter (required), as shown below, to tell it the name of the ground spawn item you want to gather. It will run around and gather them up one stack (20, now that the stack size has been increased) at a time. It uses mq2nav (No longer needs MQ2moveutils), and is pretty good at navigating difficult terrain.
What prompted this was my inability to find a simple ground spawn farmer mac so that I could make some dye. Everything I found either crashed with multiple runtime errors, or was designed for a specific zone and specific items, such as the anniversary event macro. (Thumbs up on that one, no offense, please.) Not all of us have the skills to write or edit macros, so this also serves a purpose as an example of code that 1) you don't have to edit every time you use it in a different zone (because of the passed paramemeter), and 2) an easy to follow example of code for beginners. I have, since then, located some fully featured ground spawn macs, but I still use this one most of the time due to it's simple operation. Thanks to TreeHuginDruid for providing some safety code for the macro.
P.S.: I originally gave it the option to run without a parameter, However, while all ground spawns are items, not all items are ground spawn. Running this with no specific target ended up with me trying over and over to 'loot' an oven and put it in my backpack. Needless to say, you can't loot an oven, or a door, both of which are potential items to target by accident. That's why I removed that option.
Enjoy! As always, give me a cent if this helps you out in some way.
TeslaTrader
EDIT: I have updated this macro to Version 2. I just gathered a stack of Misty Acorns with this mac with no issues or interruptions. Misty Thicket was a problem zone for V1, but it's working perfectly for me now. I included the changes from TreeHuginDruid, converted to MQ2Nav, and it now uses "/if (${Me.Moving}" instead of "/if (${Ground.Distance}>4)". It finds its way through the gate, now. ;-) Hopefully, this version will be much more successful for everyone in a greater variety of zones. Enjoy!
NOTE: If you are new to MQ2Nav, read the plugin info on RedGuides. Use the Meshgenerator.exe with default settings for each new zone where you want to use this macro. The performance improvement is worth the trouble.
What prompted this was my inability to find a simple ground spawn farmer mac so that I could make some dye. Everything I found either crashed with multiple runtime errors, or was designed for a specific zone and specific items, such as the anniversary event macro. (Thumbs up on that one, no offense, please.) Not all of us have the skills to write or edit macros, so this also serves a purpose as an example of code that 1) you don't have to edit every time you use it in a different zone (because of the passed paramemeter), and 2) an easy to follow example of code for beginners. I have, since then, located some fully featured ground spawn macs, but I still use this one most of the time due to it's simple operation. Thanks to TreeHuginDruid for providing some safety code for the macro.
P.S.: I originally gave it the option to run without a parameter, However, while all ground spawns are items, not all items are ground spawn. Running this with no specific target ended up with me trying over and over to 'loot' an oven and put it in my backpack. Needless to say, you can't loot an oven, or a door, both of which are potential items to target by accident. That's why I removed that option.
Enjoy! As always, give me a cent if this helps you out in some way.
TeslaTrader
Rich (BB code):
| This is the SSSAGG (Super Simple but not Stupid Automated Groundspawn Grabber)
| aka GroundSpawn.mac
| Version 2.0
| By: TeslaTrader
| Pass it a search parameter (required) with a social, like "/mac GroundSpawn.mac Evergreen", to grab Evergreen Leafs, etc.
| DO NOT USE AFK. This macro does not include AFK 'safety' code. It does, however, automatically stop at 20 items, which limits your potential for getting into trouble.
| Raise the limit of 20 at your own risk.
|
| NOTE: It's just a simple utility to perform a simple function, and is easily modified with minimal skills. Enjoy!
|---------------------------------------------------------------------------------
#turbo
Sub Main
/call CheckPlugin MQ2Nav
/declare Item string outer ${Param0}
/declare ItemCount int outer 0
/declare MaxItems int outer 20
|---------------------------------------------------------
/declare PCRadiusCheck int outer 300
/declare DummyTime int outer 60
/declare DummyMsg string outer "Gone for More Beer - BRB."
/declare TimeInc int outer
|---------------------------------------------------------
:Main
|---------------------------------------------------------
/if (${Spawn[gm].ID} || (${SpawnCount[pc radius ${PCRadiusCheck}]}>1)) {
/echo PC nearby!
/call DummyMode
}
|---------------------------------------------------------
/if (${ItemCount}==${MaxItems}) /end
/itemtarget ${Item}
/delay 1s
/nav loc ${Ground.Y} ${Ground.X} ${Ground.Z}
:GoGetIt
/delay 1s
/if (${Me.Moving}) /goto :GoGetIt
/click left item
/delay 2s
/autoinventory
/varcalc ItemCount ${ItemCount}+1
/echo Collected ${ItemCount} item(s).
/goto :Main
|---------------------------------------------------------------------------------
| SUB: Check Plugin
|---------------------------------------------------------------------------------
Sub CheckPlugin(string pluginname)
/if (!${Bool[${Plugin[${pluginname}]}]}) {
/squelch /plugin ${pluginname}
/echo ${pluginname} not detected! This macro requires it! Loading ...
}
/return
|---------------------------------------------------------------------------------
|--------------------------------------------------------------------------------
| Sub DummyMode
|--------------------------------------------------------------------------------
Sub DummyMode
/beep
/echo Entering Dummy Mode...
/delay 1s
/afk ${DummyMsg}
:waitabit
/for TimeInc 1 to ${DummyTime}
/echo (${TimeInc}/${DummyTime})
/delay 1s
/next TimeInc
/if (${Spawn[gm].ID} || (${SpawnCount[pc radius ${PCRadiusCheck}]}>1)) /goto :waitabit
/afk off
/delay 1s
/return
|--------------------------------------------------------------------------------
EDIT: I have updated this macro to Version 2. I just gathered a stack of Misty Acorns with this mac with no issues or interruptions. Misty Thicket was a problem zone for V1, but it's working perfectly for me now. I included the changes from TreeHuginDruid, converted to MQ2Nav, and it now uses "/if (${Me.Moving}" instead of "/if (${Ground.Distance}>4)". It finds its way through the gate, now. ;-) Hopefully, this version will be much more successful for everyone in a greater variety of zones. Enjoy!
NOTE: If you are new to MQ2Nav, read the plugin info on RedGuides. Use the Meshgenerator.exe with default settings for each new zone where you want to use this macro. The performance improvement is worth the trouble.