• 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

Problem - CastingInterruptOn causes DPS to stop casting anytime MA is below 70%

Joined
Oct 6, 2017
RedCents
997¢
Version of KissAssist.mac?
KA11
When did your problem start?
I think it's always been there, just spotted it today though
Character Role?
  1. Assist
What class is having this issue?
  1. Bard
  2. Cleric
  3. Druid
  4. Enchanter
  5. Magician
  6. Necromancer
  7. Paladin
  8. Ranger
  9. Shadow Knight
  10. Shaman
  11. Wizard
How often does this issue occur?
Always
Can you reproduce the issue?
Yep
It's by design currently but, just wanted to give you guys a heads up on this. I have really not given my casters the love they need lately and I was trying to figure out their DPS and just saw all of the spam of this message in MQ logs.

<InsetSpellHere> interrupted due to The Main Assist Needs a Heal

So I dug into the KA11 macro and found this logic which works wonderfully for my clerics but everyone else, it's causing tons of delays for them. If I'm reading the macro right here, everytime we cast a spell it calls the cast sub, which calls the castinterrupt sub, which runs this if statement if you have CastingInterruptOn set to 1. This iff statement is basically just like if you have an MA set, alive, and below 70%, /stopcast, I might be wrong but, I think that's the issue.

Code:
/if (${HealsOn}) {
            /if (${Spawn[${MainAssist}].PctHPs}<70 && ${Spawn[${MainAssist} ${MainAssistType}].ID} && ${Spawn[${MainAssist} ${MainAssistType}].Type.NotEqual[corpse]}) {
                /stopcast
                /varset CastResult CAST_CANCELLED
                /echo ${CIDSpell} interrupted due to The Main Assist Needs a Heal.

I'm thinking I just add something to the /if (${HealsOn}) line to be something like this, but I'll go with whatever the devs here think is best! This just works for me since all my real dps run dps=2

Code:
/if (${HealsOn} && !${DPSOn}==2) {
            /if (${Spawn[${MainAssist}].PctHPs}<70 && ${Spawn[${MainAssist} ${MainAssistType}].ID} && ${Spawn[${MainAssist} ${MainAssistType}].Type.NotEqual[corpse]}) {
                /stopcast
                /varset CastResult CAST_CANCELLED
                /echo ${CIDSpell} interrupted due to The Main Assist Needs a Heal.
 
Last edited:
I want them, to interrupt their nukes if their about to die to cast things like mind crash, concussion, dopleganger things like that. Also the shaman I do want to interrupt in some cases to heal the tank.
 
The easiest way to make this change is to find the CastInteruptDPS Routine(Sub CastInteruptDPS) and make the highlighted change:

Rich (BB code):
    Sub CastInteruptDPS(string CIDSpell)
        /if (${DebugCast}) /echo \atDEBUGCAST CastInteruptDPS Enter \agLine#: ${Macro.CurLine}
        /if (!${Int[${Me.Casting.ID}]}) /return
        /if (${Target.Type.Equal[pc]}) /return
        /if (${Target.PctHPs}<1 || ${Target.Type.Equal[corpse]} || !${Int[${Target.ID}]}) {
            /stopcast
            /varset CastResult CAST_CANCELLED
            /echo ${CIDSpell} interrupted due to Killing corpses is not required.
            /if (${DebugCast}) /echo \atDEBUGCAST CastInteruptDPSCheckDPS1: ${Target.PctHPs} ${Target.Type} ${Int[${Target.ID}]} \agLine#: ${Macro.CurLine}
        }
        [BGCOLOR=rgb(209, 72, 65)]/if (${HealsOn} && ${CastingInterruptOn}==1) {[/BGCOLOR]
            /if (${Spawn[${MainAssist}].PctHPs}<70 && ${Spawn[${MainAssist} ${MainAssistType}].ID} && ${Spawn[${MainAssist} ${MainAssistType}].Type.NotEqual[corpse]}) {
                /stopcast
                /varset CastResult CAST_CANCELLED
                /echo ${CIDSpell} interrupted due to The Main Assist Needs a Heal.
                /if (${DebugCast}) /echo \atDEBUGCAST CastInteruptDPS CheckDPS2: ${HealsOn}  ${Spawn[${MainAssist}].PctHPs} ${Spawn[${MainAssist} ${MainAssistType}].ID}  ${Spawn[${MainAssist} ${MainAssistType}].Type} \agLine#: ${Macro.CurLine}
            } else /if (${Select[${Role},pettank,petpullertank,hunterpettank]}>0 && ${Me.Pet.ID} && ${Me.Pet.PctHPs}<80) {
                /stopcast
                /varset CastResult CAST_CANCELLED
                /echo ${CIDSpell} interrupted due to my Pet Tank needs a heal.
                /if (${DebugCast}) /echo \atDEBUGCAST CastInteruptDPS CheckDPS3: ${HealsOn}  ${Me.Pet.ID} ${Me.Pet.PctHPs} \agLine#: ${Macro.CurLine}
            }
        }
        /if (${DebugCast}) /echo \atDEBUGCAST CastInteruptDPS Leave \agLine#: ${Macro.CurLine}
    /return

Now for the Characters you want to STOP Interrupting DPS to heal, but you still want interrupts to work. Set CastingInterruptOn=2 in the characters ini file.
 
Problem - CastingInterruptOn causes DPS to stop casting anytime MA is below 70%

Users who are viewing this thread

Back
Top
Cart