Every time I try to run it, I get the following error:
Couldn't open include file: C:\Documents and Settings\.....\macros\spell_routines.inc
The current macro has ended.
Unable to add macro line.
WTF is up?!
Don't flame pleeb
Moderator: MacroQuest Developers
FYI Found the fix here, MQ2 issue.drcrimzon wrote:"You do not seem to have that spell memorized." and I cant figure out what side is generating it.
I am dealing with this exact issue in my own shaman macro. Currentlly when I bot him, I just make sure I have a hotkey with /mqpause on it. If I get an add I pause it, take care of the add manaually, and then go back to the original. I leave it on pause until they're both dead, otherwise he'll reslow the original target and then the add again. It's inconvenient, but when I'm botting I tend to stick with single pull camps. I don't know enough to make a fully aware bot that watches for adds, determines if they are aggro, etc. Maybe someday, but for now /mqpause works for me :-)I tried to manually slow, but with the macro running, it is hard to target something long enough to cast the spell (The second you change your target, the macro re-assists the MA.)
I guess you could add a routine to answer a group called "Slow" to assist the person who called the slow, and cast slow, then go back to MA's target.
Code: Select all
/if (${Me.State.Equal[Stand]}) /sit Code: Select all
Sub DebuffSub
/call IterateNPC
/varset DebuffTimer ${DebuffCheckTime}
/declare a int local
/declare b int local
/declare c int local
/declare MATarget int local 0
/if (${PauseAssist}==0) {
/if (${TankName.Length}>0 && !${TankName.Equal[Main Assist Name]}) {
/if (${Spawn[pc ${TankName}].Distance}<200) {
/squelch /target myself
/delay 1s ${Target.ID}==${Me.ID}
/assist ${TankName}
/delay 1s ${Target.ID}!=${Me.ID}
/varset MATarget ${Target.ID}
}
}
}
/for a 1 to ${TrackNumber}
/doevents Enraged
/call AdvPathCall
/if (${PauseDebuffs}==0 && !${Me.Moving}) {
/if (${MobList[${a}]}!=0) {
/for b 1 to ${DebuffCount}
/doevents Enraged
/if (${MobList[${a}]}!=${MATarget} && ${DebuffOnMATarget[${b}]}==1 && ${PauseAssist}==0) /goto :BreakOutDebuff
/if (${VarNpcCount}<${DebuffMinMobsInArea[${b}]}) /goto :BreakOutDebuff
/call AdvPathCall
/squelch /target id ${MobList[${a}]}
/delay 1s ${Target.ID}==${MobList[${a}]}
/if (!${Target.Type.Equal["NPC"]}) /goto :NotNPC
/if (${Spawn[${MobList[${a}]}].Distance}>${Radius}) /goto :NotNPC
/if (((${MDL[${a},${b}]}==0)||(${MDL[${a},${b}]}<${Math.Calc[${Macro.RunTime}]}))&&(${Spawn[${MobList[${a}]}].PctHPs}<=${DebuffMinHealth[${b}]})&&(${Spawn[${MobList[${a}]}].PctHPs}>${DebuffMinHealthNoCast[${b}]})&&(!${Spawn[${MobList[${a}]}].State.Equal["DEAD"]})&&(${Me.PctMana}>${DebuffMinMana[${b}]})) {
/if (((!${Debuff[${b}].Find["item"]})&&(!${Debuff[${b}].Find["activate"]}))&&((!${Me.SpellReady["${Debuff[${b}]}"]})&&(${Me.Gem["${Debuff[${b}]}"]}))) {
/for c 1 to 30
/delay 1
/if (${Me.SpellReady["${Debuff[${b}]}"]}) {
/goto :ContinueDebuff
}
/next c
/if (!${Me.SpellReady["${Debuff[${b}]}"]}) /goto :BreakOutDebuff
}
:ContinueDebuff
/if (!${Target.ID}>0) /goto :NotNPC
/echo Debuffing: -[ ${Spawn[${MobList[${a}]}].CleanName} ]- with ${Debuff[${b}]}.
/if (${FaceBeforeDebuff}==1) /face
/if (${Announce}==1) {
/call Debuff ${MobList[${a}]} "${Debuff[${b}]}" "${DebuffAnnounce[${b}]}" ${a} ${b} "${DebuffMemToSlot[${b}]}"
} else {
/call Debuff ${MobList[${a}]} "${Debuff[${b}]}" "NULL" ${a} ${b} "${DebuffMemToSlot[${b}]}"
}
/if (${Macro.Return.Equal["CAST_LOSTTARGET"]}) {
/delay 5
/return
}
/if (${Macro.Return.Equal["NODELAY"]}) {
/if (${DebuffDuration[${b}]}==99999) {
/varset MDL[${a},${b}] ${Math.Calc[99999+${Macro.RunTime}]}
} else /if (${DebuffDuration[${b}]}==0) {
/if (${Spell[${DebuffID[${b}]}].Duration.TotalSeconds}==0) {
/varset MDL[${a},${b}] ${Math.Calc[(1+${Macro.RunTime})-5]}
} else {
/varset MDL[${a},${b}] ${Math.Calc[(${Spell[${DebuffID[${b}]}].Duration.TotalSeconds}+${Macro.RunTime})-5]}
}
} else {
/varset MDL[${a},${b}] ${Math.Calc[(${DebuffDuration[${b}]}+${Macro.RunTime})-5]}
}
} else {
/varset MDL[${a},${b}] ${Math.Calc[15+${Macro.RunTime}]}
}
/if (${PauseHeals}==0 && ${HealTimer}==0) /call HealCheck
/if (${PausePet}==0 && ${PetCheckTimer}==0) /call PetCheck
}
:BreakOutDebuff
/next b
/if (${PauseEvents}==0 && ${EventTimer}==0 && !${Me.Moving}) /call EventCheck
/if (${PauseHeals}==0 && ${HealTimer}==0) /call HealCheck
}
}
:NotNPC
/doevents
/next a
/return