Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.

[General]
CastingInterruptOn=0
/if (${HealsOn}) {
/if (!${IAmMA} && ${Spawn[${MainAssist}].PctHPs}<70 && ${Spawn[${MainAssist} ${MainAssistType}].ID} && ${Spawn[${MainAssist} ${MainAssistType}].Type.NotEqual[corpse]}) {
/stopcast
/if (${HealsOn}) {
/if (!${IAmMA} && ${Spawn[${MainAssist}].PctHPs}<70 && ${Spawn[${MainAssist} ${MainAssistType}].ID} && ${Spawn[${MainAssist} ${MainAssistType}].Type.NotEqual[corpse]} && ${Select[${Me.Class.ShortName},nec,mag]}==0) {
/stopcast
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}
}
/if (${HealsOn}) {
/if (!${IAmMA} && ${Spawn[${MainAssist}].PctHPs}<70 && ${Spawn[${MainAssist} ${MainAssistType}].ID} && ${Spawn[${MainAssist} ${MainAssistType}].Type.NotEqual[corpse]} && ${Select[${Me.Class.ShortName},nec,mag]}==0) {
/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
/if (${GMailOn}) /call GmailIniParse
| -------------------------------------------------------------------------------------
| Assign Main Tank from command line parameter or targeted player, merc or pet
| -------------------------------------------------------------------------------------
/if (${GMailOn}) /call GmailIniParse
/if (${CastingInterruptOn}==1) /varset CastingInterruptOn 14
| -------------------------------------------------------------------------------------
| Assign Main Tank from command line parameter or targeted player, merc or pet
| -------------------------------------------------------------------------------------
/if (${CastingInterruptOn}) {
/if (${DebugCast}) /echo \atDEBUGCAST CastSpell ENTER Interrupts SentFrom ${sentFrom} Spell:${WhatSpell} CastID:${Me.Casting.ID} \agLine#: ${Macro.CurLine}
/if (${sentFrom.Equal[SingleHeal]}) {
/call CastInteruptHeals "${WhatSpell}"
} else /if (${Select[${sentFrom},dps,gom,burn]}>0) {
/call CastInteruptDPS "${WhatSpell}"
} else /if (${Select[${sentFrom},buffs,buffs-nomem]}>0) {
/call CastInteruptBuffs "${WhatSpell}"
}
/if (${DebugCast}) /echo \atDEBUGCAST CastSpell LEAVE Interrupts SentFrom ${sentFrom} \agLine#: ${Macro.CurLine}
}
/if (${CastingInterruptOn}) {
/if (${DebugCast}) /echo \atDEBUGCAST CastSpell ENTER Interrupts SentFrom ${sentFrom} Spell:${WhatSpell} CastID:${Me.Casting.ID} \agLine#: ${Macro.CurLine}
/if (${sentFrom.Equal[SingleHeal]}) {
/if ((${CastingInterruptOn}&2)==2) /call CastInteruptHeals "${WhatSpell}"
} else /if (${Select[${sentFrom},dps,gom,burn]}>0) {
/if ((${CastingInterruptOn}&4)==4) /call CastInteruptDPS "${WhatSpell}"
} else /if (${Select[${sentFrom},buffs,buffs-nomem]}>0) {
/if ((${CastingInterruptOn}&8)==8) /call CastInteruptBuffs "${WhatSpell}"
}
/if (${DebugCast}) /echo \atDEBUGCAST CastSpell LEAVE Interrupts SentFrom ${sentFrom} \agLine#: ${Macro.CurLine}
}
