• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

Macro - Balance xtarget mobs

Joined
Jun 18, 2014
RedCents
2,534¢
Okay this is an old macro, its from the mothership (mq2.com) I dont remember who wrote it, but I have modded it for a much tighter balance. Near the bottom of the macro is were you set the difference you want to keep, it is set for 2% right now. Can run this on more than on toon at a time and all it does is switch mobs to keep them balanced, it does now skills or abilities. This macro made it possible to kill high guard in Soltaris easly. How it works is once the mobs you want are on the xtarget list start the macro and it will balance the mobs till dead or the xtarget list is cleared which it will auto end.
update 1.5: Added pet attack and I believe swarmpet attack its untested with this mod
 

Attachments

Last edited:
I'm not that great with macs but I think I could use this on my mage. Where could I add /pet attack command so that after it is given after every switch? Could I replace attack on so that mage does not run to mobs. This would help me in missions when i need to tank and argo a wave with a pet.
 
I've been trying this macro, but every time I run it I am getting

Unparsable in calculation: '$'
balance.mac@11 (main): /if (!${Me.Combat} || ${Target.ID ==${HighHPID}) {
The current macro has ended.

Failed to parse /if condition '(!FALSE || ${Target.ID == NULL)',
non-numeric encountered.

How can I stop this from happening?

Thanks.
 
find this line :
/declare HighHPID int local 0
and change it to:
/declare HighHPID int outer 0
 
@kaen01 I tried to apply the change but got the following error like @Mongo

Unparsable in calculation: '$'
balance.mac@11 (main): /if (!${Me.Combat} || ${Target.ID ==${HighHPID}) {
The current macro has ended.

Failed to parse /if condition '(!FALSE || ${Target.ID == NULL)',
non-numeric encountered.

Anything else I should change? I've been trying this out when I had 2 targets on the XTarget list.
 

Attachments

/if (!${Me.Combat} || ${Target.ID ==${HighHPID}) needs to be /if (!${Me.Combat} || ${Target.ID}==${HighHPID})

just missing a curlyboi at the end of Target.ID
 
I copied and pasted the change and got a new error:

Failed to parse /if command. Could not find command to execute
balance.mac@11 (Main): /if (!${Me.Combat} || ${Target.ID}==${HighHPID})
The current macro has ended.
 
I copied and pasted the change and got a new error:

Failed to parse /if command. Could not find command to execute
balance.mac@11 (Main): /if (!${Me.Combat} || ${Target.ID}==${HighHPID})
The current macro has ended.
yeah you still have to have the { other curlyboi for the if statement

/if (!${Me.Combat} || ${Target.ID}==${HighHPID}) { is the full line 11
 

Attachments

remember all the curlybois, or sics gonna come into your home at night and give you a curlyboi :D
 
Hopefully almost got it. Now I get this message repeatedly:
/declare HighHPID failed. Name already in use
balance.mac@25 (HighHP): /declare HighHPID int outer 0
balance.mac@10 (Main): /call HighHP
 
You are declaring a variable inside a loop. While you shouldn't need to do that... if you must,
Code:
/if (!${Defined[HighHPID]}) {
    /declare HighHPID int outer TheValueGoesHere
} else {
    /varset HighHPID TheValueGoesHere
}
 
Your better option here would be to declare all the variables that aren't local before the main loop, since they will persist so long as the macro is running. Then you need only /varset the HighHPID whenever you want to change the value, or when you want to set it to 0 or something.

Code:
Sub Main
    /declare HighHPID int outer 0
    /declare highhppct int outer 99
    /echo Version 1.5
    /while (1) {
        /if (${Me.XTarget}==0) /end
        /if (!${Target.ID}) /target id ${Me.XTarget[1].ID}
        /call HighHP
        /if (!${Me.Combat} || ${Target.ID} == ${HighHPID}) {
            /attack on
            /pet attack
            /pet swarm
        }
        /delay 1
    }
/end

Sub HighHP
    /declare x int local 0
    /declare LowHP int local ${Target.PctHPs}
    /declare LowHPID int local ${Target.ID}
    /declare HighHP int local 0
    
    /for x 1 to ${Me.XTarget}
        /if (${Me.XTarget[${x}].PctHPs}<${LowHP}) {
            /varset LowHP ${Me.XTarget[${x}].PctHPs}
            /varset LowHPID ${Target.ID}
        }
        /if (${Me.XTarget[${x}].PctHPs}>${HighHP}) {
            /varset HighHP ${Me.XTarget[${x}].PctHPs}
            /varset HighHPID ${Me.XTarget[${x}].ID}
        }
    /next x
    
    /declare HPDiff int local 0
    /varcalc HPDiff ${HighHP}-${LowHP}
    /if (${HPDiff}>=2 && ${Target.ID}!=${HighHPID}) {
        /target id ${HighHPID}
        /delay 2s ${Target.ID}==${HighHPID}
    }
/return

That should do it.
 
Just tried this macro on the balancer/splitter raid in Solteris with a 105 BST (19k AAs) using Lceanium weapons and Cohort gear and it works beautifully. I just made sure to take off all possible DS buffs and it kept them very balanced and made the raid easy. The pet being used to help balance them is a very nice touch, I like it :)
 
Yes this is working now. The next step for me would be how to get my casters to continue casting spells after I start this macro. So far I noticed the casters gaining skill points from using their daggers and not casting anything and my cleric stopped healing everybody...not quite what I had in mind :rolleyes:
 
@sirkenshin if you're using KissAssist to operate your group then running this macro will turn off kissassist and run this instead. You shouldn't use this on the healer if you are going to need healing to occur. Casters being controlled by kissassist will no longer do their DPS routines, thus the casting doesn't work anymore.

This is useful for a very specific situation, if you need your group to operate at full potential then you wouldn't be able to use this macro.
 
Yeah I was trying to get it to work on End of Empire group mission to balance kills to keep my group from getting overrun with Sarnaks. Guess I'll try switch commands instead.
 
Macro - Balance xtarget mobs

Users who are viewing this thread

Back
Top
Cart