Pull.mac

freewilly

Lifetimer
Joined
Sep 20, 2006
Messages
191
Reaction score
23
Points
18
I know this macro exists out there, but it is a bit buried, so I'm putting it up again. I've found this to be the best pulling/loot macro for what I do. I use Pete's bot macro for the rest of my army to assist. I've made some adjustments to it, more safety checks than anything. I'm sure the things I added/changed can be done better. Still doesn't have ranged attack/pull features, but I don't think it would be hard to add in (not by me). Hope others find this useful.
 
Last edited:
I know this macro exists out there, but it is a bit buried, so I'm putting it up again. I've found this to be the best pulling/loot macro for what I do. I use Pete's bot macro for the rest of my army to assist. I've made some adjustments to it, more safety checks than anything. I'm sure the things I added/changed can be done better. Still doesn't have ranged attack/pull features, but I don't think it would be hard to add in (not by me). Hope others find this useful.

Does this one stop randomly after like 30-40 minutes of pulling too? It just stops in the MovetoLoc after anywhere from 30 min to 1 hr 30 min run time and just freezes it seems.
 
Not that I have seen. I've had it run while at work and still be going when I get home.
 
Not that I have seen. I've had it run while at work and still be going when I get home.

Yours is working great, I made a few little changes but it still randomly just stops pulling.

Think theres a way to add a timer in the background, if not in combat for say 90 secs /goto pull?

Edit: Also it stops attacking sometimes after killing a mob, usually when theres a few adds around. I think the above timer would fix that too though.
 
Last edited:
You can figure out where a mac is by typing

