• IS THIS SITE UGLY? Click "RG3" at the very bottom-left of this page to change it. To dismiss this notice, click the X --->

Macro - Groundfarm.mac

Joined
May 28, 2014
Likes
7
RedCents
200¢
#1
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.

Groundfarm.mac:
|###############################################################################
|##
|##  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
 
Top