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.