MQ2Melee, being a plugin, in theory would run faster. In practice... it wont cast a spell if you are already casting a spell. If, for instance, your Macros is fine tuned enough to keep casting at a critter with no-near no delay, MQ2melee doing it's thing is hit-or-miss. It will check HS1, if it can't cast, it moves on. (at least in my experience...)
Where as in a macro, X1 happens then X2 happens then X3 happens.
Its more about what you are trying to accomplish VS how you set things up.
As an example, some macros move at, shall we say a "stately" pace. They get the job done, but they kinda plod along while doing it. If your macro isn't quite getting X thing accomplished, you can try making it a HS and check the results.
On the other hand... the modified AFNuke macro for example keeps a wizard pretty much non stop burning a mob down to ash and beyond. Putting something in MQ2Melee would be for something between fights.
And then of course it is a matter of... what you are trying to accomplish. For the most part my casters have very little to nothing in MQ2melee... they don't generally melee!
But my melee'ing toons have some.. some rather extensive. A lot of it though is just because sometimes I am not running macros, and sometimes I am running different macros... but I want to ensure X thing happens.
For example...
Code:
holyshit1=/if (!${Me.ActiveDisc.ID} && ${Target.Distance}<75 && ${Me.PctEndurance}>5 && (${Target.Named} || ${Me.XTarget}>2 || ${Target.Level}>=${Math.Calc[${Me.Level}+3]} || ${Me.PctHPs}<75)) ${If[${Me.AltAbilityReady[Group Armor of the Inquisitor]},/casting "Group Armor of the Inquisitor" ALT,${If[${Me.CombatAbilityReady[${Spell[Blessed Guardian Discipline].RankName}]},/disc ${Spell[${Spell[Blessed Guardian Discipline].RankName}].ID},${If[${Me.CombatAbilityReady[${Spell[Kar'Zok Mantle].RankName}]},/disc ${Spell[${Spell[Kar'Zok Mantle].RankName}].ID},${If[${Me.CombatAbilityReady[${Spell[Armor of Mercy].RankName}]},/disc ${Spell[${Spell[Armor of Mercy].RankName}].ID},${If[${Me.CombatAbilityReady[${Spell[Reflexive Righteousness].RankName}]},/disc ${Spell[${Spell[Reflexive Righteousness].RankName}].ID},${If[${Me.AltAbilityReady[Fundament: First Spire of Holiness]},/casting "Fundament: First Spire of Holiness" ALT,]}]}]}]}]}]}
You can go holy batshit crazy with a holy (in this case it is judging if the tank needs to go defensive, and then firing the first one that is available)
Code:
holyshit10=/if ((${Me.TargetOfTarget.ID}!=${Me.ID} || ${Me.SecondaryPctAggro}>80) && ${Group.MainTank.ID}==${Me.ID} && ${Me.CombatAbilityReady[${Spell[Unyielding Affirmation].RankName}]}) /disc ${Spell[Unyielding Affirmation].RankName}
Or you can keep it simple, and make a series of them.
You simply have to be careful and aware that MQ2Melee will run so long as it is loaded. So if you have a HS that, for instance, keeps X buff up... and you have something that blocks the buff... your toon will stand there chain casting until infinity and beyond trying to get that buff to stick, if you do not put some common sense checks on it.
Where as most of your macros have those common sense checks already put in place... you just supply the "what spell" and "buff icon" part.
And of course... upgrade time!! When you get spell/ability/item upgrades... do you want to dig in a melee INI or macro INI.