• 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

Question - Disc#s for SK

Almafa

Well-known member
Joined
Mar 28, 2019
RedCents
1,789¢
Hello Everyone,

Would anyone know the disc#s for the following SK discs:
Deflection
Inpenitent Influence
Restless Mantle

I would like to write the following Holyshits to start fighting a named with #1 deflection #2 inpenintent influence, #3 Restless Mantle.,

as far as I know the disc #s are needed...

thanks

holyshit3=/if (${Target.Named} && !${Me.ActiveDisc.ID} && ${Me.CombatAbilityReady[Deflection Discipline]}) /disc Deflection Discipline
holyshit4=/if (${Target.Named} && !${Me.ActiveDisc.ID} && !${Me.CombatAbilityReady[Deflection Discipline]} && ${Me.CombatAbilityReady[Impenitent Influence]}) /disc Impenitent Influence
holyshit5=/if (${Target.Named} && !${Me.ActiveDisc.ID} && !${Me.CombatAbilityReady[Deflection Discipline]} && !${Me.CombatAbilityReady[Impenitent Influence]} && ${Me.CombatAbilityReady[Restless Mantle]}) /disc Restless Mantle
 
run the disc. And issue the following

/echo ${Me.ActiveDisc.ID}

it will return the number you seek OR
you can look the ID up on raidloot.com in the spells section
 
In case someone else needs it:

holyshit3=/if (${Target.Named} && !${Me.ActiveDisc.ID} && ${Me.CombatAbilityReady[Deflection Discipline]}) /disc 4590
holyshit4=/if (${Target.Named} && !${Me.ActiveDisc.ID} && !${Me.CombatAbilityReady[Deflection Discipline]} && ${Me.CombatAbilityReady[Impenitent Influence]}) /disc 57953
holyshit5=/if (${Target.Named} && !${Me.ActiveDisc.ID} && !${Me.CombatAbilityReady[Deflection Discipline]} && !${Me.CombatAbilityReady[Impenitent Influence]} && ${Me.CombatAbilityReady[Restless Mantle]}) /disc 59166

run the disc. And issue the following

/echo ${Me.ActiveDisc.ID}

it will return the number you seek OR
you can look the ID up on raidloot.com in the spells section

I ended up using this: /echo ${Me.ActiveDisc.ID}
 
You do not need the disc numbers to activate them. How ever you do need the right rank, it wont work to try activating the wrong rank.

You can use ${Spell[ ].RankName} to make sure you have the right rank of the combat ability. For example:

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}

This is basically saying:

Am I the target's target, or is someone else's aggro on the target getting over 80%?
Am I marked as the group's main tank?
Is Unyielding Affirmation disc ready? (don't really need the rank name here, since none of them will be available if any of the ranks are unavailable, I just tend to be over the top)

Then cast what ever rank of the disc I have.

-----------------------------------------------

Some time back I got curious and worked out a holyshit using the $If[condition, true,false} TLO (Top Level Object) to help control my tank's discs. This is what I came up with, thought you might be interested. It is a little bit of a mind bender though.

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[Restless Mantle].RankName}]},/disc ${Spell[${Spell[Restless Mantle].RankName}].ID},${If[${Me.CombatAbilityReady[${Spell[Armor of Sincerity].RankName}]},/disc ${Spell[${Spell[Armor of Sincerity].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,]}]}]}]}]}]}

Let me break it down a little so it is easier to read and understand. First, the holyshit condition:
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 no disc is active and
If target distance is less than 75 and
If my endurance percentage is above 5% and

New group!
If target is named or
If I have more then 2 mobs on the extended target window or
If the target's level is 3 or more levels higher then mine or
If my health percentage drops below 75%

Then activate some defense! This is where the ${If[condition, true, false]} TLO comes in. How it works is, if the condition is true, it does the true part. If it is false, it does the false part. So, lets space out that to make it easier to understand:
Code:
${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[Restless Mantle].RankName}]},/disc ${Spell[${Spell[Restless Mantle].RankName}].ID},
${If[${Me.CombatAbilityReady[${Spell[Armor of Sincerity].RankName}]},/disc ${Spell[${Spell[Armor of Sincerity].RankName}].ID},
${If[${Me.CombatAbilityReady[${Spell[Reflexive Righteousness].RankName}]},/disc ${Spell[${Spell[Reflexive Righteousness].RankName}].ID},
${If[${Me.AltAbilityReady[Fundament:Spire of Holiness]},/casting "Fundament: Spire of Holiness" ALT,]}]}]}]}]}]}

This is "If condition, TRUE statement, next If TLO in False statement. So...

If Group Armor of the Inquisitor is ready, cast it. If not...
If Blessed Guardian Discipline is ready cast it. If not...
ect...

Been a while sine I updated my pally discs to ToV so this is untested.
 
Last edited:

You do not need the disc numbers to activate them. How ever you do need the right rank, it wont work to try activating the wrong rank.

