Mac to PL, hunter, skill raiser, hit all once, or assist all in 1

PeteSampras

Your UI is fucking you. Stop using it.
Joined
Dec 12, 2007
Messages
3,956
Reaction score
49
Points
38
I have noticed people always want a mac for new chars to do the same basic things. I drafted a macro to do the 6 basic types of what you need on a new toon (i have a bunch more that I can add, but I would like to see how this works first).

There are currently 6 modes:
seek = you find any experience giving mob that isnt red con and is within line of sight and it runs to them and kills. It moves back to original position when no more mobs are up.

kill = it kills anything on XTarget1, and if nothing is on XTarget1, it tries to see if any mobs are up within X distance to attack, default is 50 range

skills = it will try to raise the spell skill types (abj, div, alt, conj, etc) based on whatever you have memmed

hitall = hits all mobs once

assist = assist whomever you designate and kills until new target

pl = you are the PLer and will heal/buff whomever you designate as assist

It will auto use all the low level skills/abilities and use whatever direct damage or dot spells you have memmed (except bard, you use /twist manually and you like it)

myHP is used to dermine what hp % you need to be before taking any killing action

assist is only used if you are using assist mode

Command, default values if you put nothing are in (parentheses):
If you want to put the blue, you have to put the pink, if you want to put the pink, you have to put the orange.

/mac pl mode(seek) myHP(50) assist(blank)
/mac pl seek 80
/mac pl assist 90 PeteSampras
/mac pl pl 90 PeteSampras
/mac pl hitall
/mac pl


you can change the value after starting the mac by typing:
/varset mode kill
/varset myHP 80
/varset assist fransisco

The highlighted variables are case sensitive, must be typed exactly like that.

Anyway, it should be a basic fire and forget low level toon macro. That you can use in a starting zone or open area to get those lower levels knocked out without having to pay attention to the toon.

Let me know if there are any errors, I only got to test this on a pure melee so most the code is untested. If all those goes well then I will add in a healing, merc, clicky, and potion auto usage.

EDIT: Forgot to mention, if you want to hardcode the variables in the macro, open it up and change these settings, otherwise you can change them all in game using /varset command.
Code:
/declare myHP int outer 50
/declare mercHP int outer 50
/declare medMana int outer 10
/declare medTo int outer 98
/declare hitAllRadius int outer 50
/declare assist string outer
/declare hidecorpseall bool outer TRUE
/declare sittimer timer outer 10s
/declare healAt int outer 80
/declare FindNamed bool outer FALSE
/declare nukeDelay timer outer ${If[${Me.Class.Hybrid},8s,1s]}
/declare healCombat bool outer ${If[${Me.Class.Priest},TRUE,FALSE]}
/declare melee bool outer ${If[(${Select[${Me.Class.ShortName},BER,MNK,ROG,WAR,PAL,SHD,BST,BRD,RNG]}||${Me.Level}<20),TRUE,FALSE]}
/declare moveDist int outer ${If[${melee},8,${Math.Calc[${hitAllRadius}-10]}]}
/declare mode string outer seek
|mode options are "kill", "hitall", "seek", "assist", "skills", "pl"
 

Attachments

  • loot.inc
    29.9 KB · Views: 88
  • AABuy.inc
    14 KB · Views: 82
  • PL.mac
    36.9 KB · Views: 118
Last edited:
Posted new version. Fixed several issues.

all modes:
-It was only supposed to use AdvPath for seek.
-medding wasnt doing anything beyond sitting

hitall:
-Events for spells were different for casters than melee.
-Added Events for dots.
-/squelch /alert adding things apparently didnt actually add them for hitall
-Missing /doevents meant that it would cycle all gems before noticing you hit the mob

bullet: sorry, i was confused as to what you were doing. I thought you were trying to run seek in guildhall, which wont work because it is restricted to combat zones only so you dont sit there looking silly trying to attack mobs in guildhall, pok, baz, etc.

simon: all fixed, and taps were already added
 
Last edited:
Added automatic use for:
Heals
Buffs
Pet summon
Pet Haste
SelfBuffs

Again, it will use only what you have memmed. Also seemed to have fixed the inability to close windows/mem spells.
 
Leveled another toon from 2.
Ran to CR newbie yard and turned her loose.
Smoothly leveled her to 13 using PL.mac.
Wanted to group with first toon who was now 16.
Ran them out to Blightfire Moors to take on rats and snakes.
Started her with "/mac PL assist 90 MyRanger".

I was thinking that the assistor would follow the assistee when in seek mode.
If the mob is less than 45 away, she will go to it and assist. Any further and she stands there in previous spot.
Any way to get her to follow him??
 
I feel like I'm busting your chops ))

Here's what I get when I tried to run the newest version.

