| -------------------------------------------------------------------------------------
| SUB: Do Mez Stuff
| -------------------------------------------------------------------------------------
Sub DoMezStuff
/doevents
/if (!${MezOn} || ${Window[RespawnWnd].Open} || ${DMZ}) {
/if (${Target.ID}) /tar id ${Target.ID}
/return
}
/if (${DebugMez}) /echo ...debug_mez DoMezStuff: enter
/declare i int local
/declare SkipMezOld int local ${Ini[${IniFileName},Mez,MezStopHPs]}
| Reset skip mez on health setting if tank dies to 1%
/if (!${Spawn[=${MainAssist}].ID}) /varset MezStopHPs 1
/call MobRadar ${MezRadius}
/if (${DebugMez}) /echo ${MobCount}<2 && ${Spawn[=${MainAssist}].ID}
/if (${MobCount}<2 && ${Spawn[=${MainAssist}].ID}) {
/if (${Target.ID}) /tar id ${Target.ID}
/return
}
/for i 1 to 10
| Every Mez test conditon is listed seperately for clarity
| Test -> array not empty, target=array, above mez hps, within mez levels, line of sight, not a giant, immune list, mob ignore list, already mez'd timer, Merc tank mob<=1
/if (${DebugMez}) /echo ${i}
| Test -> array not empty,
/if (${DebugMez}) /echo (${AddsArray[${i},1].Equal[NULL]})
/if (${AddsArray[${i},1].Equal[NULL]}) /goto :SkipMez
/if (${DebugMez}) /echo ${AddsArray[${i},1].Equal[${MyTargetID}]} && ${Spawn[=${MainAssist}].ID}
| Test -> is target MA's current Target
/if (${Spawn[${AddsArray[${i},1]}].ID}==${MyTargetID} && ${Spawn[=${MainAssist}].ID}) /goto :SkipMez
| Test -> is MA's a merc skip 1st target so he attackes it.
/if (${AggroTargetID} && !${MyTargetID} && ${Spawn[=${MainAssist}].ID} && ${Spawn[=${MainAssist}].Type.Equal[Mercenary]}) /goto :SkipMez
/if (${DebugMez}) /echo ${Spawn[${AddsArray[${i},1]}].PctHPs}<${MezStopHPs}
/if (${Spawn[${AddsArray[${i},1]}].PctHPs}<${MezStopHPs}) /goto :SkipMez
/if (${DebugMez}) /echo (${AddsArray[${i},2]}>${MezMaxLevel} || ${AddsArray[${i},2]}<${MezMinLevel})
/if (${AddsArray[${i},2]}>${MezMaxLevel} || ${AddsArray[${i},2]}<${MezMinLevel}) /goto :SkipMez
/if (${DebugMez}) /echo !${Spawn[${AddsArray[${i},1]}].LineOfSight})
/if (!${Spawn[${AddsArray[${i},1]}].LineOfSight}) /goto :SkipMez
/if (${IAmABard} && ${MainAssist.Equal[${Me}]} && ${MyTargetID} && ${AggroTargetID} && ${AddsArray[${i},1].Equal[${MyTargetID}]}) /goto :SkipMez
/if (${DebugMez}) /echo ${Spawn[${AddsArray[${i},1]}].Body.Name.Equal[Giant]}) /goto :SkipMez
/if (${Spawn[${AddsArray[${i},1]}].Body.Name.Equal[Giant]}) /goto :SkipMez
/if (${MezImmune.Find[${AddsArray[${i},3]}]}) {
/if (${MMTimer${i}}==0) /call BroadCast ${IRCOn} ${EQBCOn} g "MEZ Immune Detected -> ${AddsArray[${i},3]} <- ID:${AddsArray[${i},1]}"
/varset MMTimer${i} 1m
/goto :SkipMez
}
| /if (${MobsToIgnore.Find[${AddsArray[${i},3]}]} && ${Select[${AddsArray[${i},3]},${Me.XTarget[1].Name},${Me.XTarget[2].Name},${Me.XTarget[3].Name},${Me.XTarget[4].Name},${Me.XTarget[5].Name},${Me.XTarget[6].Name},${Me.XTarget[7].Name},${Me.XTarget[8].Name},${Me.XTarget[9].Name},${Me.XTarget[10].Name}]}==0) /goto :SkipMez
/if (${Me.CurrentMana}<${Spell[${MezSpell}].Mana}) /goto :SkipMez
/if (${MezTimer${i}} > 0) /goto :SkipMez
/if (${MobCount}<=1 && ${Spawn[=${MainAssist}].ID} && (${Spawn[=${MainAssist}].Type.Equal[Mercenary]} || ${Spawn[=${MainAssist}].Type.Equal[Pet]})) /goto :SkipMez
/if (${Spawn[${MainAssist} ${MainAssistType} group].ID} && ${Select[${AddsArray[${i},1]},${Me.XTarget[1].ID},${Me.XTarget[2].ID},${Me.XTarget[3].ID},${Me.XTarget[4].ID},${Me.XTarget[5].ID},${Me.XTarget[6].ID},${Me.XTarget[7].ID},${Me.XTarget[8].ID},${Me.XTarget[9].ID},${Me.XTarget[10].ID}]}==0) /goto :SkipMez
/if (${DebugMez}) /echo ...debug_mez MezTimer${i} ${MezTimer${i}} ${Spawn[${AddsArray[${i},1]}].ID} ${i}
| Necros can't AEMez
/if (${Select[${MezOn},1,3]} && ${MezAECount}>0 && ${MobCount}>=${MezAECount} && ${MezAETimer}==0 && ${Spawn[${AddsArray[${i},1]}].ID} && ${Select[${Me.Class.ShortName},BRD,ENC]}) {
/if (${MyTargetID} && ${CombatStart}) {
/call MezMobsAE ${MyTargetID}
} else {
/call MezMobsAE ${AddsArray[${i},1]}
}
/if (${Target.ID}) /tar id ${Target.ID}
/return
}
/if (${Select[${MezOn},1,2]}) /call MezMobs ${AddsArray[${i},1]} ${i}
:SkipMez
/next i
/if (${Spawn[=${MainAssist}].ID} && ${MezStopHPs}==1) /varset MezStopHPs ${SkipMezOld}
/if (${DebugMez}) /echo ...debug_mez DoMezStuff: Leave
/if (${Target.ID}) /tar id ${Target.ID}
/return