You can use ${Spell[ ].RankName} to make sure you have the right rank of the combat ability. For exaple:

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}

This is basically saying:

Am I the target's target, or is someone else's aggro on the target getting over 80%?
Am I marked as the group's main tank?
Is Unyielding Affirmation disc ready? (don't really need the rank name here, since none of them will be available if any of the ranks are unabilable, I just tend to be over the top)

Then cast what ever rank of the disc I have.

-----------------------------------------------

Some time back I got curious and worked out a holyshit using the $If[condition, true,false} TLO (Top Level Object) to help control my tank's discs. This is what I came up with, thought you might be interested. It is a little bit of a mind bender though.

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[Restless Mantle].RankName}]},/disc ${Spell[${Spell[Restless Mantle].RankName}].ID},${If[${Me.CombatAbilityReady[${Spell[Armor of Sincerity].RankName}]},/disc ${Spell[${Spell[Armor of Sincerity].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,]}]}]}]}]}]}

Let me break it down a little so it is easier to read and understand. First, the holyshit condition:
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 no disc is active and
If target distance is less than 75 and
If my endurance percentage is above 5% and

New group!
If target is named or
If I have more then 2 mobs on the extended target window or
If the target's level is 3 or more levels higher then mine or
If my health peercentage drops below 75%

Then activate some defense! This is where the ${If[condition, true, false]} TLO comes in. How it works is, if the condition is true, it does the true part. If it is false, it does the false part. So, lets space out that to make it easier to understand:
Code:
${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[Restless Mantle].RankName}]},/disc ${Spell[${Spell[Restless Mantle].RankName}].ID},
${If[${Me.CombatAbilityReady[${Spell[Armor of Sincerity].RankName}]},/disc ${Spell[${Spell[Armor of Sincerity].RankName}].ID},
${If[${Me.CombatAbilityReady[${Spell[Reflexive Righteousness].RankName}]},/disc ${Spell[${Spell[Reflexive Righteousness].RankName}].ID},
${If[${Me.AltAbilityReady[Fundament:Spire of Holiness]},/casting "Fundament: Spire of Holiness" ALT,]}]}]}]}]}]}

This is "If condition, TRUE statement, next If TLO in False statement. So...

If Group Armor of the Inquisitor is ready, cast it. If not...
If Blessed Guardian Discipline is ready cast it. If not...
ect...

Been a while sine I updated my pally discs to ToV so this is untested.

Wow buddy...it Will take me for awhile to digest it. it is brilliant though!

my holy doesn't work. I tested and /disc #s fire, so I think something is off with the function. If I understand correctly from yours I should change the combat ability check....do you think it is right this way:

