Pull.mac for use with MQ2Bot

The "fix" for pull.mac involves making sure MQ2Bot is on if it's loaded. Due to undeclared variables within it. It should be considered a "stand alone" macro now. Update uploaded to first post.

If you've never used it before, first run initializes INI, second run will use the INI so

/mac pull

/end

/mac pull #

where # is radius around you to pull from.
 
Last edited:
i have no issues using mq2bot with pull.mac ....
 
i have no issues using mq2bot with pull.mac ....

Then the update shouldn't be required for you. Basically the problem is when MQ2Bot is loaded but /bot on hasn't been invoked the macro finds "undeclared" variables because when MQ2Bot isn't /on then the variables aren't declared and causes my macro to lose it's mind. The change isn't a required change, but another user complained that it didn't work. Technically the problem wasn't with my macro or with MQ2Bot per-say, but rather with the change it's causing issues.

So, nobody is at fault, the fix is unnecessary.

This issue happens for EVERY macro you try to run with /bot off

I actually just changed it again to /bot on as the first line. So if MQ2Bot is loaded then it'll turn it on, if not you'll get the one error saying it's not a valid command and move on with life. Suppose That's a better fix. The problem was that during the macro I was manipulating /bot with commands, such as /bot off, or /bot pause etc. Either way, one person complained so I opted to try and fix an error that may or may not be present.
 
Last edited:
Have you looked at adding ranged pulling into Pull.mac, as well as Alt and Spell pulling? I had started on the process, but have not had time to perfect it yet.
 
Have you looked at adding ranged pulling into Pull.mac, as well as Alt and Spell pulling? I had started on the process, but have not had time to perfect it yet.

I honestly haven't had a chance to do anything with it. If you want to send me what you have so far I'll certainly look into it. I can't imagine it would be too difficult to actually add it into the current routines.

I could add an INI entry for a string, Boolean, and a Name/ID? Name would likely be easier?
RangedPull=True
PullType=Spell|Alt|Ranged
RngName=Snare

Code:
/if (${PullType.Equal[Spell]}) {
    /cast ${RngName}
} else /if (${PullType.Equal[Alt]}) {
    /cast ${RngName} |alt
} else /if (${PullType.Equal[Ranged]}) {
    /autofire on
}

The above could be compressed to define and set RangedCmd variable then /${RangedCmd} when ranged pulling.
Lots of ways that could work.

then in the pulling routine when sub getMob is called do a distance calculation

Code:
/if (!${XTarget[1].ID}) {
    /if (${RangedPull}) {
       /if (${Target.Distance} < ${RangedPullDist})
            Stopmoving, do rangedatk,wait for hit, check for xtarget, /call movetocamp
   }
}

Something like that roughly. Not entirely sure without actually implementing it and testing it, finding exactly how to incorporate it into code. To be honest I really need to learn events. Would make my pull macro tons better. But I'm so busy learning other languages that I haven't had time to apply something like this.

The main thing is getting the variables to do the checks added, and declared. Then moving into figuring out how to add in the Ranged pull routines for spells versus alt, versus ranged item. Plus a distance check to determine if they are in range of a ranged pull from the camp to avoid moving at all. If it's a ranged item I'll have to verify it's in the ranged slot, or do an autoswap command to move it into the ranged slot, fire, move back the previous ranged item for the stats. It likely would add quite a bit of functionality but I know my macro is a lil buggy when I run it. If not using MQ2Nav sometimes the puller doesn't return to camp. When using MQ2Nav sometimes the puller gets stuck along the path for unknown reasons when both going to get the mob and returning with the mob.

For zerkers I know the weapon swap would be nice. My ranged items are summoned, so I could get an inventory count of the item, if under XAmount I could summon more. Then add the swap into inventory.

It certainly could be a nice feature to add. That may be the next thing I look into.

Also I'd like to separate the MQ2Nav and MoveUtils pulling routines into separate subs for both clarity when reading the sub and to limit what code is interpreted by the Macro. Doing 1 Check at the beginning of main for which sub to use during pulling and then never checking again as it doesn't change while the macro is running. Not a big improvement but it's 1 less check that is repeated on every pull.

I would like to improve on this macro. But time is my biggest barrier.
 
Last edited:
Hi, was just checking in to see if you ever finished making this so a Bard or ranger can pull?
Thanks
 
Hi, was just checking in to see if you ever finished making this so a Bard or ranger can pull?
Thanks

See Farm.mac and Pullfarm.mac

Farm.mac

Those are the greatly improved versions of Pull.mac

Farm.mac has a lot more features currently than Pullfarm.mac , but to my knowledge PullFarm.mac should work for ranger and bards, but they don't really use any abilities. I really should get it up to speed with farm.mac