/echo ${Me.WITGHVFEHIE} (or something not a valid part of ${Me}

will see an error that tells you the exact location the mac is in. Once you know that you can check what the hell is wrong by checking for bad loops / unexpected variables / flags for where you are at.
 
Not that I have seen. I've had it run while at work and still be going when I get home.

Yours is working great, I made a few little changes but it still randomly just stops pulling.

Think theres a way to add a timer in the background, if not in combat for say 90 secs /goto pull?

Edit: Also it stops attacking sometimes after killing a mob, usually when theres a few adds around. I think the above timer would fix that too though.

Yeah, this statement, "/if (${Target.PctHPs}==100) {" needs to be commented out or removed under the acquire sub. It was an experiment that I thought was ok until there are adds in camp and they are below 100%, so that's probably why you see it stopping when adds are around. Caught that this morning when I started it up again. Sorry about that.

I'm not seeing issues with it stopping. I do see it not loot a corpse from time to time, and sometimes he won't sit, so getting END back up over 15% can take some time if I'm not babysitting the session. Because of that I have thought about adding a timer somewhere maybe to reset everything again, but my initial modifications to this macro were more safety oriented. I'm still fairly newbish on this, but I've kind of learned what little I do know on this mac and it's not a very complex macro that does what it is suppose to do for the most part.

You can figure out where a mac is by typing

/echo ${Me.WITGHVFEHIE} (or something not a valid part of ${Me}

will see an error that tells you the exact location the mac is in. Once you know that you can check what the hell is wrong by checking for bad loops / unexpected variables / flags for where you are at.

Thanks for the tip. Will give that a try.
 
Not that I have seen. I've had it run while at work and still be going when I get home.

Yours is working great, I made a few little changes but it still randomly just stops pulling.

Think theres a way to add a timer in the background, if not in combat for say 90 secs /goto pull?

Edit: Also it stops attacking sometimes after killing a mob, usually when theres a few adds around. I think the above timer would fix that too though.

Yeah, this statement, "/if (${Target.PctHPs}==100) {" needs to be commented out or removed under the acquire sub. It was an experiment that I thought was ok until there are adds in camp and they are below 100%, so that's probably why you see it stopping when adds are around. Caught that this morning when I started it up again. Sorry about that.

I'm not seeing issues with it stopping. I do see it not loot a corpse from time to time, and sometimes he won't sit, so getting END back up over 15% can take some time if I'm not babysitting the session. Because of that I have thought about adding a timer somewhere maybe to reset everything again, but my initial modifications to this macro were more safety oriented. I'm still fairly newbish on this, but I've kind of learned what little I do know on this mac and it's not a very complex macro that does what it is suppose to do for the most part.

You can figure out where a mac is by typing

/echo ${Me.WITGHVFEHIE} (or something not a valid part of ${Me}

will see an error that tells you the exact location the mac is in. Once you know that you can check what the hell is wrong by checking for bad loops / unexpected variables / flags for where you are at.

Thanks for the tip. Will give that a try.

Ya I saw that too, I also changed this line from 50 to 0, so far its working better. Thanks again, I like the mods you've added.
/for RV_CurrentRadius 0 to ${RV_MaxRadius} step 5
 
Sometimes I feel so stupid on all this. I too had played with the "50 to 0" line trying to figure out why he wouldn't get the adds, then noticed adds were below 100%.

To be honest, the "/for RV_CurrentRadius 0 to ${RV_MaxRadius} step 5 " was not me. That was already in there when I first got the macro. The only big components I added were the guild check sub and the tell sub, which I'm sure I copied from something else. I'm not smart enough to be original, but can plagiarize with the best.
 
I think I found the issue with this macro stopping for some. If your using MQ2Melee and have a downshit calling Champions Aura on a Warrior, that seems to stop the pulling function when it is cast. Still testing this, but if it is the case, I will try to add that aura casting into the macro itself.
 
When the macro idles have you noticed if you have a target at all? Or does it just sit there with no target?

Sent from my SAMSUNG-SGH-I317 using Xparent Skyblue Tapatalk 2
 
For me, I have only seen this behavior occur since I set up a MQ2Melee downshit to load Champions Aura. Prior to that, it was never an issue with me. lichd2, as noted above, seems to encounter this problem all the time. Downshits using clickies are not a problem as they are fairly quick to cast, but I'm thinking this disc puts a delay in the macro that throws it off course.
 
....sorry, didn't answer your question directly. I don't recall at this moment if he has a target or not because when I check in on him I'm not sure how long he has been just standing there. I don't think he has a target at those times, but will take note the next time it happens.
 
....sorry, didn't answer your question directly. I don't recall at this moment if he has a target or not because when I check in on him I'm not sure how long he has been just standing there. I don't think he has a target at those times, but will take note the next time it happens.

Do you use a merc?
 
I use a merc and the macro won't run with it out sadly.
 
When the stuck occurs, it's usually in the :Engage section. I believe with no target...

Another note, it also sometimes messes up when you are grouped up and when you pull mobs back, someone else takes it before you engage and it gets stuck.
 
Last edited:
Do you use a merc?

Never. Six box only.

I use a merc and the macro won't run with it out sadly.

I used to run it with mercs mixed with regular group members, but now only use my six box group, never a merc and it runs fine, except when using a downshit in MQ2Melee that calls Champions Aura.

Another note, it also sometimes messes up when you are grouped up and when you pull mobs back, someone else takes it before you engage and it gets stuck.

I have seen this too. I believe if you increase this line "/declare RV_RangeMax int outer 10", it will move to the mob when someone else draws agro on incoming pull. Or, if you are using Pete's bot.mac for your boxes simply adjust their assist at percentage to something like 96% and they will leave it alone until you have it on you and agro control.
 
Do you use a merc?

Never. Six box only.

I use a merc and the macro won't run with it out sadly.

I used to run it with mercs mixed with regular group members, but now only use my six box group, never a merc and it runs fine, except when using a downshit in MQ2Melee that calls Champions Aura.

Another note, it also sometimes messes up when you are grouped up and when you pull mobs back, someone else takes it before you engage and it gets stuck.

I have seen this too. I believe if you increase this line "/declare RV_RangeMax int outer 10", it will move to the mob when someone else draws agro on incoming pull. Or, if you are using Pete's bot.mac for your boxes simply adjust their assist at percentage to something like 96% and they will leave it alone until you have it on you and agro control.

You six box hey?

The next time your puller is sitting there idle do a /who npc radius 50 and you might have a surprise for you. Some Auras come up as NPCs so
Code:
/if (${Me.PctEndurance}>15 || ${SpawnCount[NPC Radius 30]}>0)
will return FALSE and the puller won't pull because of the Aura.Some things that show up on your map, that arent an actual mob, might trigger that statement to become false. Two auras that I know for sure will trigger it to be false are Bard echos and Mage pet aura.

So you'll need to add something in that scans the area and looks for specific NPC Types then add them to an /alert list so they're ignored.

If you don't want to do that and the location you're in only has a few different mobs then you can do this instead:

Code:
/if (${Me.PctEndurance}>15 || ${SpawnCount[npc radius 30; mob1; mob2; mob3; etc; etc]} == 0)

You don't need the full mob name either. So instead of listing every type of Orc you are killing can just use orc and it'll be fine.

You can also use {SpawnCount[npc range x x]} to check for certain levels. My auras show up as level 70 and everything else as level 1 so if you're killing stuff higher than level 70 you should be ok with this kind of check too.

${SpawnCount[npc targetable]} would work too.
 
Last edited:
You don't need the full mob name either. So instead of listing every type of Orc you are killing can just use orc and it'll be fine.

You can also use {SpawnCount[npc range x x]} to check for certain levels. My auras show up as level 70 and everything else as level 1 so if you're killing stuff higher than level 70 you should be ok with this kind of check too.

${SpawnCount[npc targetable]} would work too.

There is already something in the macro to ignore mobs under the acquire sub. This following line is commented out but you would just need to un=comment it and specify what NPCs or funky auras to ignore.
Code:
| /alert add 5 npc "a walrus"
 
Im trying to use this jsut to attack the mobs in a very tiny radius but no matter what I change the below it still targets mobs around 100 distance, am I changing the wrong setting?

Code:
   |------------------------------------------------------------ 
   |How far would you like to target a mob? 
   |------------------------------------------------------------ 
   /declare RV_MaxRadius        int outer  0
 
Im trying to use this jsut to attack the mobs in a very tiny radius but no matter what I change the below it still targets mobs around 100 distance, am I changing the wrong setting?

Code:
   |------------------------------------------------------------ 
   |How far would you like to target a mob? 
   |------------------------------------------------------------ 
   /declare RV_MaxRadius        int outer  0


The minimum set in the GetTarget sub is 50, so you can modify that to get the distance down. It starts at 50, then goes out 5 feet till it hits the Max. So you could set the start at 5, then it would go out to teh max starting at 5. I do not think 0 will ever really work for the max.

Code:
|-------------------------------------------------------------------------------- 
|SUB: Aquire Target 
|-------------------------------------------------------------------------------- 
Sub GetTarget 
   /doevents 
   /declare SpawnTimer         int local 
   /declare RV_CurrentRadius   int local 
   /declare RV_TargetSub       int local 
   /declare npc1 	       int local
   /declare npc2 	       int local
   /declare npc3 	       int local
   /declare npc4 	       int local



   /echo Looking for Close Range Mobs
   :Acquire 
      /doevents
      /hidecorpse all
      /for RV_CurrentRadius 50 to ${RV_MaxRadius} step 5

| Uncomment the below line to define mobs to ignore.  Between double quotes put hte name of the mob to ignore.