holyshit3=/if (${Target.Named} && !${Me.ActiveDisc.ID} && ${Me.CombatAbilityReady[${Spell[Deflection Discipline].RankName}]) /disc 4590

holyshit4=/if (${Target.Named} && !${Me.ActiveDisc.ID} && !${Me.CombatAbilityReady[${Spell[Deflection Discipline].RankName}] && ${Me.CombatAbilityReady[${Spell[Impenitent Influence].RankName}]) /disc 57953

holyshit5=/if (${Target.Named} && !${Me.ActiveDisc.ID} && !${Me.CombatAbilityReady[${Spell[Deflection Discipline].RankName}] && !${Me.CombatAbilityReady[${Spell[Impenitent Influence].RankName}] && ${Me.CombatAbilityReady[${Spell[Restless Mantle].RankName}]) /disc 59166
 
Don't use the /disc #####

instead use

/disc ${Spell[Unyielding Affirmation].RankName}

like Warlock used in the example
 
I hate to bother you guys with this...it is clearly over my head. I just had a named pop and the holy did not go off...what else can be wrong:

Holy 3-4-5 should go off in order...3 first etc.

[MQ2Melee]
holyflag1=1
holyflag2=1
holyflag3=1
holyflag4=1
holyflag5=1
holyshit1=/if (${Me.XTarget} > 3 && ${SpawnCount[npc radius 35]}>3 && ${Me.AltAbilityReady[Shield Flash]}) /multiline ; /alt act 1112 ; /alt act 9403 ; /alt act 1450 ; /useitem Innoruuk's Dark Blessing
holyshit2=/if (${Me.XTarget} > 3 && !${Target.Buff[Turgur's Insects].ID} && ${SpawnCount[npc radius 35]}>3 && !${Me.AltAbilityReady[Shield Flash]} && ${Me.AltAbilityReady[Veil of Darkness]} && !${Me.Song[Litch Sting Recourse].ID}) /multiline ; /alt act 854 ; /useitem Blood Drinker's Coating ; /useitem ${InvSlot[Chest].Item.Name}
holyshit3=/if (${Target.Named} && !${Me.ActiveDisc.ID} && ${Me.CombatAbilityReady[${Spell[Deflection Discipline].RankName}]), /disc ${Spell[Deflection Discipline].RankName}
holyshit4=/if (${Target.Named} && !${Me.ActiveDisc.ID} && !${Me.CombatAbilityReady[${Spell[Deflection Discipline].RankName}] && ${Me.CombatAbilityReady[${Spell[Impenitent Influence].RankName}]) , /disc ${Spell[Impenitent Influence].RankName}
holyshit5=/if (${Target.Named} && !${Me.ActiveDisc.ID} && !${Me.CombatAbilityReady[${Spell[Deflection Discipline].RankName}] && !${Me.CombatAbilityReady[${Spell[Impenitent Influence].RankName}] && ${Me.CombatAbilityReady[${Spell[Restless Mantle].RankName}]) , /disc ${Spell[Restless Mantle].RankName}
 
holyshit3=/if (${Target.Named} && !${Me.ActiveDisc.ID} && ${Me.CombatAbilityReady[${Spell[Deflection Discipline].RankName}]) /disc ${Spell[Deflection Discipline].RankName}
holyshit4=/if (${Target.Named} && !${Me.ActiveDisc.ID} && !${Me.CombatAbilityReady[${Spell[Deflection Discipline].RankName}] && ${Me.CombatAbilityReady[${Spell[Impenitent Influence].RankName}]) /disc ${Spell[Impenitent Influence].RankName}
holyshit5=/if (${Target.Named} && !${Me.ActiveDisc.ID} && !${Me.CombatAbilityReady[${Spell[Deflection Discipline].RankName}] && !${Me.CombatAbilityReady[${Spell[Impenitent Influence].RankName}] && ${Me.CombatAbilityReady[${Spell[Restless Mantle].RankName}]) /disc ${Spell[Restless Mantle].RankName}

Try those 3 I just posted, you had a "," between the /if statement and the /disc command
 
holyshit3=/if (${Target.Named} && !${Me.ActiveDisc.ID} && ${Me.CombatAbilityReady[${Spell[Deflection Discipline].RankName}]) /disc ${Spell[Deflection Discipline].RankName}
holyshit4=/if (${Target.Named} && !${Me.ActiveDisc.ID} && !${Me.CombatAbilityReady[${Spell[Deflection Discipline].RankName}] && ${Me.CombatAbilityReady[${Spell[Impenitent Influence].RankName}]) /disc ${Spell[Impenitent Influence].RankName}
holyshit5=/if (${Target.Named} && !${Me.ActiveDisc.ID} && !${Me.CombatAbilityReady[${Spell[Deflection Discipline].RankName}] && !${Me.CombatAbilityReady[${Spell[Impenitent Influence].RankName}] && ${Me.CombatAbilityReady[${Spell[Restless Mantle].RankName}]) /disc ${Spell[Restless Mantle].RankName}

Try those 3 I just posted, you had a "," between the /if statement and the /disc command
Can you tell that last time I programmed, it was on a Commodore 64? :)

Thank you for the "idiot proof" version...copy/ pasted it in and waiting on a named to spanw to see if it Works.

Warl0ck45 thank you for the post...I am still reading...beautiful code...one day I Will make it work on my SK.
 
If you prefer using the macro version, this in an include I wrote to use with RaidDruid.mac. (but can be used with any macro with some editing) This might give you some ideas on playing with the code while building your holyshits. I made this with the intent of getting my tanks to die less in certain situations, with out running them out of endurance by just poping disc's every fight, but also so I can switch off tanks on long fights. This has been working out for me for the most part, and putting in on a toggle in my macro means I can turn it on/off midfight.

Some of it needing updating so I made the adjustments before posting so, it is untested somewhat.

Code:
|**    Defense.inc V2.3
    Updated 20-04-28 (add ToV stuff)

     NecroGnomie:
        This include is ment to help automate defensive measures for various classes. There is no INI file to go with this,
            this is simply my version of what each class ought to be doing as each line of defense goes down. 
            Currently set up for use with AA, disc's, and BP clicks up to level 110.
            What this means is the include file should detect what disc/AA you have and click on it as "/call Defense" is activated. 
            It checks if the lowest versionof X line is available (no timer) And then starts with the highest version and works it's
            way down the list for that line, until it finds the highest rendition the toon has, and activates it.
        

    Someplace in your main loop put some sort of call, for example:
        "/if (!${Me.ActiveDisc.ID} && ${Me.CombatState.Equal[COMBAT]} && ${Select[${Me.Class.ShortName},WAR,PAL,SHD]} && (${Target.Named} || ${Me.XTarget}>2 || ${Me.PctHPs}<60) && ${Target.Distance}<75) /call Defense"

    Requires:
    Spell_Routines.inc
    

    This is set up to work with RaidDruid.mac, so it utilizes a ${ChatChannel} to make announcements. It also uses a message sub similar to:

    Sub AnnounceMessage(Channel, EventTotal, Color1, Event1, Color2, Event2, Color3, Event3, Color4, Event4, Color5, Event5,)
        /if (${Channel.Equal[BC]} && ${EventTotal.Equal[1]}) /BC [+${Color1}+] ${Event1}
        /if (${Channel.Equal[BC]} && ${EventTotal.Equal[2]}) /BC [+${Color1}+] ${Event1} [+${Color2}+] ${Event2}
        /if (${Channel.Equal[BC]} && ${EventTotal.Equal[3]}) /BC [+${Color1}+] ${Event1} [+${Color2}+] ${Event2} [+${Color3}+] ${Event3}
        /if (${Channel.Equal[BC]} && ${EventTotal.Equal[4]}) /BC [+${Color1}+] ${Event1} [+${Color2}+] ${Event2} [+${Color3}+] ${Event3} [+${Color4}+] ${Event4}
        /if (${Channel.Equal[BC]} && ${EventTotal.Equal[5]}) /BC [+${Color1}+] ${Event1} [+${Color2}+] ${Event2} [+${Color3}+] ${Event3} [+${Color4}+] ${Event4} ${Event5}
        /if (${Channel.NotEqual[BC]} && ${EventTotal.Equal[1]}) /${Channel} ${Event1}
        /if (${Channel.NotEqual[BC]} && ${EventTotal.Equal[2]}) /${Channel} ${Event1} ${Event2} 
        /if (${Channel.NotEqual[BC]} && ${EventTotal.Equal[3]}) /${Channel} ${Event1} ${Event2} ${Event3} 
        /if (${Channel.NotEqual[BC]} && ${EventTotal.Equal[4]}) /${Channel} ${Event1} ${Event2} ${Event3} ${Event4}
        /if (${Channel.NotEqual[BC]} && ${EventTotal.Equal[5]}) /${Channel} ${Event1} ${Event2} ${Event3} ${Event4} ${Event5}
        /return

    In RD type in "/reportdefense" to toggle, else add the declare to your current macro.
        EX: /declare ReportDefense         bool     outer

        If Defense.inc finds no "ReportDefense" variable, it will make one and default it to FALSE
        If Defense.inc finds no "ChatChannel" variable, it will make one and default it to Echo
**|
    
Sub Defense
    /if (!${Defined[ReportDefense]}) /declare ReportDefense bool outer FALSE
    /if (!${Defined[ChatChannel]}) /declare ChatChannel string outer echo
    /if (${Me.Class.ShortName.Equal[WAR]}) /call WarDefense
    /if (${Me.Class.ShortName.Equal[PAL]}) /call PalDefense
    /if (${Me.Class.ShortName.Equal[SHD]}) /call SKDefense
    /return

Sub WarDefense
    /if (!${Me.ActiveDisc.ID}) {
        /if (${Me.PctEndurance}>5) {
            /if (${Me.CombatAbilityReady[${Spell[Dichotomic Shield].RankName}]}) {
                /disc ${Spell[${Spell[Dichotomic Shield].RankName}].ID}
                /if (${ReportDefense}) /call AnnounceMessage 2 y "Dichotomic Shield" r "Active"
                /return        
                }
            /if (!${Me.CombatAbilityReady[${Spell[Dichotomic Shield].RankName}]}) {
                /if (${Me.CombatAbilityReady[${Spell[Defensive Discipline].RankName}]}) {
                    /if (${Spell[${Spell[Culminating Stand Discipline].RankName}].ID}) {
                        /disc ${Spell[Ultimate Stand Discipline].RankName}
                        /goto :WARStandEnd
                        }
                    /if (${Spell[${Spell[Culminating Stand Discipline].RankName}].ID}) {
                        /disc ${Spell[Culminating Stand Discipline].RankName}
                        /goto :WARStandEnd
                        }
                    /if (${Spell[${Spell[Last Stand Discipline].RankName}].ID}) {
                        /disc ${Spell[Last Stand Discipline].RankName}
                        /goto :WARStandEnd
                        }
                    /if (${Spell[${Spell[Final Stand Discipline].RankName}].ID}) {
                        /disc ${Spell[Final Stand Discipline].RankName}
                        /goto :WARStandEnd
                        }
                    /if (${Spell[${Spell[Defensive Discipline].RankName}].ID}) {
                        /disc ${Spell[Defensive Discipline].RankName}
                        /goto :WARStandEnd
                        }                        
                    :WARStandEnd
                    /if (${ReportDefense}) /call AnnounceMessage 2 y "Stand Discipline" r "Active"
                    /return
                    }
                }
            }
        /if (${Cast.Ready[${Me.Inventory[chest]}]}) {
            /call Cast "${Me.Inventory[chest]}" Item        
            /if (${castReturn.Equal[CAST_SUCCESS]}) /if (${ReportDefense}) /call AnnounceMessage 2 y "Clicking BP" r "Active"!
            /return
            }
        /if (${Me.CombatAbilityReady[${Spell[No Time To Bleed].RankName}]} && !${Me.CombatAbilityReady[${Spell[Defensive Discipline].RankName}]} && !${Me.CombatAbilityReady[${Spell[Dichotomic Shield].RankName}]}) {
            /if (${Me.CombatAbilityReady[${Spell[Pain Doesn't Hurt].RankName}]}) {
                /disc ${Spell[${Spell[Pain Doesn't Hurt].RankName}].ID}
                /if (${ReportDefense}) /call AnnounceMessage 2 y "Pain Doesn't Hurt" r "Active"
                /return
                }
            /if (${Me.CombatAbilityReady[${Spell[No Time To Bleed].RankName}]}) {
                /disc ${Spell[${Spell[No Time To Bleed].RankName}].ID}
                /if (${ReportDefense}) /call AnnounceMessage 2 y "No Time To Bleed" r "Active"
                /return
                }
            }
        /if (!${Me.CombatAbilityReady[${Spell[No Time To Bleed].RankName}]} && !${Me.CombatAbilityReady[${Spell[Defensive Discipline].RankName}]} && ${Me.CombatAbilityReady[${Spell[Armor of Draconic Runes].RankName}]} && ${Me.PctEndurance}>5) {
            /if (${Spell[${Spell[Armor of Relentless Runes].RankName}].ID}) {
                /disc ${Spell[Armor of Relentless Runes].RankName}
                /goto :WARRuneEnd
                }            
            Armor of Relentless Runes
            /if (${Spell[${Spell[Armor of Tenacious Runes].RankName}].ID}) {
                /disc ${Spell[Armor of Tenacious Runes].RankName}
                /goto :WARRuneEnd
                }
            /if (${Spell[${Spell[Armor of Darkened Runes].RankName}].ID}) {
                /disc ${Spell[Armor of Darkened Runes].RankName}
                /goto :WARRuneEnd
                }
            /if (${Spell[${Spell[Armor of Stalwart Runes].RankName}].ID}) {
                /disc ${Spell[Armor of Stalwart Runes].RankName}
                /goto :WARRuneEnd
                }
            /if (${Spell[${Spell[Armor of Mystical Runes].RankName}].ID}) {
                /disc ${Spell[Armor of Mystical Runes].RankName}
                /goto :WARRuneEnd
                }
            /if (${Spell[${Spell[Armor of Phantasmic Runes].RankName}].ID}) {
                /disc ${Spell[Armor of Phantasmic Runes].RankName}
                /goto :WARRuneEnd
                }
            /if (${Spell[${Spell[Armor of Timeworn Runes].RankName}].ID}) {
                /disc ${Spell[Armor of Timeworn Runes].RankName}
                /goto :WARRuneEnd
                }
            /if (${Spell[${Spell[Armor of Draconic Runes].RankName}].ID}) {
                /disc ${Spell[Armor of Draconic Runes].RankName}
                /goto :WARRuneEnd
                }                
            :WARRuneEnd
            /if (${ReportDefense}) /call AnnounceMessage 2 y "Runes Discipline" r "Active"
            /return
            }            
        /if (!${Me.CombatAbilityReady[${Spell[No Time To Bleed].RankName}]} && !${Me.CombatAbilityReady[${Spell[Defensive Discipline].RankName}]} && ${Window[CombatAbilityWnd].Child[CAW_CombatEffectLabel].Text.Equal[No Effect]}) {
            /if (${Me.AltAbilityReady[Warlord's Bravery]}) {
                /call Cast "Warlord's Bravery" ALT
                /if (${castReturn.Equal[CAST_SUCCESS]}) /if (${ReportDefense}) /call AnnounceMessage 2 y "Warlord's_Bravery" r "Active"
                /return    
                }
            /if (${Me.AltAbilityReady[Warlord's Tenacity]}) {
                /call Cast "Warlord's Tenacity" ALT
                /if (${castReturn.Equal[CAST_SUCCESS]}) /if (${ReportDefense}) /call AnnounceMessage 2 y "Warlords_Tenacity" r "Active"
                /return    
                }                
            /if (${Me.AltAbilityReady[Brace for Impact]}) {
                /call Cast "Brace for Impact" ALT
                /if (${castReturn.Equal[CAST_SUCCESS]}) /if (${ReportDefense}) /call AnnounceMessage 2 y "Brace_For_Impact" r "Active"        
                /return    
                }                
            /if (${Me.AltAbilityReady[Armor of Experience]}) {
                /call Cast "Armor of Experience" ALT
                /if (${castReturn.Equal[CAST_SUCCESS]}) /if (${ReportDefense}) /call AnnounceMessage 2 y "Armor_of_Experience" r "Active"
                /return            
                }                
            /if (${Me.AltAbilityReady[Spire of the Warlord]}) {
                /call Cast " Third Spire of the Warlord" ALT
                /if (${castReturn.Equal[CAST_SUCCESS]}) /if (${ReportDefense}) /call AnnounceMessage 2 y "Third_Spire" r "Active"
                /return            
                }                
            }            
        /if (${Me.AltAbilityReady[Blade Guardian]}) {
            /call Cast "Blade Guardian" ALT
            /if (${castReturn.Equal[CAST_SUCCESS]}) /if (${ReportDefense}) /call AnnounceMessage 2 y "Blade Guardian" r "Active"
            /return
            }    
        /if (${Me.AltAbilityReady[Hold the Line]}) {
            /call Cast "Hold the Line" ALT
            /if (${castReturn.Equal[CAST_SUCCESS]}) /if (${ReportDefense}) /call AnnounceMessage 2 y "Hold_the_Line" r "Active"
            /return        
            } else {
            /if (${Me.AltAbilityReady[Resplendent Glory]}) {
                /call Cast "Resplendant Glory" ALT
                /if (${castReturn.Equal[CAST_SUCCESS]}) /if (${ReportDefense}) /call AnnounceMessage 2 y "Respendant_Glory" r "Active"
                /return
                }
            }    
        /if (${Me.AltAbilityReady[Warlord's Resurgence]}) {
            /call Cast "Warlord's Resurgence" ALT
            /if (${castReturn.Equal[CAST_SUCCESS]}) /if (${ReportDefense}) /call AnnounceMessage 2 y "Warlord's_Resurgence" r "Active"
            /return
            }
        }
    /return    

Sub PalDefense
    /if (!${Me.ActiveDisc.ID}) {
        /if (${Me.AltAbilityReady[Group Armor of the Inquisitor]}) {
            /call Cast "Group Armor of the Inquisitor" ALT
            /if (${castReturn.Equal[CAST_SUCCESS]}) /if (${ReportDefense}) /call AnnounceMessage 2 y "Group Armor of the Inquisiton" r "Active"
            /return                
            }
        /if (${Me.PctEndurance}>5) {
            /if (${Me.CombatAbilityReady[${Spell[Holy Guardian Discipline].RankName}]}) {
                /if (${Spell[${Spell[Blessed Guardian Discipline].RankName}].ID}) {
                    /disc ${Spell[${Spell[Blessed Guardian Discipline].RankName}].ID}
                    } Else {
                    /disc ${Spell[${Spell[Holy Guardian Discipline].RankName}].ID}
                    }
                /if (${ReportDefense}) /call AnnounceMessage 2 y "Guardian Discipline, Defense line 1" r "Active"
                /return                
                }
            /if (!${Me.CombatAbilityReady[${Spell[Holy Guardian Discipline].RankName}]} && ${Me.CombatAbilityReady[${Spell[Honorific Mantle].RankName}]}) {        
                /if (${Spell[${Spell[Mantle of the Sapphire Cohort].RankName}].ID}) {
                    /disc ${Spell[Mantle of the Sapphire Cohort].RankName}
                    /goto :PALMantleEnd
                    }            
                /if (${Spell[${Spell[Kar'Zok Mantle].RankName}].ID}) {
                    /disc ${Spell[Kar'Zok Mantle].RankName}
                    /goto :PALMantleEnd
                    }
                /if (${Spell[${Spell[Skalber Mantle].RankName}].ID}) {
                    /disc ${Spell[Skalber Mantle].RankName}
                    /goto :PALMantleEnd
                    }
                /if (${Spell[${Spell[Brightwing Mantle].RankName}].ID}) {
                    /disc ${Spell[Brightwing Mantle].RankName}
                    /goto :PALMantleEnd
                    }
                /if (${Spell[${Spell[Prominent Mantle].RankName}].ID}) {
                    /disc ${Spell[Prominent Mantle].RankName}
                    /goto :PALMantleEnd
                    }
                /if (${Spell[${Spell[Honorific Mantle].RankName}].ID}) {
                    /disc ${Spell[Honorific Mantle].RankName}
                    /goto :PALMantleEnd
                    }
                /if (${Spell[${Spell[Armor of Endless Honor].RankName}].ID}) {
                    /disc ${Spell[Armor of Endless Honor].RankName}
                    /goto :PALMantleEnd
                    }                    
                :PALMantleEnd
                /if (${ReportDefense}) /call AnnounceMessage 2 y "Mantle Discipline, Defense line 2" r "Active"    
                /return
                }
            /if (!${Me.CombatAbilityReady[${Spell[Honorific Mantle].RankName}]} && ${Me.CombatAbilityReady[${Spell[Armor of Courage].RankName}]}) {    
                /if (${Spell[${Spell[Armor of Sincerity].RankName}].ID}) {
                    /disc ${Spell[Armor of Sincerity].RankName}
                    /goto :PALArmorEnd
                    }            
                /if (${Spell[${Spell[Armor of Mercy].RankName}].ID}) {
                    /disc ${Spell[Armor of Mercy].RankName}
                    /goto :PALArmorEnd
                    }        
                /if (${Spell[${Spell[Devout Penitence].RankName}].ID}) {
                    /disc ${Spell[Devout Penitence].RankName}
                    /goto :PALArmorEnd
                    }
                /if (${Spell[${Spell[Reverent Penitence].RankName}].ID}) {
                    /disc ${Spell[Reverent Penitence].RankName}
                    /goto :PALArmorEnd
                    }
                /if (${Spell[${Spell[Armor of Zeal].RankName}].ID}) {
                    /disc ${Spell[Armor of Zeal].RankName}
                    /goto :PALArmorEnd
                    }
                /if (${Spell[${Spell[Armor of Courage].RankName}].ID}) {
                    /disc ${Spell[Armor of Courage].RankName}
                    /goto :PALArmorEnd
                    }        
                :PALArmorEnd
                /if (${ReportDefense}) /call AnnounceMessage 2 y "Penitence Discipline, Defense line 3" r "Active"
                /return         
                }
            }
        /if (!${Me.CombatAbilityReady[${Spell[Armor of Courage].RankName}]}) {
            /if (${Me.AltAbilityReady[Armor of Experience]}) {
                /call Cast "Armor of Experience" ALT
                /if (${ReportDefense}) /call AnnounceMessage 2 y "Armor of Experience" r "Active"
                /return                
                }
            /if (${Me.AltAbilityReady[ Third Spire of Holiness]}) {
                /call Cast " Third Spire of Holiness" ALT
                /if (${castReturn.Equal[CAST_SUCCESS]}) /if (${ReportDefense}) /call AnnounceMessage 2 y "First Spire" r "Active"
                /return            
                }
            }
    }
    /return

Sub SKDefense
    /if (!${Me.ActiveDisc.ID}) {
        /if (${Me.PctEndurance}>5) {
            /if (${Me.CombatAbilityReady[${Spell[Unholy Guardian Discipline].RankName}]}) {
                /if (${Spell[${Spell[Cursed Guardian Discipline].RankName}].ID}) {
                    /disc ${Spell[${Spell[Cursed Guardian Discipline].RankName}].ID}
                    } Else {
                    /disc ${Spell[${Spell[Unholy Guardian Discipline].RankName}].ID}
                    }
                /if (${ReportDefense}) /call AnnounceMessage 2 y "Guardian Discipline, Defense line 1" r "Active"
                /return                
                }
            /if (!${Me.CombatAbilityReady[${Spell[Unholy Guardian Discipline].RankName}]} && ${Me.CombatAbilityReady[${Spell[Ichor Guard].RankName}]}) {
                /if (${Spell[${Spell[Restless Mantle].RankName}].ID}) {
                    /disc ${Spell[Restless Mantle].RankName}
                    /goto :SKMantleEnd
                    }
                /if (${Spell[${Spell[Krellnakor Mantle].RankName}].ID}) {
                    /disc ${Spell[Krellnakor Mantle].RankName}
                    /goto :SKMantleEnd
                    }
                /if (${Spell[${Spell[Doomscale Mantle].RankName}].ID}) {
                    /disc ${Spell[Doomscale Mantle].RankName}
                    /goto :SKMantleEnd
                    }
                /if (${Spell[${Spell[Bonebrood Mantle].RankName}].ID}) {
                    /disc ${Spell[Bonebrood Mantle].RankName}
                    /goto :SKMantleEnd
                    }
                /if (${Spell[${Spell[Gorgon Mantle].RankName}].ID}) {
                    /disc ${Spell[Gorgon Mantle].RankName}
                    /goto :SKMantleEnd
                    }
                /if (${Spell[${Spell[Malarian Mantle].RankName}].ID}) {
                    /disc ${Spell[Malarian Mantle].RankName}
                    /goto :SKMantleEnd
                    }
                /if (${Spell[${Spell[Umbral Carapace].RankName}].ID}) {
                    /disc ${Spell[Umbral Carapace].RankName}
                    /goto :SKMantleEnd
                    }
                /if (${Spell[${Spell[Soul Carapace].RankName}].ID}) {
                    /disc ${Spell[Soul Carapace].RankName}
                    /goto :SKMantleEnd
                    }
                /if (${Spell[${Spell[Soul Shield].RankName}].ID}) {
                    /disc ${Spell[Soul Shield].RankName}
                    /goto :SKMantleEnd
                    }
                /if (${Spell[${Spell[Soul Guard].RankName}].ID}) {
                    /disc ${Spell[Soul Guard].RankName}
                    /goto :SKMantleEnd
                    }
                /if (${Spell[${Spell[Ichor Guard].RankName}].ID}) {
                    /disc ${Spell[Ichor Guard].RankName}
                    /goto :SKMantleEnd
                    }                    
                :SKMantleEnd
                /if (${ReportDefense}) /call AnnounceMessage 2 y "SK Mantle Defense, Defense line 2 r "Active"
                /return
                }
            /if (!${Me.CombatAbilityReady[${Spell[Ichor Guard].RankName}]} && ${Me.CombatAbilityReady[${Spell[Gorgon Carapace].RankName}]}) {
                /if (${Spell[${Spell[Cadcane's Carapace].RankName}].ID}) {
                    /disc ${Spell[Cadcane's Carapace].RankName}
                    /goto :SKArmorEnd
                    }            
                /if (${Spell[${Spell[Tylix's Carapace].RankName}].ID}) {
                    /disc ${Spell[Tylix's Carapace].RankName}
                    /goto :SKArmorEnd
                    }
                /if (${Spell[${Spell[Vizat's Carapace].RankName}].ID}) {
                    /disc ${Spell[Vizat's Carapace].RankName}
                    /goto :SKArmorEnd
                    }
                /if (${Spell[${Spell[Grelleth's Carapace].RankName}].ID}) {
                    /disc ${Spell[Grelleth's Carapace].RankName}
                    /goto :SKArmorEnd
                    }
                /if (${Spell[${Spell[Sholothian Carapace].RankName}].ID}) {
                    /disc ${Spell[Sholothian Carapace].RankName}
                    /goto :SKArmorEnd
                    }
                /if (${Spell[${Spell[Gorgon Carapace].RankName}].ID}) {
                    /disc ${Spell[Gorgon Carapace].RankName}
                    /goto :SKArmorEnd
                    }                    
                :SKArmorEnd
                /if (${ReportDefense}) /call AnnounceMessage 2 y "Carapace Discipline, Defense line 3" r "Active"
                /return                
                }
            }
        /if (!${Me.CombatAbilityReady[${Spell[Gorgon Mantle].RankName}]}) {
            /if (${Me.AltAbilityReady[Spire of the Reaver]}) {
                /call Cast "Spire of the Reaver" ALT
                /if (${castReturn.Equal[CAST_SUCCESS]}) /if (${ReportDefense}) /call AnnounceMessage 2 y "Third Spire" r "Active"
                /return            
                }
            /if (!${Me.AltAbilityReady[Spire of the Reaver]} && ${Me.AltAbilityReady[Armor of Experience]}) {
                /call Cast "Armor of Experience" ALT
                /if (${castReturn.Equal[CAST_SUCCESS]}) /if (${ReportDefense}) /call AnnounceMessage 2 y "Armor of Experience"  r "Active"
                /return            
                }    
        }
    }
/return
 
Last edited:
a few things
1. Only make the conditions as complex as absolutely needed. Trying to analyse whether all that is working as intended is waaaaay hard. Kiss.
2.
You do not need the disc numbers to activate them

This is not universally true. For example monk Dissident will not fire unless one uses the disc ID.
Using the name rather than number certainly helps from a readability perspective, the .rankname from an upgrade perspective, but the numbers work (provided they are incremented for correct rank)
3. I think there is a max string length on conditions. Its been extended in the recent past but I’m not sure it’s a <CLOB> yet !. But check if not getting right behaviour.
4.
Some time back I got curious and worked out a holyshit using the$If[condition, true,false} TLO (Top Level Object) to help control my tank's discs. This is what I came up with, thought you might be interested. It is a little bit of a mind bender though.
when I read this, it’s like , ahah YES of course, but it’s the first time I’ve seen that. Thanks for sharing the tip.

so much good info hear.
 
I start to feel like a whiner...I am getting the following error and I could use help:

Failed to parse /if condition'(FALSE &&!NULL && $(Me.CombatAbilityReady[Deflection Discipline]), non numeric encounter.

Looks like it doesn't like disc names...

I am getting error for every line where the disc name is in the check part.

Could I get some help with this please?
 
I presume you are using the above posted

Code:
holyshit3=/if (${Target.Named} && !${Me.ActiveDisc.ID} && ${Me.CombatAbilityReady[${Spell[Deflection Discipline].RankName}]) /disc ${Spell[Deflection Discipline].RankName}

it is missing an end bracket } on ${Me.CombatAbilityReady[${Spell[Deflection Discipline].RankName}]

There is a LOT of trial and error when messing with codes, and something like this eventually pops up from time to time.

The easiest way to test a line of code is a copy of XXX that you want to test and while ingame type in /echo and paste in your test code, to see what MQ reads it as. (You may need to set up the ingame paste function under option-keys)
 
I presume you are using the above posted

Code:
holyshit3=/if (${Target.Named} && !${Me.ActiveDisc.ID} && ${Me.CombatAbilityReady[${Spell[Deflection Discipline].RankName}]) /disc ${Spell[Deflection Discipline].RankName}

it is missing an end bracket } on ${Me.CombatAbilityReady[${Spell[Deflection Discipline].RankName}]

There is a LOT of trial and error when messing with codes, and something like this eventually pops up from time to time.

The easiest way to test a line of code is a copy of XXX that you want to test and while ingame type in /echo and paste in your test code, to see what MQ reads it as. (You may need to set up the ingame paste function under option-keys)

Great, thanks for the advice. I fixed it...tested it...it was the silly bracket. My god...I wish I had more attention to detail….
 
Question - Disc#s for SK

Users who are viewing this thread

Back
Top
Cart