Code:
[code]
/if (${Math.Min[${If[${Group.Member[0].PctHPs},${Group.Member[0].PctHPs},]} ${If[${Group.Member[1].PctHPs}>0,${Group.Member[1].PctHPs},]} ${If[${Group.Member[2].PctHPs}>0,${Group.Member[2].PctHPs},]} ${If[${Group.Member[3].PctHPs}>0,${Group.Member[3].PctHPs},]} ${If[${Group.Member[4].PctHPs}>0,${Group.Member[4].PctHPs},]} ${If[${Group.Member[5].PctHPs}>0,${Group.Member[5].PctHPs},]}]}[COLOR=Red])[/COLOR] < ${healAt}) {
 
Last edited by a moderator:
Ok, fixed that. Added follow stuff. I just used the bot.mac stuff with the exception it is hardcoded rather than .INI based. To modify it, search for "Sub FollowLoad". The bot wiki in my signature block explains what the settings do.

These are the hardcoded values:
Code:
/declare FollowMethod string outer stick|30 healer
/declare DistanceToFollow int outer 30
/declare FollowCommand string outer Follow me
/declare StopFollowCommand string outer Stop here
/declare MoveUpCommand string outer Move up
Follow method can be: nav, stick, keypress, advpath
If you choose stick, you can put a /stick command after it, like |30 healer loose moveback

Distance is self explanatory, as are the commands. Say Follow Me to have everyone follow your guy, Stop here to stop, Move up to one time move up without following. It is untested since i only have 1 toon, but it works in bot.mac and i only slightly modified things. /cross fingers and hopes it works.
 
Last edited:
Added variable: moveDist default value is 8 if melee is TRUE or hitAllRadius-10 if melee is FALSE

This is the distance that you will be from the mob when you /moveto it. This should alleviate casters running all the way up to the mob before casting spells if they dont plan on hitting the mob.
 
Last edited:
Hey Pete, just curious if someone verified casters working using Kill? It'll target the closest mob but no spell casting action
 
I verified it works. I ran around a zone and it chain killed all the mobs with nukes and applied the dots + recast timers on them. you need to be in the 50 range for it to cast unless you change the range.
 
heal routine is causing CTD, i will track down the problem in a bit. for now you can just put "|" at the front of the line so it doesnt check.:

| /if (${Select[${Me.Class.ShortName},DRU,CLR,SHM,PAL,RNG,BST]} && !${Me.Moving} && !${Me.Invis}) /call Heal
 
I verified it works. I ran around a zone and it chain killed all the mobs with nukes and applied the dots + recast timers on them. you need to be in the 50 range for it to cast unless you change the range.

OK, when I get some time will try it again.. Curious as to why it isn't firing up for me

Sent from my Nexus 7 using Tapatalk
 
Found, fixed. Split Heal routine to a HealGroup routine and a HealSelf routine. Crash was from not being in a group but trying to find group member info. Now it only checks the HealGroup routine if you are in group.
 
Fixed: spell casting
Fixed: abilities had same problem as spell casting, i didnt notice since mq2melee picked up the slack, you must have an ability on your abilities tab in order to see the ${Me.AbilityReady[]} check.
Fixed: changed time for buffs to seconds instead of milliseconds ^_^ you should try to rebuff less often!

Changed: you no longer try to attack someone else's mob
Changed: you clear target if pc is on target so you dont get stuck like that
Changed: how sitting works, a little smarter
Changed: added .5 second delay after you get experience message so you dont spam try to target the mob's corpse you just killed.
Changed: added a reset on /loc so you shouldnt spam /record /play over and over as much. some will still occur.

skidmachine: casting was broken afterall. no idea why it worked for me, i rerolled a low level toon and tested and it was all screwed. sorry for the confusion as it was very apparent as soon as i tried it on a newbie toon.
 
Fixed: HealSelf
Fixed: buffs no longer try to cast self buffs or invis
Fixed: no longer tries to /call BuffLoad

Changed: heals will be done only out of combat unless you are a priest class
Changed: added nukeDelay variable if you are a hybrid so you dont chain cast
Changed: /cast to /casting with 3 max tries.
Changed: Me.CurrentMana is now checked before trying to cast spells.

Added: Snare routine if you have a snare loaded.


As I run through with different classes, I notice different things and fix them. It seems to be working pretty well on hybrid, melee, int caster now.
 
Last edited:
Added: limited debugging. You can add ${CurrentSub} to your HUD to see what subroutine is currently being processed

Fixed: HealGroup sub was getting hung up, causing you not to seek

Changed: Subs were exiting early while /casting and i wanted them to wait longer, it isnt perfect, but it is better
 
I keep getting the buffload error on monk. Is there a /declare to stop that?

I was able to line out the subroutine and it kills just fine now.
 
Last edited:
Ya, the fix is to just download the latest copy! There was a single /call BuffLoad in the sub event_chat routine. The earlier ones had bugs anyway. I took a toon to 37 yesterday in a few hours using it. I did use damage shield potions, but otherwise no outside help. In some areas I could leave it fully unattended, others required a little babysitting due to terrain masking or sheer volume of mobs in the area. If i used a merc, it was pretty easy but you get half the exp obviously.

EDIT: actually i dont know that i only got half the exp with merc. exp seems to be hardcapped per kill. like at low levels i was getting exactly 10% a kill, then with merc sometimes it would be 8-9% and other times 6%. So maybe it is a smaller portion than half or maybe there is a hardcap on exp or both. either way, a merc wasnt bad exp and let me chain kill yellows.
 
Last edited:
Hey Pete, was just curious if you will be looking at expanding on the macro (works great by the way) to include the option of running a pler mode for example a higher level healer ex. druid that will follow the seeker around and heal, cast ds if it wears etc.
 
I can, but i don't have one of the PL classes to test with. Also, I would need to figure out what level spells can land on what level character.

As far as i know, this is the spell level breakout:
1) at level 1 you can receive a buff spell that goes up to level 49 (or 50, I don't recall)
2) at level 45 you can receive a level 60 buff spell (aego/kei)
3) at level 46 you can receive a buff up to level 65 (virtue, fo7, c5)
4) at level 61 you can receive any buff up through 90 i think.
5) There appears to be a 29 or 30 level limit max spread. So level 70 or 71 is the lowest a level 100 buff will land on.

I think the formula for spells level 50+ (29 or 30 level limit gap hardcap though) is: Spell level / 2 + 15

But i need people to confirm that data.


Technically you could already do this with bot.mac and XHeal section but i can write a simpler version for this that doesnt require an ini.
 
Last edited:
Ok got that working but one of the places I as using had a quest mob in the zone. can u put in an ini for ignore list? thanks Theicon