Multi class mercenary macro suite

pikipiki

Lifetime Member
Joined
May 9, 2020
Messages
31
Reaction score
23
Points
8
As posted in General (link) this is a WORK IN PROGRESS of a set of modular macros aimed to make boxing easier virtually converting any class box character into a mercenary-alike (taking advantage of the most relevant features of each class better than the limited class suport EQ ones) in a simple way.

For more info check the post linked above. TLDR; :

* This is NOT a MQ2Bot replacement, but still allows you to AI automatically play boxes in group.
* Each class mercenary does NOT include the whole class ability sets, but delivers the most importat functions of its class in a solid way
* There is not a minimum character level, but because of EQ spell template evolution in time it would be advisable to best use on 80+ * chartacters or it will miss most of the spell/CA/AA lines
* Other than BRD, the box chooses what CA and spells to use/mem this is NOT customizable

Quick (not full) startup use:

1. Download the files into your macro folder. mcmerccore and mcmercutils are required for all classes.
2. Run /macro mcmercXXX where XXX is the class you want to macro merc box. (If you want to run all at once and you are on BC you can /noparse /bcaa //macro mcmerc${Me.Class.ShortName})
3. It's done. You will get all the info about current settings and merc messages in your MQ2 window.

Current supported classes are: CLR, SHM, WAR, BRD, ROG, BER and MNK, check post above again for current class limitations

Commands to mercs are event driven so as long as the merc client gets the command pattern it will parse the command. (Mind the local echo if you want that command to reach only one merc or multiple):

BRD:
+melodysw+1 2 3 4 5 6+ >> when in combat will play gem songs 1,2,3,4,5,6
+bellowon+ , +bellowoff+ >> will use bellow or not (if you want to save endurance)

WAR:

+tankdps+ , +tankmain+ , +tankoff+ >> merc will do only dps, try to keep aggro only on main assist mob or try to keep aggro on all aggro mobs (for a starter you may want to play either +tankdps+ if you want some other box to tank or +tankoff+ if you want that tank to control all aggro

General:

+passive+ , +efficient+ , +balanced+ , +burn+ >> switches merc modes, they DO NOT switch modes by themselves. Passive is 'do nothing' , 'efficient' is keep most cooldowns available, 'balanced' is cruise mode, 'burn' is use your class bests (for healers they set up the hp % threshold to apply different heals.

+autofollowon+name+ , +autofollowoff+ >> mercs will follow 'name' or stand still when not fighthing mobs, mind using name if you have familiars up, you can also use your ID

+pullon+ , +pulloff+ >> pull on is mercs will not run to assist on mobs if they are far away, pull off is they will run to mobs (follow setting will still apply when no mobs to assist on

+assistauto+ >> merc will assist on the 1st Auto Hater slot of the extended target window, no matter its placement
+assistxtma+ >> merc will assist on the 1st Group Assist Target slot of the extended target window, no matter its placement
+assistmanual+target+ >> merc will ignore the current assist target and will assist on the specified target ID instead (use something like ${Target.ID}) - +assistmanual++ clears any assist target

There are a few other commands, you can figure having a peek on mcmercore itself but are not too important to have things starting to run.

I give away for free to share the macros IF AND ONLY IF you don't use it to harrash, train, bottleneck, leapfrog other players. DO NOT use it to disturb full real PC or 'alt-tabbing' boxers, plenty of instances and zones to play in game to box without bugging off server mates.
I have put on this about probably 200+ hours, but as summertime gets to an end I will not have so much time to progress on so fast. If you have any comment, fix, bug, feature, you are most welcome to share and I may (or not) work on it depending on how a priority is or the time I have available.
If you don't like it (there is better stuff out there) just don't moan and don't use it, some other may find it useful instead.
You are free to modify it to your taste, just do not 'fork' distribute your changes, I'd like to keep control of the root version and not make of it a 'babel tower'
I currently have only 4 gold accounts to my test ability is limited. My goal is to buils a set including all classes (I've been playing the game since 2001 but I am less knowledgeable in some classes) and as I include features I often backtrack mostt done merc classes to include the new features/know-how. I am trying to balance the development of new class coding and old class enhancement/completion.

Lastly ... yes it's FREE if you use it for not wrongdoing. Even so, if you want to help (still subjet to my RL time allowance) on this to growth some Krono would greatly help so I can box at least full gold groups (atm 4 gold 2 silver and only gold ones ToV enabled) for testing - class coding.
 

Attachments

  • mcmerc.zip
    51.4 KB · Views: 19
These are all suggestions based on my experience, take them or leave them. Just providing input. Note: I've never actually ran the macro. But it's been said I know a couple things about berserkers.

Berserkers.
Hiatus - NO!
Breather line - YES!

It was vaguely debated if only momentarily that people wanted to use Hiatus/Relax etc with my plugins. The reasons for this decision is actually pretty straight forward.
Hiatus line - Long Cooldown, 10,000% slow, poop uptime.
Breather line - Very low cooldown, can be used between every clear of the XTarget window, combined with other options makes the berserker essentially have infinite endurance.
Here is the list I use currently. "Breather","Rest","Reprieve","Respite","Fourth Wind","Third Wind","Second Wind"

/if (${FearAllowed}) { logic for intimidation.

Intimidation only causes fear before rank 2 of the Intimidation AA. After that the "fear" freezes a mob in place (stuns them) instead of causing actual fear. Instead, it puts a debuff on the mob that increases damage.
1599193048355.png
The result is nothing less than a must have.

Disconcerting is better for overall average DPS than Mangling Discipline as Mangling has a longer cooldown than Disconcerting and mathmatically speaking the benefits to Disconcerting is better used as a filler disc when no other active disc is up and should be weaved with your epic 2.0, unless the 2.0 is being saved for a burn. Though with the 2.0 having a cooldown time of only 3 minutes with an uptime of 1 minute I see no reason to hang onto it. From what I can tell you're using the Mangling as part of a burn routine which some do, so not faulting the idea there.

Braxi Howl AA - This is best used in conjunction with the Dissident/Dichotomic ability immediately following. They both have a 1 minute cooldown, and go together beautifully. You also apparently have this restricted to "Fear allowed" requirement. I'm not sure I understand why since this Seizes the target with an equivilent duration fear and stun causing no actual running. I don't believe any such restriction is necessary unless it's been so long since I've had a lower level variant of it that it does in fact cause actual fear running at lower ranks of the AA.

Burns in general.
It looks like the burns are designed a "one burn to rule them all" Some things don't stack with other things, and in some cases they do -actually- stack, meaning you can have both on the buff bar, but usually have overlapping non-cumulative benefits. I'd recommend hashing over the routine and looking into a tiered burn system for the berserker as they lose a lot of potential ability dumping on burns.

Overall I can see that a lot of work was put into your macros. Again, don't take this as me knocking what you've done, but instead offering some suggestions with some of the "why" of those suggestions. I didn't really have time to really break it all into it's parts and go over every line of code, just a quick gloss over. Great job so far.
 
  • Like
Reactions: EQDAB and Brano11
Sure your comments are most welcome.

I've been raiding with ROG for 15+ years and never played the other classes so much in detail. For most of them I have mostly looked for relevant posts on boards, so fine tuning for performance is yet to happen and I am eager to read more from you and other knowledgeable people.

For instance on CLR or SHM most 'efficient' healing appears should would come having 2-3 'remedies' or 'reckless' heals but I wanted to keep it more simple and not change the logic of the modules so I didn't have to choose more than one spell per line. The reason for this is that having a similar 'development' cycle 'prototype alike' allows for a quite quick class macro writeup and easier maintenance, but certainly each module can and may be fine tuned in a future. The cost of this is lacking lower level spell integration or missing some AA or even lesser class role functions like SHM DoT dpsing, but these can be completed as the 'prototype' cycle goes on, it's been a model of code development followed in software engineering since long ago (there are many others too ...)

Some of your suggestions I can code as soon as I find a moment to do them, you and everybody else keep them comming, and thank you.

For instance the fear check is more a consistency check. The intimidations do not fear, I was unsure about braxis so I kept it up. ROG also have ligament slice that is depicted as a fear, whereas it works more as a blind and it does fear the mob (most trash really). I didn't spend much time finding out because on current content we don't care too much about fear effects so everybody would play with fear allowed, the same with snare or root.

My focus atm is to have 10-16 classes working in an integrated way, even if they perform 80-90% of the most optimal way than 4-5 working at 95-100% of their potential. Kind of following the 'pareto rule' (90% work done with 10% effort, 10% of the remaining work taking 90% of the job). But your most of your suggestions and possibly others can and should be added very easily and take profit of it.

Some times I spend some days working on a feature I need in a certain time. For instance I started doing hunter for the last ToV Rallos earring and so I worked a couple of days on the farming ability of the merc(s). I changed the 'farm' for 'name', or better said, added to that farming option, the option of adding targets by loc (since spawn names can and will change through respawn as I found out), added a 'fallback location' to run when no farm mob is available (merc farming so far is intended to be roam alike not camp-pull alike), and set up basis for farming based on user defined 'rectangle areas', so I should cover farming for roaming mobs but not going beyond on 'dangerous' zones, yet I still would like to add some AI as not to run into a mob with so much density that could cause troubles ... well is just part of the fun.
 
  • Like
Reactions: EQDAB
Did a quick update on Hiatus-Breather (Disc Timer 13) because it's the same code for MNK, ROG and WAR
Hiatus line now: Relax*Hiatus*Seventh Wind*Sixth Wind*Fifth Wind*Fourth Wind*Third Wind*Second Wind
Breather line now: Breather*Rest*Reprieve*Respite
When both available using Breather line CA over Hiatus line CA now.

For the Mangling-Disconcering (Disc Timer 21) you are right, when I saw they are on the same timer I put both on the main burn sequence. It makes sense to use Disconcerting when up while on balanced mode (pretty much as Knifeplay for ROG) as Mangling timer will come back soon in time in a long burn anyways. I am going to apply the same approach as Hiatus and Breather shared timer, and split the line in two. Use Disconcerting only on balanced and Mangling only on burn when up.

I've been trying to keep one line per timer more or less but I see it will not be enough for fine tuning optimizations, as long as I document it when it happens in code it should not be obscuring the code maintenance (I want to avoid that as much as I can in case I have to come back to the code long after). Probably will need to do the same for some healing spells, but that's a different story, one thing at each time.

Moved the Braxi activation right before Dicho, it was not too far, just a few other disc/aa in between but if it makes a difference it was a cut and paste move. As for the fear check I can't think anyone toggling fear off so I am going to let it go as it is atm and come back maybe in a future.

As for the burn sequence yes, only ROG should probably be the most accurate (the class I know) for the others a better stacking/sequencing would probably be found, suggestions welcome (MNK one too). I think I did a more elaborated sequencing for the WAR 'burn' tanking mitigation it's very tiered.

Also I am certain CLR AA 'burn healing boost' stacking would use some 'tiering'. Yet again it's a work in progress and what I want first is having all working properly for a start for the basic functionality and if the base coding is clean then optimizing it's a further step that should be easy to adapt.

Thank you again, looking forward for more coments, hints, tips ...
 
Last edited: