Just another Groundfarm macro. Wanted to farm up a bunch of mushrooms in North Kadadim, but was having trouble with some of the other macros i've found. Decided to just write up my own. This uses Posse, so you could let it run overnight and it will pause when someone comes in range. This whole section can be commented out if you don't care. Also made the groundspawn a variable, so you could use this to farm up other spawns if wanted. Also worth mentioning, this does require MQ2NAV and a meshed zone.
It bugged on me once, kept picking up a ground spawn somewhere on the otherside of the zone. Found that if I just manually did a "/ItemTarget * Mushroom", the macro would take over normally. Only happened once, but thought i'd mention. Hopefully someone finds it useful.
It bugged on me once, kept picking up a ground spawn somewhere on the otherside of the zone. Found that if I just manually did a "/ItemTarget * Mushroom", the macro would take over normally. Only happened once, but thought i'd mention. Hopefully someone finds it useful.
Code:
|###############################################################################
|##
|## GroundFarm.mac by: AsmoTiC
|##
|###############################################################################
|##
|## Requires MQ2Posse to check for Players.
|## Comment out "/Call CheckForPlayers" to bypass
|##
|###############################################################################
Sub Main
/echo Groundspawn Farming Macro v11.17.18
/popup Groundspawn Farming Macro v11.17.18
| ----------------------------- Declarations -----------------------------
/declare PauseMacro bool outer FALSE
/declare RespawnPause bool outer FALSE
/declare GroundSpawn outer * Mushroom
/declare DistanceCheck int outer 500
| ----------------------- House Keeping for Posse ------------------------
/posse on
/posse load
| ------------------------------ Main Loop -------------------------------
:Loop
/Call CheckForPlayers
/Call CheckforSpawns
/if (${PauseMacro} == TRUE) /goto :Loop
/if (${RespawnPause} == TRUE) /goto :Loop
/Call TargetItem
/Call MoveToItem
/Call GetItem
/goto :Loop
/return
Sub CheckForPlayers
/if (${Posse.Count} > 0) {
/echo There is a player in range, Pausing macro for 10sec
/varset PauseMacro TRUE
/delay 10s
}
/if (${Posse.Count} == 0) {
/varset PauseMacro FALSE
}
/return
Sub CheckForSpawns
/if (${Ground.Distance} >= ${DistanceCheck}) {
/echo Waiting on Respawn . . .
/varset RespawnPause TRUE
/delay 30s
}
/if (${Ground.Distance} < ${DistanceCheck}) {
/varset RespawnPause FALSE
}
/return
Sub TargetItem
/echo Targeting a Groundspan . . .
/ItemTarget ${GroundSpawn}
/return
Sub MoveToItem
/nav item
/delay 1s
/ItemTarget ${GroundSpawn}
/return
Sub GetItem
/click left item
/delay 1s
/autoinventory
/delay 1s
/autoinventory
/return