Moderator: MacroQuest Developers
Code: Select all
|Cleric Macro
|cleric4.mac
|Author: Digitalxero
|Reauthored: ASDFASDFASDFASDF
|Usage: /macro cleric4.mac <sit> <heal percent tank> <heal percent caster>
|Example: /macro cleric4.mac 1 40 70
#event MeHit " hits YOU for "
#event OutOfMana "Insufficient Mana to cast this spell!"
#event OutOfRange "Your target is out of range, get closer!"
#event Fizzle "Your spell fizzles!"
Sub Main
/declare Healpct int outer ${Param1}
/declare Healpctcaster int outer ${Param2}
/declare Groupnum int outer
/declare i int outer
/declare Sit int outer ${Param0}
/declare Delay int outer
/declare Casting string outer
:chkevent
/doevents
/varset Groupnum ${Group}
| *** AutoHeal ***
:Healcheck
/for i 1 to ${Group}
/if (${Group[${i}].PctHPs}<1) /goto :nextmember
/if (${Group[${i}].Class.Name.Equal["Warrior"]} || ${Group[${i}].Class.Name.Equal["Paladin"]} || ${Group[${i}].Class.Name.Equal["Shadow Knight"]}) /goto :Tankheal
/doevents
/goto :CasterHeal
:Tankheal
/if (${Group[${i}].PctHPs}<=${Healpct}) {
/if (!${Buff[Divine Aura].ID}) {
/target ${Group[${i}].Name}
/stand
/varset Casting Complete Healing
| /g Complete Healing on %t! 10sec
/cast "Complete Healing"
/doevents
/varset Delay ${Math.Calc[${Spell["Complete Healing"].MyCastTime}*10+10]}
/delay ${Delay}
/if (${Sit}==1) /sit
/target clear
/goto :nextmember
}
:Casterheal
/if (${Group[${i}].PctHPs}<=${Healpctcaster}) {
/if (!${Buff[Divine Aura].ID}) {
/target ${Group[${i}].Name}
/stand
| /g Fast Heal on %t! 605hp
/varset Delay ${Math.Calc[${Spell["Superior Healing"].MyCastTime}*10+25]}
/varset Casting ${Superior Healing}
/cast "Superior Healing"
/doevents
/delay ${Delay}
/if (${Sit}==1) /sit
/target clear
}
:nextmember
}
/next i
/goto :chkevent
/return
Sub Event_MeHit
/if (${Me.PctHPs}<=60 AND ${Me.PctHPs}>40) {
/if (!${Buff[Divine Barrier].ID}) {
/if (!${Me.Buff[Superior Healing].ID}) {
/target myself
/stand
/varset Casting Superior Healing
/cast "Superior Healing"
/doevents
/varset Delay ${Math.Calc[${Spell[Superior Healing].MyCastTime}*10+5]}
/delay ${Delay}
}
}
} else /if (${Me.PctHPs}<=40 AND ${Me.PctHPs}>25) {
/if (!${Buff[Divine Aura].ID}) {
/target myself
/stand
/g Fast Heal on %t!
/varset Casting Superior Healing}
/cast "Superior Healing"
/doevents
/varset Delay ${Math.Calc[${Spell[Superior Healing].MyCastTime}*10+25]}
/delay ${Delay}
}
} else {
/stand
/if (!${Buff[Divine Aura].ID}) {
/varset Casting Divine Barrier
/cast "Divine Barrier"
/doevents
/varset Delay ${Math.Calc[${Spell[Divine Aura].MyCastTime}*10+5]}
/delay ${Delay}
/if (${Buff[Divine Barrier].ID}) /g Divine Barrier-ed! NO HEALS for 18 Sec
}
}
/return
Sub Event_Fizzle
/goto :Healcheck
/return
Sub Event_OutOfMana
/g OOM, meding
/if (${Sit}==1) /sit
/delay 5s
/return
Sub Event_OutOfRange
/delay 1s
/return
Sub Event_Fizzle
/cast "${Casting}"
/returnCode: Select all
|Cleric Macro
|cleric4.mac
|Author: Digitalxero
|Reauthored: ASDFASDFASDFASDF
|Usage: /macro cleric4.mac <sit> <heal percent tank> <heal percent caster>
|Example: /macro cleric4.mac 1 40 70
#event MeHit "#*#hits YOU for#*#"
#event OutOfMana "Insufficient Mana to cast this spell!"
#event OutOfRange "Your target is out of range, get closer!"
#event Fizzle "Your spell fizzles!"
Sub Main
/declare Healpct int outer ${Param1}
/declare Healpctcaster int outer ${Param2}
/declare Groupnum int outer
/declare i int outer
/declare Sit int outer ${Param0}
/declare Delay int outer
/declare Casting string outer
:chkevent
/doevents
/varset Groupnum ${Group}
| *** AutoHeal ***
:Healcheck
/for i 1 to ${Group}
/if (${Group[${i}].PctHPs}<1) /goto :nextmember
/if (${Group[${i}].Class.Name.Equal["Warrior"]} || ${Group[${i}].Class.Name.Equal["Paladin"]} || ${Group[${i}].Class.Name.Equal["Shadow Knight"]}) /goto :Tankheal
/doevents
/goto :CasterHeal
:Tankheal
/if (${Group[${i}].PctHPs}<=${Healpct}) {
/if (!${Buff[Divine Aura].ID}) {
/target ${Group[${i}].Name}
/stand
/varset Casting Complete Healing
| /g Complete Healing on %t! 10sec
/cast "Complete Healing"
/doevents
/varset Delay ${Math.Calc[${Spell["Complete Healing"].MyCastTime}*10+10]}
/delay ${Delay}
/if (${Sit}==1) /sit
/target clear
/goto :nextmember
}
:Casterheal
/if (${Group[${i}].PctHPs}<=${Healpctcaster}) {
/if (!${Buff[Divine Aura].ID}) {
/target ${Group[${i}].Name}
/stand
| /g Fast Heal on %t! 605hp
/varset Delay ${Math.Calc[${Spell["Superior Healing"].MyCastTime}*10+25]}
/varset Casting ${Superior Healing}
/cast "Superior Healing"
/doevents
/delay ${Delay}
/if (${Sit}==1) /sit
/target clear
}
:nextmember
}
/next i
/goto :chkevent
/return
Sub Event_MeHit
/if (${Me.PctHPs}<=60 AND ${Me.PctHPs}>40) {
/if (!${Buff[Divine Barrier].ID}) {
/if (!${Me.Buff[Superior Healing].ID}) {
/target myself
/stand
/varset Casting Superior Healing
/cast "Superior Healing"
/doevents
/varset Delay ${Math.Calc[${Spell[Superior Healing].MyCastTime}*10+5]}
/delay ${Delay}
}
}
} else /if (${Me.PctHPs}<=40 AND ${Me.PctHPs}>25) {
/if (!${Buff[Divine Aura].ID}) {
/target myself
/stand
/g Fast Heal on %t!
/varset Casting Superior Healing}
/cast "Superior Healing"
/doevents
/varset Delay ${Math.Calc[${Spell[Superior Healing].MyCastTime}*10+25]}
/delay ${Delay}
}
} else {
/stand
/if (!${Buff[Divine Aura].ID}) {
/varset Casting Divine Barrier
/cast "Divine Barrier"
/doevents
/varset Delay ${Math.Calc[${Spell[Divine Aura].MyCastTime}*10+5]}
/delay ${Delay}
/if (${Buff[Divine Barrier].ID}) /g Divine Barrier-ed! NO HEALS for 18 Sec
}
}
/return
Sub Event_Fizzle
/goto :Healcheck
/return
Sub Event_OutOfMana
/g OOM, meding
/if (${Sit}==1) /sit
/delay 5s
/return
Sub Event_OutOfRange
/delay 1s
/return
Sub Event_Fizzle
/cast "${Casting}"
/returnlol such hate Preocts! :)Preocts wrote:You don't. It's broken beyond repair. Delete MQ and try taking up tennis.