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.

|------------------------------|
|---AUTO-CLERIC by Noobhaxor---|
|--------Version 4.0.1 --------|
|------ 10-31-2017 Update -----|
#Chat group
#Chat tell
#Chat raid
#Event GoMana "You have been granted a gift of#*#"
#Event GoMoff "Your gift of#*#mana fades."
#Event Buff "Your #1# spell has worn off of #*#."
#include autosubs.inc
Sub Main
/doevents flush
/declare acverbose int outer 0
/declare MacroName string outer AutoCleric
/declare IniFileName string outer ${MacroName}_${Me.CleanName}.ini
|-Set Main Tank
/if (${Target.ID}) {
/declare tankname string outer ${Target.Name}
/declare tankid string outer ${Target.ID}
} else /if (${Group}) {
/echo No Target Selected - Switching to First Group Member
/squelch /keypress f2
/delay 1s ${Target.ID}
/declare tankname string outer ${Target.Name}
/declare tankid string outer ${Target.ID}
} else {
/echo No Group or Target - Switching to Self Heal mode
/declare tankname string outer ${Me.Name}
/declare tankid string outer ${Me.ID}
}
|-Declare spell variables
/if (${Me.AltAbility[Mnemonic Retention].Rank}==4) {
/declare spellmisc int outer 12
/declare spellslots int outer 11
} else /if (${Me.AltAbility[Mnemonic Retention].Rank}==3) {
/declare spellmisc int outer 11
/declare spellslots int outer 10
} else /if (${Me.AltAbility[Mnemonic Retention].Rank}==2) {
/declare spellmisc int outer 10
/declare spellslots int outer 9
} else /if (${Me.AltAbility[Mnemonic Retention].Rank}==1) {
/declare spellmisc int outer 9
/declare spellslots int outer 8
} else {
/declare spellmisc int outer 8
/declare spellslots int outer 7
}
/declare spellgem int outer 1
/declare promgem int outer 0
/declare divinegem int outer ${spellslots}
/declare wardspell string outer NULL
/declare remedyheal1 string outer NULL
/declare remedyheal2 string outer NULL
/declare patchheal string outer NULL
/declare patchheal2 string outer NULL
/declare groupfastheal string outer NULL
/declare groupheal string outer NULL
/declare promheal string outer NULL
/declare bigheal1 string outer NULL
/declare bigheal2 string outer NULL
/declare yaulpspell string outer NULL
/declare stunnuke string outer NULL
/declare healnuke1 string outer NULL
/declare healnuke2 string outer NULL
/declare nukeheal1 string outer NULL
/declare nukeheal2 string outer NULL
/declare healpoint int outer 80
/declare grouphealpoint int outer 75
/declare bighealpoint int outer 60
/declare patchhealpoint int outer 44
/declare patchheal2point int outer 34
/declare clickhealpoint int outer 35
/declare reversenpcid int outer 0
/declare reztimer timer outer 0
/declare hottimer timer outer 0
/declare bufftimer timer outer 0
/declare groupbufftimer timer outer 0
/declare ReverseDS string outer NULL
/declare SelfBuff string outer NULL
/declare GroupHPBuff string outer NULL
/declare GroupBuff string outer NULL
/declare TankBuff string outer NULL
/declare GroupVieBuff string outer NULL
/declare GroupSymbolBuff string outer NULL
/declare StunLevel int outer 0
/declare SymbolBuff string outer NULL
/declare HPBuff string outer NULL
/declare aurabuff1 string outer NULL
/declare aurabuff2 string outer NULL
/declare DivineBuff string outer NULL
/declare NoCures int outer 0
/declare PromisedTimer timer outer 0
/declare GroupBuffRecast int outer 0
/declare GroupDeBuffed int outer 0
/declare TankBuffRecast int outer 0
/declare DivineBuffRecast int outer 0
/declare SymbolBuffRecast int outer 0
/declare HPBuffRecast int outer 0
/declare ShiningBuffRecast int outer 0
/declare GroupVieBuffRecast int outer 0
/declare BuffRecastTimer timer outer 0
/declare ClickHealTimer timer outer 0
/declare CureTimer timer outer 0
/declare healspellrange int outer 200
/declare promhealrange int outer 200
/declare grouphealrange int outer 100
/declare GoMana int outer 0
/declare Emeralds int outer 0
/declare Pearls int outer 0
/declare TankBuffMatch string outer ${TankBuff}
|-Grab Options from INI
/call LoadIni Spells mountitem string "Bracelet of the Severed Hand"
/call LoadIni General AutoRez int 1
/call LoadIni General pethealpoint int 0
/call LoadIni General tbmhealpoint int 65
/call LoadIni General raidhealpoint int 65
/call LoadIni General Manatonuke int 40
/call LoadIni General usepromheals int 1
/call LoadIni General DivineBuffOn int 0
/call LoadIni General usedruid int 0
/call LoadIni General FollowToonName string NULL
/call LoadIni General AutoCampHold int 0
/call LoadIni General UseFellowship int 1
/call LoadIni General InstantRelease int 1
/call LoadIni General qmtarget int 0
/call LoadIni General UseMelee int 0
/call LoadIni General AutoAssistAt int 98
/call LoadIni General BringYourOwnSpells int 0
/declare newtank int outer 0
/call VarSetup
/call AutoVersionCheck 5
|-Alias setup for Ini
/noparse /alias /divinebuff /multiline ; /docommand ${If[${DivineBuffOn}==1,/varset DivineBuffOn 0,/varset DivineBuffOn 1]} ; /docommand ${If[${Me.Gem[${promheal}]}==${spellslots},/varcalc divinegem ${spellslots}-1,/varset divinegem ${spellslots}]} ; /varset changetoini 1 ; /echo Toggling ${DivineBuff} to ${If[${DivineBuffOn}==0,OFF,ON]}
/noparse /alias /promised /multiline ; /docommand ${If[${usepromheals}==1,/varset usepromheals 0,/varset usepromheals 1]} ; /docommand ${If[${Me.Gem[${DivineBuff}]}==${spellslots},/varcalc promgem ${spellslots}-1,/varset promgem ${spellslots}]} ; /varset changetoini 1 ; /echo Toggling Promised Heals to ${If[${usepromheals}==0,OFF,ON]}
/noparse /alias /autorez /multiline ; /docommand ${If[${AutoRez}==1,/varset AutoRez 0,/varset AutoRez 1]} ; /varset changetoini 1 ; /echo Setting AutoRez to ${If[${AutoRez}==0,OFF,ON]}
/noparse /alias /usedruid /multiline ; /docommand ${If[${usedruid}==1,/varset usedruid 0,/varset usedruid 1]} ; /varset changetoini 1 ; /echo Setting Use Druid Buffs to ${If[${usedruid}==0,OFF,ON]}
/noparse /alias /manatonuke /multiline ; /varset changetoini 1 ; /docommand /varset Manatonuke
/noparse /alias /pethealpoint /multiline ; /varset changetoini 1 ; /docommand /varset pethealpoint
/noparse /alias /tbmhealpoint /multiline ; /varset changetoini 1 ; /docommand /varset tbmhealpoint
/noparse /alias /raidhealpoint /multiline ; /varset changetoini 1 ; /docommand /varset raidhealpoint
/noparse /alias /mountitem /multiline ; /varset changetoini 1 ; /docommand /varset mountitem
/noparse /alias /newtank /docommand /varset newtank 1
/noparse /alias /qmtarget /multiline ; /varset changetoini 1 ; /docommand ${If[${Spawn[id ${Target.ID} group].ID},/varset qmtarget ${Target.ID},/varset qmtarget 0]} ; /echo Toggling Quiet Miracle on Cast on ${If[${qmtarget}==0,Noone,${Spawn[id ${qmtarget}].CleanName}]}
/noparse /alias /byos /multiline ; /varset changetoini 1 ; /docommand ${If[${BringYourOwnSpells}==1,/varset BringYourOwnSpells 0,/varset BringYourOwnSpells 1]} ; /echo Toggling Bring Your Own Spells to ${If[${BringYourOwnSpells}==0,OFF,ON]}
/noparse /alias /nocures /multiline ; /docommand /varset NoCures 1 ; /echo WILL NOT CAST ANY CURES
|--General Alias Setup
/call AliasSetup
/call CheckSpells
/call CheckBuffs
/declare DurationMod int outer 1
/if (${Me.AltAbility[Spell Casting Reinforcement].Rank}==1) /varset DurationMod 1.15
/if (${Me.AltAbility[Spell Casting Reinforcement].Rank}==2) /varset DurationMod 1.3
/if (${Me.AltAbility[Spell Casting Reinforcement].Rank}==3) /varset DurationMod 1.5
/if (${Me.AltAbility[Spell Casting Reinforcement].Rank}==4) /varset DurationMod 1.7
/if (${Me.AltAbility[Spell Casting Reinforcement].Rank}==5) /varset DurationMod 1.9
/declare epicshield string outer NULL
/if (${FindItem[Harmony of the Soul].ID}) {
/varset epicshield Harmony of the Soul
} else /if (${FindItem[Aegis of Superior Divinity].ID}) {
/varset epicshield Aegis of Superior Divinity
}
/declare epicwand string outer Water Sprinkler of Nem Ankh
/varset Emeralds ${FindItem[=Emerald].StackCount}
/varset Pearls ${FindItem[=Emerald].StackCount}
|-Aura Error Checking
/declare cleanaura1 string outer ${aurabuff1}
/declare cleanaura2 string outer ${aurabuff2}
/if (${aurabuff1.Find[Circle of Divinity]}) /varset cleanaura1 Circle of Divinity
/if (${aurabuff2.Find[Circle of Divinity]}) /varset cleanaura2 Circle of Divinity
/if (${aurabuff1.Find[Aura of Divinity]}) /varset cleanaura1 Aura of Divinity
/if (${aurabuff2.Find[Aura of Divinity]}) /varset cleanaura2 Aura of Divinity
/if (${aurabuff1.Find[Aura of the Reverent]}) /varset cleanaura1 Reverent Aura
/if (${aurabuff2.Find[Aura of the Reverent]}) /varset cleanaura2 Reverent Aura
|-Notify User of Macro Setup
/if (!${FindItem[${mountitem}].ID}) /echo No mount detected will sit and stand only
|-Buff Error Checking
/call BuffSetup
/declare extrahealcasttime timer outer 0
|-Divine/Promised Gem Setup
/varcalc promgem ${spellslots}-1
/if (${Me.Gem[${DivineBuff}]}==11) /varset divinegem 11
/if (${Me.Gem[${DivineBuff}]}==10) /varset divinegem 10
/if (${Me.Gem[${promheal}]}==11) /varset promgem 11
/if (${Me.Gem[${promheal}]}==10) /varset promgem 10
/if (${DivineBuffOn}==1&&!${Me.Gem[${DivineBuff}]}) {
/varset divinegem ${spellslots}
/varcalc promgem ${spellslots}-1
} else /if (${usepromheals}==1&&!${Me.Gem[${promheal}]}) {
/varcalc promgem ${spellslots}
}
|-Setup Group Buff
/if (${usedruid}==1) {
/varset GroupBuff ${GroupSymbolBuff}
} else {
/varset GroupBuff ${GroupHPBuff}
}
/declare oldtank string outer NULL
/if (${MakeCamp.Status.Equal[ON]}) /makecamp off
/if (${AutoCampHold}==1) /echo Warning: Cleric is set to Camp
|-Cursor ID
/declare ShitOnCursor string outer NULL
/declare CursorTimer timer outer 0
/if (${Cursor.ID}) {
/echo Sending Item on Cursor to Bag
/autoinventory
}
/rez spawn off
|--------------------------------------------------------------------
|----MAIN LOOP STARTS------------------------------------------------
|--------------------------------------------------------------------
:mainloop
/if (${Me.Zoning}) /call Zoning
/if (${changetoini}==1) /call INIChanges
/if (${Cursor.ID}) /call BagModRods
/doevents
/call TankChangeCheck
/call ConfigHeal
/call ExtraHeal
/if (${Me.Song["Touch of the Divine"].ID}) /call DALogic
/if ((${Me.PctAggro}>90||${Me.XTarget[2].PctAggro}>90||${Me.XTarget[3].PctAggro}>90)&&(${Me.PctHPs}<=${grouphealpoint})&&(!${Me.Buff[Sanctuary].ID})) /call AggroCheck
/if (${Me.Hovering}) /call DeathSub
/if (!${Me.Casting.ID}&&(${Me.XTarget[1].ID}||!${Me.Invis})) /call HealXT
/if (!${Me.Casting.ID}&&(${Me.XTarget[1].ID}||!${Me.Invis})) /call HealGroup
/if ((${Me.PctMana}<=98)&&!${Me.Moving}&&!${Me.Invis}) /call MedTime
/if ((${AutoRez}==1)&&(!${Me.Moving})&&(!${Me.Invis})) /call RezCheck
/if ((${Me.PctMana}>=30)&&(!${Me.Casting.ID})&&(!${Me.XTarget[1].ID})&&(!${Me.Invis})&&!${MoveTo.Moving}) /call BuffCheck
/if ((${Me.PctMana}>=30)&&(!${Me.Casting.ID})&&(!${Me.XTarget[1].ID})&&(!${Me.Invis})&&!${MoveTo.Moving}&&${groupbufftimer}==0) /call BuffGroup
/if (!${Me.XTarget[1].ID}) /call AutoCampCheck
/goto :mainloop
/return
|----------------------------------------------------------------------------
| SUB: ExtraHeal - Extra Actions to Perform
|----------------------------------------------------------------------------
Sub ExtraHeal
/if ((${numoftargets}>2||${Me.XTarget[1].Named}) && !${Me.Casting.ID} && ${extrahealcasttime}==0&&(${Me.XTarget[1].ID})) {
/varset extrahealcasttime 20
|---First Line of Defence
/if (${Me.AltAbilityReady[1472]}&&${Spell[${Me.AltAbility[1472]}].Stacks}) {
/call AANow 1472
} else /if (${Me.AltAbilityReady[8500]}&&${Spell[${Me.AltAbility[8500]}].Stacks}) {
/call AANow 8500
} else /if (!${Me.Buff[Healing Frenzy].ID} && ${Me.AltAbilityReady[997]}&&${Spell[${Me.AltAbility[997]}].Stacks}) {
/call AANow 997
} else /if (!${Me.Buff[Third Spire of Divinity].ID} && ${Me.AltAbilityReady[38]}&&${Spell[${Me.AltAbility[38]}].Stacks}) {
/call AANow 38
|---Second Ability to go with First Line
} else /if (!${Me.Buff[Channeling the Divine].ID} && ${Me.AltAbilityReady[515]}&&${Spell[${Me.AltAbility[515]}].Stacks}) {
/call AANow 515
} else /if (!${Me.Buff[Improved Twincast].ID} && ${Me.AltAbilityReady[706]}&&${Spell[${Me.AltAbility[706]}].Stacks}) {
/call AANow 706
} else /if (${Me.AltAbilityReady[6488]}&&${Spell[${Me.AltAbility[6488]}].Stacks}) {
/call AANow 6488
}
}
/if (${Group} && ${Window[MMGW_ManageWnd].Child[MMGW_SuspendButton].Enabled} && ${Mercenary.State.Equal[DEAD]}) {
/notify MMGW_ManageWnd MMGW_SuspendButton LeftMouseUp
/delay 2s ${Spawn[mercenary ${Group.Member[1].ID}].ID}
}
/if ((${MoveTo.Moving} || ${Stick.Status.Equal[ON]} || ${AdvPath.Following}) && ${Me.Buff[Selo].ID} && ${Me.Mount.ID} && !${Me.XTarget[1].ID}) /dismount
/if (${UseMelee}==1&&${Me.Mount.ID}) {
/dismount
/if (${FindItem[${mountitem}].ID}) {
/varset mountitem NULL
/echo You are set to melee clearing out mountitem. Remember to use mountitem toggle to set mount back up.
}
}
/return
|----------------------------------------------------------------------------
| SUB: ConfigHeal
|----------------------------------------------------------------------------
Sub ConfigHeal
/if (${Select[${Zone.ID},795,796]}==0 && !${Raid.Members}) {
/if (${Me.XTarget}>2||${Me.XTarget[1].Named}) {
/if (${healpoint}!=90) {
/varset healpoint 90
/varset grouphealpoint 75
/varset bighealpoint 60
}
} else /if (${Me.XTarget[1].Level}>=${Me.Level}) {
/if (${healpoint}!=85) {
/varset healpoint 85
/varset grouphealpoint 75
/varset bighealpoint 60
}
} else /if (${Me.XTarget[1].Level}>=${Math.Calc[${Me.Level}-5]}) {
/if (${healpoint}!=80) {
/varset healpoint 80
/varset grouphealpoint 75
/varset bighealpoint 60
}
} else {
/if (${healpoint}!=70) {
/varset healpoint 70
/varset grouphealpoint 75
/varset bighealpoint 60
}
}
} else /if (${healpoint}!=${tbmhealpoint}&& !${Raid.Members}) {
/varset healpoint ${tbmhealpoint}
/varcalc grouphealpoint ${tbmhealpoint}-5
/varcalc bighealpoint ${tbmhealpoint}-10
} else /if (${healpoint}!=${raidhealpoint}&& ${Raid.Members}) {
/varset healpoint ${raidhealpoint}
/varcalc grouphealpoint ${raidhealpoint}-5
/varcalc bighealpoint ${raidhealpoint}-10
}
/return
|----------------------------------------------------------------------------
| SUB: Group HealQueue
|----------------------------------------------------------------------------
Sub HealQueue(int nextid)
/declare nexthealspell string local NULL
/declare groupmembertoheal string local ${Spawn[ID ${nextid}].Name}
|===Check to see if we can heal
/if (${Group.Member[${groupmembertoheal}].FeetWet}!=${Me.FeetWet}) /return
/if (${Group.Member[${groupmembertoheal}].Hovering}||${Group.Member[${groupmembertoheal}].Type.Equal[Corpse]}) /return
/if (${Me.Buff[Withering Physicality XIII].ID} && ${Me.Buff[Withering Faith XIII].ID}&& ${Me.AltAbilityReady[41]}) /call AANow 41 ${Me.ID}
/if (${Me.Buff[Withering Physicality XIII].ID} && ${Me.Buff[Withering Faith XIII].ID}&& ${Me.AltAbilityReady[626]}) /call AANow 626 ${Me.ID}
|====Cleric AAs before heals
/if (${nextid}==${Me.ID}&&${Group.Member[${groupmembertoheal}].PctHPs}<=${healpoint}&&(${Me.AltAbilityReady[Divine Retribution]})) /call AANow 392
/if (${nextid}==${tankid} && ${Group.Member[${groupmembertoheal}].PctHPs}>${bighealpoint} && (${Me.XTarget}>2||${Spawn[id ${Me.XTarget[1].ID} radius 100].Named})) {
/if (${Me.AltAbilityReady[463]}) /call AANow 463 ${tankid}
/if (${Me.AltAbilityReady[1065]}) /call AANow 1065 ${tankid}
}
|=====Determine which heal to use
/if ((${Me.SpellReady[${patchheal2}]})&&(${Group.Member[${groupmembertoheal}].PctHPs}<=${patchheal2point})&&(${Group.Member[${groupmembertoheal}].PctHPs}>=1)&&${Me.XTarget}>=1&&${Me.CurrentMana}>${Spell[${patchheal2}].Mana}) {
/varset nexthealspell ${patchheal2}
} else /if ((${Me.AltAbilityReady[Burst of Life]})&&(${Group.Member[${groupmembertoheal}].PctHPs}<=${clickhealpoint})&&${ClickHealTimer}==0&&${Me.XTarget}>=1) {
/varset ClickHealTimer 20
/call AANow 7689 ${nextid}
} else /if ((${Group.Member[${groupmembertoheal}].PctHPs}<=${clickhealpoint})&&(${Me.AltAbilityReady[Divine Arbitration]})&&${ClickHealTimer}==0&&${Group.Member[${groupmembertoheal}].Type.NotEqual[Pet]}&&${Me.XTarget}>=1) {
/varset ClickHealTimer 20
/call AANow 169
/if (${Me.AltAbilityReady[38]}) /call AANow 38
} else /if (${FindItem[${epicshield}].ID} && ${FindItem[${epicshield}].Timer}==0 && ${Group.Member[${groupmembertoheal}].PctHPs}<=${clickhealpoint}&&${ClickHealTimer}==0&&${Group.Member[${groupmembertoheal}].Type.NotEqual[Pet]}&&${Me.XTarget}>=1) {
/varset ClickHealTimer 20
/call ItemNow "${epicshield}"
} else /if ((${Me.SpellReady[${patchheal}]})&&(${Group.Member[${groupmembertoheal}].PctHPs}<=${patchhealpoint})&&(${Group.Member[${groupmembertoheal}].PctHPs}>=1)&&${Me.XTarget}>=1&&${Me.CurrentMana}>${Spell[${patchheal}].Mana}) {
/varset nexthealspell ${patchheal}
} else /if ((${Me.SpellReady[${wardspell}]})&&(${Group.Member[${groupmembertoheal}].PctHPs}<=${bighealpoint})&&${Group.Member[${groupmembertoheal}].Type.NotEqual[Pet]}&&${Me.XTarget}>=1&&!${Target.Buff[${wardspell}].ID}&&${hottimer}==0&&${Me.CurrentMana}>${Spell[${wardspell}].Mana}) {
/varset nexthealspell ${wardspell}
/varcalc hottimer ${Spell[${wardspell}].Duration.TotalSeconds}*${DurationMod}*10
} else /if ((${Me.SpellReady[${bigheal1}]})&&(${Group.Member[${groupmembertoheal}].PctHPs}<=${bighealpoint})&&${Me.CurrentMana}>${Spell[${bigheal1}].Mana}&&${NoCures}!=1) {
/varset nexthealspell ${bigheal1}
} else /if ((${Me.SpellReady[${bigheal2}]})&&(${Group.Member[${groupmembertoheal}].PctHPs}<=${bighealpoint})&&${Me.CurrentMana}>${Spell[${bigheal2}].Mana}&&${NoCures}!=1) {
/varset nexthealspell ${bigheal2}
} else /if ((${Spawn[NPC los ${Me.XTarget[1].Name}].Distance}<150)&&(${Me.SpellReady[${healnuke1}]})&&(${Group.Member[${groupmembertoheal}].PctHPs}<=${healpoint})&&(${Me.XTarget[1].PctHPs}<90)&&(${Me.XTarget[1].PctHPs}>10)&&${Me.PctAggro}<50&&(${Me.PctMana}>=${Manatonuke})&&(${nextid}==${tankid})&&${Me.CurrentMana}>${Spell[${healnuke1}].Mana}) {
/varset nexthealspell ${healnuke1}
} else /if ((${Spawn[NPC los ${Me.XTarget[1].Name}].Distance}<150)&&(${Me.SpellReady[${healnuke2}]})&&(${Group.Member[${groupmembertoheal}].PctHPs}<=${healpoint})&&(${Me.XTarget[1].PctHPs}<90)&&(${Me.XTarget[1].PctHPs}>10)&&${Me.PctAggro}<50&&(${Me.PctMana}>=${Manatonuke})&&(${nextid}==${tankid})&&${Me.CurrentMana}>${Spell[${healnuke2}].Mana}) {
/varset nexthealspell ${healnuke2}
} else /if ((${Me.SpellReady[${nukeheal1}]})&&(${Spawn[NPC los ${Me.XTarget[1].Name}].Distance}<150)&&(${Me.XTarget[1].PctHPs}<90)&&(${Me.XTarget[1].PctHPs}>10)&&${Me.PctAggro}<50&&(${Me.PctMana}>=${Manatonuke})&&(${Group.Member[${groupmembertoheal}].PctHPs}<=${healpoint})&&${Me.CurrentMana}>${Spell[${nukeheal1}].Mana}) {
/call SpellQueue "${nukeheal1}" ${Me.XTarget[1].ID}
} else /if ((${Me.SpellReady[${nukeheal2}]})&&(${Spawn[NPC los ${Me.XTarget[1].Name}].Distance}<150)&&(${Me.XTarget[1].PctHPs}<90)&&(${Me.XTarget[1].PctHPs}>10)&&${Me.PctAggro}<50&&(${Me.PctMana}>=${Manatonuke})&&(${Group.Member[${groupmembertoheal}].PctHPs}<=${healpoint})&&${Me.CurrentMana}>${Spell[${nukeheal2}].Mana}) {
/call SpellQueue "${nukeheal2}" ${Me.XTarget[1].ID}
} else /if ((${Me.SpellReady[${remedyheal1}]})&&(${Group.Member[${groupmembertoheal}].PctHPs}<=${healpoint})&&!${remedyheal1.Equal[Complete Heal]}&&${Me.CurrentMana}>${Spell[${remedyheal1}].Mana}) {
/varset nexthealspell ${remedyheal1}
} else /if ((${Me.SpellReady[${remedyheal1}]})&&(${Group.Member[${groupmembertoheal}].PctHPs}<=${healpoint})&&${remedyheal1.Equal[Complete Heal]}&&${Select[${Group.Member[${groupmembertoheal}].Class.ShortName},WAR,SHD,PAL]}>0&&${Me.CurrentMana}>${Spell[${remedyheal1}].Mana}) {
/varset nexthealspell ${remedyheal1}
} else /if ((${Me.SpellReady[${remedyheal2}]})&&(${Group.Member[${groupmembertoheal}].PctHPs}<=${healpoint})&&${Me.CurrentMana}>${Spell[${remedyheal2}].Mana}) {
/varset nexthealspell ${remedyheal2}
}
/if (${Bool[${nexthealspell}]}) {
|------------Broadcast Spell--------------------
/if (${Me.Sitting}) /stand
/if (${Window[SpellBookWnd]}) /book
/if (${Target.ID}!=${nextid}) {
/if (${Me.Combat}) /squelch /attack off
/target id ${nextid}
/delay 5 ${Target.ID}==${nextid}
}
/cast "${nexthealspell}"
/delay 10 ${Window[CastingWindow].Open}
/delay ${Math.Calc[(${Spell[${nexthealspell}].MyCastTime}*10)+5]} !${Me.Casting.ID}
/if (${Cast.Result.Equal[CAST_SUCCESS]}) {
/if ((!${EQBC.Connected} || !${Bool[${Plugin[MQ2EQBC]}]})&&${acverbose}!=0) /docommand /echo [+o+]${nexthealspell} =>> ${groupmembertoheal} <<=[+x+]
/if (${EQBC.Connected}&&${acverbose}!=0) /docommand /bc [+o+]${nexthealspell} =>> ${groupmembertoheal} <<=[+x+]
}
}
/return
|----------------------------------------------------------------------------
| SUB: SpellQueue
|----------------------------------------------------------------------------
Sub SpellQueue(string nextspell,int nextid)
/if (${Me.CurrentMana}<${Spell[${nextspell}].Mana}) /return
/if (!${Me.Book[${nextspell}]}) /return
/if (${Me.Sitting}) /stand
/if (${Window[SpellBookWnd]}) /book
/if (!${Me.Gem[${nextspell}]}) {
/delay 1s !${Me.Casting.ID}
/call MemSpells "${nextspell}" ${spellmisc}
/if (!${Me.XTarget[1].ID}) {
/delay 5s ${Me.GemTimer[${nextspell}]}==0
/delay 5s ${Me.SpellReady[${nextspell}]}
}
}
/if (${Me.SpellReady[${nextspell}]}) {
/if (${Target.ID}!=${nextid}) {
/if (${Me.Combat}) /squelch /attack off
/target id ${nextid}
/delay 10 ${Target.ID}==${nextid}
/if (${Target.FeetWet}!=${Me.FeetWet}) /return
}
/cast "${nextspell}"
/delay 10 ${Window[CastingWindow].Open}
/delay ${Math.Calc[(${Spell[${nextspell}].MyCastTime}*10)+15]} !${Me.Casting.ID}
/if (((!${EQBC.Connected} || !${Bool[${Plugin[MQ2EQBC]}]})&&${acverbose}!=0)&&(${Cast.Result.Equal[CAST_SUCCESS]})) /docommand /echo [+o+]${nextspell} =>> ${Spawn[ID ${nextid}].Name} <<=[+x+]
/if ((${EQBC.Connected}&&${acverbose}!=0)&&(${Cast.Result.Equal[CAST_SUCCESS]})) /docommand /bc [+o+]${nextspell} =>> ${Spawn[ID ${nextid}].Name} <<=[+x+]
}
/return
|----------------------------------------------------------------------------
| SUB: BuffGroup
|----------------------------------------------------------------------------
Sub BuffGroup
/declare bmember int local 0
/if (${groupbufftimer}==0) /varset groupbufftimer 1m
/for bmember 0 to ${Group}
/if (${Group.Member[${bmember}].Distance}<100) {
/target id ${Group.Member[${bmember}].ID}
/delay 5 ${Target.ID}==${Group.Member[${bmember}].ID}
/delay 5 ${Target.BuffsPopulated}==TRUE
/if (${Target.ID}&&${Target.BuffsPopulated}==TRUE&&!${Target.Aego.ID}&&!${Target.Skin.ID}&&!${Target.Symbol.ID}&&!${Spell[${Target.Buff[${GroupBuff}]}].ID}&&${GroupBuffRecast}!=1) /varset GroupBuffRecast 1
}
/next bmember
/return
|----------------------------------------------------------------------------
| SUB: HealXT
|----------------------------------------------------------------------------
Sub HealXT
/declare emember int local 0
/declare worsthurtid int local 0
/declare worsthp int local 100
/declare worsthurtname string local NULL
/declare nexthealspell string local NULL
/for emember 1 to 10
/if (${Me.XTarget[${emember}].Type.Equal[PC]} && (!${Me.XTarget[${emember}].Hovering} || ${Me.XTarget[${emember}].Type.NotEqual[Corpse]})) {
/if (${Me.XTarget[${emember}].Distance}<=200 && ${Me.XTarget[${emember}].PctHPs}<=${worsthp} && ${Me.XTarget[${emember}].PctHPs}>=1) {
/varset worsthurtid ${Me.XTarget[${emember}].ID}
/varset worsthurtname ${Me.XTarget[${emember}].Name}
/varset worsthp ${Me.XTarget[${emember}].PctHPs}
}
}
/next emember
/if (${worsthp}<=${grouphealpoint}) {
/if ((${Me.SpellReady[${patchheal2}]})&&(${Me.XTarget[${worsthurtname}].PctHPs}<=${patchheal2point})&&(${Me.XTarget[${worsthurtname}].PctHPs}>=1)&&${Me.XTarget}>=1&&${Me.CurrentMana}>${Spell[${patchheal2}].Mana}) {
/varset nexthealspell ${patchheal2}
} else /if ((${Me.AltAbilityReady[Burst of Life]})&&(${Me.XTarget[${worsthurtname}].PctHPs}<=${clickhealpoint})&&${ClickHealTimer}==0&&${Me.XTarget}>=1) {
/varset ClickHealTimer 20
/call AANow 7689 ${nextid}
} else /if ((${Me.SpellReady[${patchheal}]})&&(${Me.XTarget[${worsthurtname}].PctHPs}<=${patchhealpoint})&&(${Me.XTarget[${worsthurtname}].PctHPs}>=1)&&${Me.XTarget}>=1&&${Me.CurrentMana}>${Spell[${patchheal}].Mana}) {
/varset nexthealspell ${patchheal}
} else /if ((${Me.SpellReady[${wardspell}]})&&(${Me.XTarget[${worsthurtname}].PctHPs}<=${bighealpoint})&&${Me.XTarget[${worsthurtname}].Type.NotEqual[Pet]}&&${Me.XTarget}>=1&&!${Target.Buff[${wardspell}].ID}&&${hottimer}==0&&${Me.CurrentMana}>${Spell[${wardspell}].Mana}) {
/varset nexthealspell ${wardspell}
/varcalc hottimer ${Spell[${wardspell}].Duration.TotalSeconds}*${DurationMod}*10
} else /if ((${Me.SpellReady[${bigheal1}]})&&(${Me.XTarget[${worsthurtname}].PctHPs}<=${bighealpoint})&&${Me.CurrentMana}>${Spell[${bigheal1}].Mana}&&${NoCures}!=1) {
/varset nexthealspell ${bigheal1}
} else /if ((${Me.SpellReady[${bigheal2}]})&&(${Me.XTarget[${worsthurtname}].PctHPs}<=${bighealpoint})&&${Me.CurrentMana}>${Spell[${bigheal2}].Mana}&&${NoCures}!=1) {
/varset nexthealspell ${bigheal2}
} else /if ((${Spawn[NPC los ${Me.XTarget[1].Name}].Distance}<150)&&(${Me.SpellReady[${healnuke1}]})&&(${Me.XTarget[${worsthurtname}].PctHPs}<=${healpoint})&&(${Me.XTarget[1].PctHPs}<90)&&(${Me.XTarget[1].PctHPs}>10)&&${Me.PctAggro}<50&&(${Me.PctMana}>=${Manatonuke})&&(${nextid}==${tankid})&&${Me.CurrentMana}>${Spell[${healnuke1}].Mana}) {
/varset nexthealspell ${healnuke1}
} else /if ((${Spawn[NPC los ${Me.XTarget[1].Name}].Distance}<150)&&(${Me.SpellReady[${healnuke2}]})&&(${Me.XTarget[${worsthurtname}].PctHPs}<=${healpoint})&&(${Me.XTarget[1].PctHPs}<90)&&(${Me.XTarget[1].PctHPs}>10)&&${Me.PctAggro}<50&&(${Me.PctMana}>=${Manatonuke})&&(${nextid}==${tankid})&&${Me.CurrentMana}>${Spell[${healnuke2}].Mana}) {
/varset nexthealspell ${healnuke2}
} else /if ((${Me.SpellReady[${nukeheal1}]})&&(${Spawn[NPC los ${Me.XTarget[1].Name}].Distance}<150)&&(${Me.XTarget[1].PctHPs}<90)&&(${Me.XTarget[1].PctHPs}>10)&&${Me.PctAggro}<50&&(${Me.PctMana}>=${Manatonuke})&&(${Me.XTarget[${worsthurtname}].PctHPs}<=${healpoint})&&${Me.CurrentMana}>${Spell[${nukeheal1}].Mana}) {
/call SpellQueue "${nukeheal1}" ${Me.XTarget[1].ID}
} else /if ((${Me.SpellReady[${nukeheal2}]})&&(${Spawn[NPC los ${Me.XTarget[1].Name}].Distance}<150)&&(${Me.XTarget[1].PctHPs}<90)&&(${Me.XTarget[1].PctHPs}>10)&&${Me.PctAggro}<50&&(${Me.PctMana}>=${Manatonuke})&&(${Me.XTarget[${worsthurtname}].PctHPs}<=${healpoint})&&${Me.CurrentMana}>${Spell[${nukeheal2}].Mana}) {
/call SpellQueue "${nukeheal2}" ${Me.XTarget[1].ID}
} else /if ((${Me.SpellReady[${remedyheal1}]})&&(${Me.XTarget[${worsthurtname}].PctHPs}<=${healpoint})&&!${remedyheal1.Equal[Complete Heal]}&&${Me.CurrentMana}>${Spell[${remedyheal1}].Mana}) {
/varset nexthealspell ${remedyheal1}
} else /if ((${Me.SpellReady[${remedyheal1}]})&&(${Me.XTarget[${worsthurtname}].PctHPs}<=${healpoint})&&${remedyheal1.Equal[Complete Heal]}&&${Select[${Me.XTarget[${worsthurtname}].Class.ShortName},WAR,SHD,PAL]}>0&&${Me.CurrentMana}>${Spell[${remedyheal1}].Mana}) {
/varset nexthealspell ${remedyheal1}
} else /if ((${Me.SpellReady[${remedyheal2}]})&&(${Me.XTarget[${worsthurtname}].PctHPs}<=${healpoint})&&${Me.CurrentMana}>${Spell[${remedyheal2}].Mana}) {
/varset nexthealspell ${remedyheal2}
}
/call SpellQueue "${nexthealspell}" ${worsthurtid}
}
/return
|----------------------------------------------------------------------------
| SUB: HealGroup
|----------------------------------------------------------------------------
Sub HealGroup
/declare petworsthp int local 100
/declare worsthp int local 100
/declare worsthurtid int local 0
/declare worsthurtname string local NULL
/declare gmember int local 0
/declare HurtMember int local 0
/for gmember 0 to ${Group}
/if (${Group.Member[${gmember}].ID}==${qmtarget}&&${Me.PctMana}>60&&${Group.Member[${gmember}].PctMana}<50&&${Me.AltAbilityReady[Quiet Miracle]}&&${Group}&& (!${Group.Member[${gmember}].Hovering} || ${Group.Member[${gmember}].Type.NotEqual[Corpse]})) /call AANow 135 ${Group.Member[${gmember}].ID}
/if (${Group.Member[${gmember}].Distance}<=${healspellrange}&& ${Group.Member[${gmember}].PctHPs}<100 && (!${Group.Member[${gmember}].Hovering} || ${Group.Member[${gmember}].Type.NotEqual[Corpse]})) {
/if ((${Group.Member[${gmember}].Distance}<100)&&(${Group.Member[${gmember}].PctHPs}<${grouphealpoint})&&(${Group.Member[${gmember}].PctHPs}>=1)) /varcalc HurtMember ${HurtMember}+1
/if (${Group.Member[${gmember}].PctHPs}<=${worsthp}&&((${Me.XTarget[1].PctHPs}<=99)||${Group.Member[${gmember}].Distance}<50)) {
/varset worsthurtid ${Group.Member[${gmember}].ID}
/varset worsthurtname ${Group.Member[${gmember}].Name}
/varset worsthp ${Group.Member[${gmember}].PctHPs}
}
}
/if (${Group.Member[${gmember}].Pet.ID}) {
/if (${Group.Member[${gmember}].Pet.Distance}<=${healspellrange}&&(${Group.Member[${gmember}].Pet.PctHPs}<=${worsthp})&&(${Group.Member[${gmember}].Pet.PctHPs}<=${pethealpoint})&&${pethealpoint}>0&&(${priorityworsthp}>${grouphealpoint})&&(${worsthp}>${grouphealpoint})) {
/varset worsthurtid ${Group.Member[${gmember}].Pet.ID}
/varset worsthurtname ${Group.Member[${gmember}].Pet.Name}
/varset petworsthp ${Group.Member[${gmember}].Pet.PctHPs}
}
}
/next gmember
|=============Main Tank Buff Check
/if (${Target.ID}==${tankid}&&${Target.BuffsPopulated}==TRUE) {
/if (!${Spell[${Target.Buff[${DivineBuff}]}].ID}&&${DivineBuffRecast}!=1) {
/varset DivineBuffRecast 1
/varset bufftimer 10s
}
/if (!${Spell[${Target.Buff[${TankBuffMatch}]}].ID}&&${TankBuffRecast}!=1) {
/varset TankBuffRecast 1
/varset bufftimer 10s
}
/if (!${Target.Aego.ID}&&!${Target.Skin.ID}&&!${Target.Symbol.ID}&&!${Target.MyBuff[${GroupBuff}].ID}&&${GroupBuffRecast}!=1) {
/varset GroupBuffRecast 1
/varset bufftimer 10s
}
/if (${Spell[${Target.Buff[${DivineBuff}]}].ID}&&${DivineBuffRecast}!=0) /varset DivineBuffRecast 0
/if (${Spell[${Target.Buff[${TankBuffMatch}]}].ID}&&${TankBuffRecast}!=0) /varset TankBuffRecast 0
/if (${Target.Aego.ID}||${Target.Skin.ID}||${Target.Symbol.ID}&&${GroupBuffRecast}!=0) /varset GroupBuffRecast 0
}
|============Group Healing
/if (${HurtMember}>=2&&${Me.AltAbilityReady[137]}&&${Group}) {
/call AANow 137 ${Me.ID}
} else /if (${HurtMember}>=2&&${Me.SpellReady[${groupfastheal}]}) {
/call SpellQueue "${groupfastheal}" ${Me.ID}
} else /if (${HurtMember}>=2&&${Me.SpellReady[${groupheal}]}&&${NoCures}!=1) {
/call SpellQueue "${groupheal}" ${Me.ID}
} else /if (${Me.PctHPs}<=${grouphealpoint}) {
/call HealQueue ${Me.ID}
} else /if ((${usepromheals}==1)&&(${PromisedTimer}==0)&&(${Group.Member[${tankname}].Distance}<=${promhealrange})&&${Me.XTarget[1].ID}&&${Group.Member[${tankname}].PctHPs}>=1&&${Me.GemTimer[${promheal}]}==0&&(${Group.Member[${tankname}].PctHPs}>${bighealpoint})) {
/call SpellQueue "${promheal}" ${tankid}
/if ((${Macro.Return.Equal[CAST_SUCCESS]})||(${Macro.Return.Equal[CAST_TAKEHOLD]})) /varset PromisedTimer 21s
} else /if ((${Group.Member[${tankname}].Distance}<=${healspellrange})&&(${Group.Member[${tankname}].PctHPs}<=${healpoint})&&${Group.Member[${tankname}].PctHPs}>=1) {
/call HealQueue ${tankid}
} else /if ((${Group.Member[${worsthurtname}].Distance}<=${healspellrange})&&(${worsthp}<=${grouphealpoint}||${petworsthp}<=${grouphealpoint})&&${Group.Member[${worsthurtname}].PctHPs}>=1) {
/call HealQueue ${worsthurtid}
} else /if ((${Me.Poisoned.ID}||${Me.Diseased.ID})&&${NoCures}!=1&& (${Me.AltAbilityReady[153]}||${Me.AltAbilityReady[41]}||${Me.AltAbilityReady[1062]}) && ${CureTimer}==0 && !${Me.Casting.ID}) {) {
/call GroupCure ${Me.ID}
} else /if (${Target.Type.Equal[PC]}&&${Target.BuffsPopulated}==TRUE&&${NoCures}!=1&&(${Target.Poisoned.ID}||${Target.Diseased.ID})&& (${Me.AltAbilityReady[153]}||${Me.AltAbilityReady[41]}||${Me.AltAbilityReady[1062]}) && ${CureTimer}==0 && !${Me.Casting.ID}) {) {
/call GroupCure ${Target.ID}
} else /if (${Target.Buff[Gift of Living Death].ID}&& ${CureTimer}==0 && !${Me.Casting.ID}) {) {
/call SingleCure ${Target.ID}
} else /if ((${DivineBuffOn}==1)&&(${DivineBuffRecast}==1)&&(!${Me.Casting.ID})&&(${Spell[${DivineBuff}].Range}>${Group.Member[${tankname}].Distance})&&(${Group.Member[${tankname}].PctHPs}>=1)&&(!${Group.Member[${tankname}].Hovering})&&(${Group.Member[${tankname}].PctHPs}>${healpoint})&&${bufftimer}==0) {
/call DivineUsage
} else /if ((${Me.PctMana}>=${Manatonuke})&&(${Me.XTarget[1].ID})&&(!${Raid.Members})&&${UseMelee}==1) {
/call Offense
}
/return
|----------------------------------------------------------------------------
| SUB: MedTime
|----------------------------------------------------------------------------
Sub MedTime
/doevents
/if (${Me.AltAbilityReady[Veturika's Perseverance]}&&${Me.PctMana}<=60&&${Select[${Zone.ID},344,345,202]}==0&&${Me.XTarget[1].ID}) {
/call AANow 798
} else /if (${Me.AltAbilityReady[Quiet Miracle]}&&${Me.PctMana}<=55&&${Select[${Zone.ID},344,345,202]}==0&&${Me.XTarget[1].ID}) {
/call AANow 135 ${Me.ID}
}
/if (${FindItem[Transvergence].ID} && ${FindItem[Transvergence].Timer}==0 && ${Me.PctMana}<=50 && ${Me.XTarget[1].ID}) /useitem "${FindItem[Transvergence]}"
/if (${FindItem[Modulation].ID} && ${FindItem[Modulation].Timer}==0 && ${Me.PctMana}<=50 && ${Me.XTarget[1].ID}) /useitem "${FindItem[Modulation]}"
|---SIT Check
/if ((${Me.Moving} || ${Me.XTarget[1].ID} || ${MoveTo.Moving} || ${Me.CombatState.Equal[COMBAT]} || ${Stick.Status.Equal[ON]} || ${AdvPath.Following}) && (${enablesit}==1)) /varset enablesit 0
|--Out of Combat MedTime - Sitting
/if (${Me.Standing} && !${Me.Moving} && ${Stick.Status.Equal[OFF]} && !${Me.XTarget[1].ID} && !${MoveTo.Moving} && !${AdvPath.Following} && ${Me.CombatState.NotEqual[COMBAT]}&&${Me.CombatState.NotEqual[DEBUFFED]}&&${enablesit}==0&&(${Me.PctMana}<=80&&${Me.MaxMana}>1000 || ${Me.PctEndurance}<=80)) {
/varset enablesit 1
} else /if (${sittimer}==0&&${enablesit}==0&&${Me.Sitting}&&(${Me.Moving} || ${Me.XTarget[1].ID} || ${MoveTo.Moving} || ${Me.CombatState.Equal[COMBAT]} || ${Stick.Status.Equal[ON]} || ${AdvPath.Following})) {
/stand
/varset sittimer 10s
} else /if (${sittimer}==0&&${enablesit}==1&&!${Me.Sitting}) {
/sit
/varset sittimer 10s
}
/if (${enablesit}==0&&!${Me.Mount.ID} && ${Zone.Outdoor} && ${FindItem[${mountitem}].ID} && !${Me.XTarget[1].ID} && !${MoveTo.Moving} && !${AdvPath.Following} && ${Stick.Status.Equal[OFF]} && !${Me.FeetWet} && !${Me.Invis}&&${UseMelee}!=1) {
/call ItemNow "${mountitem}"
} else /if (${enablesit}==0&&(${Me.XTarget[1].ID} || ${Me.CombatState.Equal[DEBUFFED]})&&(${Me.AltAbilityReady[489]})&&(!${Me.Mount.ID})&&(!${Me.Buff[${Me.AltAbility[489].Spell}].ID})&&(${Spell[${Me.AltAbility[489].Spell}].Stacks})) {
/call AANow 489
} else /if (${enablesit}==0&&(${GoMana}==0)&&(${Me.XTarget[1].ID} || ${Me.CombatState.Equal[DEBUFFED]})&&(!${Me.Mount.ID})&&(${Me.SpellReady[${yaulpspell}]})&&(!${Me.Buff[${yaulpspell}].ID})&&(${Spell[${yaulpspell}].Stacks})) {
/cast "${yaulpspell}"
/delay 2s !${Me.Casting.ID}
}
/return
|----------------------------------------------------------------------------
| SUB: Offensive Sub
|----------------------------------------------------------------------------
Sub Offense
/declare tarstring string local
/varset tarstring ${Me.XTarget[1].Name}
|==Get us a target
/call FindTarget
/if ((${Spawn[NPC los ${Me.XTarget[1].Name}].Distance}<150)&&(${Me.PctHPs}>${grouphealpoint})&&(${Spawn[NPC id ${autotargetid}].PctHPs}<90)&&(${Spawn[NPC id ${autotargetid}].PctHPs}>10)&&${Me.PctAggro}<70) {
|==Reverse DS
/if ((${reversenpcid}!=${autotargetid})&&(${Me.SpellReady[${ReverseDS}]})&&(${Spawn[${Me.XTarget[1].Name}].PctHPs}>=70)) {
/call SpellQueue "${ReverseDS}" ${autotargetid}
/if ((${Macro.Return.Equal[CAST_SUCCESS]})||(${Macro.Return.Equal[CAST_TAKEHOLD]})) /varset reversenpcid ${autotargetid}
|==Wicked DD Alts
} else /if ((${Me.AltAbilityReady[Smite the Wicked]})&&(${Spawn[NPC id ${autotargetid}].Distance}<200)&&(${tarstring.Find[ndead]}>=2)&&(${Me.AltAbility[Smite the Wicked]})) {
/call AANow 711 ${autotargetid}}
|==Stun Nukes
} else /if (${Group.Member[${tankname}].PctHPs}>${healpoint}&&(${Me.SpellReady[${stunnuke}]})&&(${Spawn[NPC id ${autotargetid}].Distance}<${Spell[${stunnuke}].Range})&&${Spawn[NPC id ${autotargetid}].Level}<=${StunLevel}) {
/call SpellQueue "${stunnuke}" ${autotargetid}
}
}
/return
|-------------------------------------------------------------------------------------
| SUB: Outside Rez Check
|-------------------------------------------------------------------------------------
Sub RezCheck
/declare i int local
/declare CorpseCount int local
/declare GroupCorpseCount int local
/declare RezID int local
/varset CorpseCount ${SpawnCount[pccorpse guild noalert 3 radius 100 zradius 50]}
/varset GroupCorpseCount ${SpawnCount[pccorpse group noalert 3 radius 100 zradius 50]}
/if (${Spawn[corpse ${Me} radius 100 zradius 50].ID}) {
/varset RezID ${Spawn[corpse ${Me} radius 100 zradius 50].ID}
/target id ${RezID}
/delay 5 ${Target.ID}==${RezID}
/corpse
/delay 5 ${Target.Distance}<10
/if (${Me.AltAbilityReady[Blessing of Resurrection]}) {
/casting "Blessing of Resurrection" alt -targetid|${RezID}
/delay 8
} else /if ((${FindItem[${epicwand}].ID}) && (${FindItem[${epicwand}].Timer}==0)&&!${Me.AltAbility[3800]}) {
/casting "${epicwand}" item -targetid|${RezID}
/delay 10s !${Me.Casting.ID}
} else /if (${Me.Book[Reviviscence]}&&${Me.CurrentMana}>${Spell[Reviviscence].Mana}&&!${Me.AltAbility[Blessing of Resurrection]}) {
/call SpellQueue "Reviviscence" ${RezID}
}
} else /if ((!${Me.Hovering})&&(${GroupCorpseCount}>0)) {
/for i 1 to ${GroupCorpseCount}
/varset RezID ${NearestSpawn[${i},pccorpse group radius 100 zradius 50].ID}
/if (${Spawn[noalert 4 id ${RezID}].ID}) {
/target id ${RezID}
/delay 5 ${Target.ID}==${RezID}
/corpse
/alert add 4 corpse "${Spawn[${RezID}]}"
}
/if (${Me.AltAbilityReady[Blessing of Resurrection]}) {
/casting "Blessing of Resurrection" alt -targetid|${RezID}
/delay 8
/if (${Cast.Result.Equal[CAST_SUCCESS]}) /alert add 3 corpse "${Spawn[${RezID}]}"
} else /if ((${FindItem[${epicwand}].ID}) && (${FindItem[${epicwand}].Timer}==0)&&!${Me.AltAbility[3800]}) {
/casting "${epicwand}" item -targetid|${RezID}
/delay 10s !${Me.Casting.ID}
/if (${Cast.Result.Equal[CAST_SUCCESS]}) /alert add 3 corpse "${Spawn[${RezID}]}"
} else /if (${Me.Book[Reviviscence]}&&${Me.CurrentMana}>${Spell[Reviviscence].Mana}&&!${Me.AltAbility[Blessing of Resurrection]}) {
/call SpellQueue "Reviviscence" ${RezID}
/if (${Cast.Result.Equal[CAST_SUCCESS]}) /alert add 3 corpse "${Spawn[${RezID}]}"
}
/next i
|-Will not rez in Guild lobby - Guild Hall - Plane of Knowledge
} else /if ((!${Me.Hovering})&&(${CorpseCount}>0)&&(${Select[${Zone.ID},344,345,202]}==0)) {
/for i 1 to ${CorpseCount}
/varset RezID ${NearestSpawn[${i},pccorpse guild radius 100 zradius 50].ID}
/if (${Spawn[noalert 4 id ${RezID}].ID}) {
/target id ${RezID}
/delay 5 ${Target.ID}==${RezID}
/corpse
/alert add 4 corpse "${Spawn[${RezID}]}"
}
/if (${Me.AltAbilityReady[Blessing of Resurrection]}) {
/casting "Blessing of Resurrection" alt -targetid|${RezID}
/delay 8 !${Me.Casting.ID}
/if (${Cast.Result.Equal[CAST_SUCCESS]}) /alert add 3 corpse "${Spawn[${RezID}]}"
} else /if ((${FindItem[${epicwand}].ID}) && (${FindItem[${epicwand}].Timer}==0)&&!${Me.AltAbility[3800]}) {
/casting "${epicwand}" item -targetid|${RezID}
/delay 10s !${Me.Casting.ID}
/if (${Cast.Result.Equal[CAST_SUCCESS]}) /alert add 3 corpse "${Spawn[${RezID}]}"
} else /if (${Me.Book[Reviviscence]}&&${Me.CurrentMana}>${Spell[Reviviscence].Mana}&&!${Me.AltAbility[Blessing of Resurrection]}) {
/call SpellQueue "Reviviscence" ${RezID}
/if (${Cast.Result.Equal[CAST_SUCCESS]}) /alert add 3 corpse "${Spawn[${RezID}]}"
}
/next i
}
/Return
|----------------------------------------------------------------------------
| SUB: BuffCheck
|----------------------------------------------------------------------------
Sub BuffCheck
/if (!${Me.Buff[${SelfBuff}].ID}&&(!${Me.Casting.ID})&&(${Spell[${SelfBuff}].Stacks})&&${usedruid}==0&&${Me.Book[${SelfBuff}]}&&${Me.CurrentMana}>${Spell[${SelfBuff}].Mana}) {
/call SpellQueue "${SelfBuff}" ${Me.ID}
} else /if (!${Me.Aego.ID}&&!${Me.Skin.ID}&&!${Me.Symbol.ID}&&${Me.Book[${GroupBuff}]}&&!${Spell[${Me.Buff[${GroupBuff}]}].ID}&&${Me.CurrentMana}>${Spell[${GroupBuff}].Mana}) {
/call SpellQueue "${GroupBuff}" ${Me.ID}
} else /if (${GroupBuffRecast}==1&&${Me.Book[${GroupBuff}]}&&${bufftimer}==0&&${Me.CurrentMana}>${Spell[${GroupBuff}].Mana}) {
/call SpellQueue "${GroupBuff}" ${tankid}
/varset GroupBuffRecast 0
} else /if ((${TankBuffRecast}==1)&&(!${Me.Casting.ID})&&(${Spell[${TankBuff}].Range}>${Group.Member[${tankname}].Distance})&&(${tankid})&&(!${Spawn[${tankname}].Hovering})&&${Me.Book[${TankBuff}]}&&${bufftimer}==0&&&&${Me.CurrentMana}>${Spell[${TankBuff}].Mana}) {
/call SpellQueue "${TankBuff}" ${tankid}
/varset TankBuffRecast 0
} else /if ((!${Me.Casting.ID})&&(${Spell[${SymbolBuff}].Range}>${Spawn[${SymbolBuffRecast}].Distance})&&(${Spawn[${SymbolBuffRecast}].ID})&&(!${Spawn[${SymbolBuffRecast}].Hovering})&&${Me.Book[${SymbolBuff}]}&&&&${Me.CurrentMana}>${Spell[${SymbolBuff}].Mana}&&${bufftimer}==0) {
/call SpellQueue "${SymbolBuff}" ${Spawn[${SymbolBuffRecast}].ID}
/varset SymbolBuffRecast 0
} else /if ((!${Me.Casting.ID})&&(${Spell[${HPBuff}].Range}>${Spawn[${HPBuffRecast}].Distance})&&(${Spawn[${HPBuffRecast}].ID})&&(!${Spawn[${HPBuffRecast}].Hovering})&&${Me.Book[${HPBuff}]}&&${Me.CurrentMana}>${Spell[${HPBuff}].Mana}&&${bufftimer}==0) {
/call SpellQueue "${HPBuff}" ${Spawn[${HPBuffRecast}].ID}
/varset HPBuffRecast 0
} else /if ((!${Me.Casting.ID})&&(${Spell[${TankBuff}].Range}>${Spawn[${ShiningBuffRecast}].Distance})&&(${Spawn[${ShiningBuffRecast}].ID})&&(!${Spawn[${ShiningBuffRecast}].Hovering})&&${Me.Book[${TankBuff}]}&&${Me.CurrentMana}>${Spell[${TankBuff}].Mana}&&${bufftimer}==0) {
/call SpellQueue "${TankBuff}" ${Spawn[${ShiningBuffRecast}].ID}
/varset ShiningBuffRecast 0
} else /if ((${DivineBuffOn}==1)&&(${DivineBuffRecast}==1)&&(!${Me.Casting.ID})&&(${Spell[${DivineBuff}].Range}>${Group.Member[${tankname}].Distance})&&(${Group.Member[${tankname}].PctHPs}>=1)&&(!${Group.Member[${tankname}].Hovering})&&${Me.Book[${DivineBuff}]}&&${bufftimer}==0&&${Me.CurrentMana}>${Spell[${DivineBuff}].Mana}) {
/call DivineUsage
/varset DivineBuffRecast 0
} else /if (${Bool[${aurabuff1}]} && (!${Me.Casting.ID}) && !${Me.Aura[1].Name.Find[${cleanaura1}]} && !${Me.Aura[2].Name.Find[${cleanaura1}]}&&${Me.Book[${aurabuff1}]}&&${Me.CurrentMana}>${Spell[${aurabuff1}].Mana}) {
/call SpellQueue "${aurabuff1}" ${Me.ID}
} else /if (${Bool[${aurabuff2}]} && (!${Me.Casting.ID}) && !${Me.Aura[1].Name.Find[${cleanaura2}]} && !${Me.Aura[2].Name.Find[${cleanaura2}]}&&${Me.Book[${aurabuff2}]}&&${Me.CurrentMana}>${Spell[${aurabuff2}].Mana}) {
/call SpellQueue "${aurabuff2}" ${Me.ID}
}
/return
|----------------------------------------------------------------------------
| SUB: DA Logic
|----------------------------------------------------------------------------
Sub DALogic
/if (${Me.Song["Touch of the Divine"].ID}) {
/echo Touch of the Divine detected!
/removebuff Touch of the Divine
/delay 5 !${Me.Song["Touch of the Divine"].ID}
}
/if (${Me.AltAbilityReady[Divine Peace]}) {
/call AANow 464
} else /if (${Me.AltAbilityReady[Sanctuary]}) {
/call AANow 396
} else /if (${Me.AltAbilityReady[Silent Casting]}) {
/call AANow 494
}
/return
|----------------------------------------------------------------------------
| SUB: Aggro Check
|----------------------------------------------------------------------------
Sub AggroCheck
/if (${Me.AltAbilityReady[Divine Peace]}) {
/call AANow 464
} else /if (${Me.AltAbilityReady[Sanctuary]}) {
/call AANow 396
} else /if (${Me.AltAbilityReady[Silent Casting]}) {
/call AANow 494
}
/return
|----------------------------------------------------------------------------
| SUB: Misc Events
|----------------------------------------------------------------------------
Sub Event_GoMana
/varset GoMana 1
/timed 180 /varset GoMana 0
/call Healgroup
/return
Sub Event_GoMoff
/varset GoMana 0
/return
|----------------------------------------------------------------------------
| SUB: Symbol - HP Buff Single use
|----------------------------------------------------------------------------
Sub Event_Chat(string ChatType,string ChatSender,string ChatText)
/if (${Spawn[pc ${ChatSender}].ID}&&${ChatType.Equal[tell]}) /mqlog ${ChatSender} -- ${ChatText}
/if (${Spawn[${ChatSender.Right[-2].Left[-1]}].ID}) {
/if (${Select[${ChatText},symbol,Symbol,SYMBOL]} && (${Spawn[${ChatSender.Right[-2].Left[-1]}].Distance}<100)) /varset SymbolBuffRecast ${Spawn[${ChatSender.Right[-2].Left[-1]}].ID}
/if (${Select[${ChatText},hpbuff,HPBuff,HPBUFF,HpBuff,Hpbuff,HPbuff]} && (${Spawn[${ChatSender.Right[-2].Left[-1]}].Distance}<100)) /varset HPBuffRecast ${Spawn[${ChatSender.Right[-2].Left[-1]}].ID}
/if (${Select[${ChatText},Shining,shining]} && (${Spawn[${ChatSender.Right[-2].Left[-1]}].Distance}<100)) /varset ShiningBuffRecast ${Spawn[${ChatSender.Right[-2].Left[-1]}].ID}
/if (${Select[${ChatText},Cure,cure,CURE]} && (${Spawn[${ChatSender.Right[-2].Left[-1]}].Distance}<200)) /call SingleCure ${Spawn[${ChatSender.Right[-2].Left[-1]}].ID}
}
/return
|----------------------------------------------------------------------------
| SUB: SingleCure
|----------------------------------------------------------------------------
Sub SingleCure(int cureid)
/varset CureTimer 10s
/if ((${Me.SpellReady[${bigheal1}]})&&${Me.CurrentMana}>${Spell[${bigheal1}].Mana}) {
/call SpellQueue "${bigheal1}" ${cureid}
} else /if ((${Me.SpellReady[${bigheal2}]})&&${Me.CurrentMana}>${Spell[${bigheal2}].Mana}) {
/call SpellQueue "${bigheal2}" ${cureid}
} else /if (${Me.AltAbilityReady[41]}&&!${Me.Casting.ID}) {
/call AANow 41 ${cureid}
}
/return
|----------------------------------------------------------------------------
| SUB: GroupCure
|----------------------------------------------------------------------------
Sub GroupCure(int cureid)
/varset CureTimer 10s
/if (${Me.AltAbilityReady[153]}) {
/call AANow 153 ${cureid}
} else /if (${Me.AltAbilityReady[1062]}) {
/call AANow 1062 ${cureid}
} else /if (${Me.AltAbilityReady[41]}&&!${Me.Casting.ID}) {
/call AANow 41 ${cureid}
}
/return
|----------------------------------------------------------------------------
| SUB: DivineUsage
|----------------------------------------------------------------------------
Sub DivineUsage
/varset Emeralds ${FindItem[=Emerald].StackCount}
/varset Pearls ${FindItem[=Emerald].StackCount}
/if ((${Emeralds}<2&&${DivineBuff.NotEqual[Death Pact]})||(${DivineBuff.Equal[Death Pact]}&&${Pearls}<2)) {
/echo Unable to cast ${DivineBuff} No reagent disabling Divine Casting
/varset DivineBuffOn 0
/varset changetoini 1
} else {
/call SpellQueue "${DivineBuff}" ${tankid}
/if ((${Macro.Return.Equal[CAST_SUCCESS]})||(${Macro.Return.Equal[CAST_TAKEHOLD]})) /varset DivineBuffRecast 0
}
/return
|----------------------------------------------------------------------------
| SUB: Buff Event
|----------------------------------------------------------------------------
Sub Event_Buff(string line, string Mybuff)
/if (${Mybuff.Equal[${TankBuffMatch}]}) /varset TankBuffRecast 1
/if (${Mybuff.Equal[${DivineBuff}]}) /varset DivineBuffRecast 1
/return
|----------------------------------------------------------------------------
| SUB: Buff Setup
|----------------------------------------------------------------------------
Sub BuffSetup
/if (${TankBuff.Find[Shining]}) {
/varset TankBuffMatch Shining Defense
} else {
/varset TankBuffMatch ${TankBuff}
}
/return
|----------------------------------------------------------------------------
| SUB: TankChangeCheck
|----------------------------------------------------------------------------
Sub TankChangeCheck
/if (!${Group.Member[${tankname}].PctHPs}>=1) {
/if (!${Bool[${oldtank}]}) /varset oldtank ${tankname}
/if (${Spawn[group notid ${Me.ID} radius 150].ID}) {
/echo Tank Gone - Switching to Nearest Group Member Alive
/varset tankname ${Spawn[group notid ${Me.ID} radius 150]}
} else {
/echo Tank and Group Gone - Switching to Self Heal mode
/varset tankname ${Me.Name}
}
}
/if (${Group.Member[${oldtank}].ID}) {
/echo Tank is Back - Switching him back to maintank
/varset tankname ${oldtank}
/varset oldtank NULL
}
/if (${newtank}==1) {
/docommand /varset tankname ${Target.Name}
/echo Main Tank set to ${tankname}
/varset newtank 0
}
/return
|----------------------------------------------------------------------------
| SUB: MemSpells
|----------------------------------------------------------------------------
Sub MemSpells(string memspell,int memgem)
/delay 2s !${Me.Casting.ID}
/echo Memorizing ${memspell}
/memspell ${memgem} "${memspell}"
/delay 25
/return
|----------------------------------------------------------------------------
| SUB: INIChanges
|----------------------------------------------------------------------------
Sub INIChanges
/varset changetoini 0
/call SetIni General FollowToonName string "${FollowToonName}"
/call SetIni General usepromheals int ${usepromheals}
/call SetIni General DivineBuffOn int ${DivineBuffOn}
/call SetIni General AutoRez int ${AutoRez}
/call SetIni General pethealpoint int ${pethealpoint}
/call SetIni General tbmhealpoint int ${tbmhealpoint}
/call SetIni General raidhealpoint int ${raidhealpoint}
/call SetIni General UseFellowship int ${UseFellowship}
/call SetIni General InstantRelease int ${InstantRelease}
/call SetIni General AutoCampHold int ${AutoCampHold}
/call SetIni General qmtarget int ${qmtarget}
/call SetIni General UseMelee int ${UseMelee}
/call SetIni General BringYourOwnSpells int ${BringYourOwnSpells}
/if (${Manatonuke}<20) {
/echo Invalid Manatonuke value must be above 20 - Setting 100 to disable
/varset Manatonuke 100
} else {
/call SetIni General Manatonuke int ${Manatonuke}
}
/call SetIni General usedruid int ${usedruid}
/call SetIni Spells mountitem string "${mountitem}"
/if (!${Me.Gem[${DivineBuff}]}&&${Spell[${DivineBuff}].ID}&&${DivineBuffOn}==1) /call MemSpells "${DivineBuff}" ${divinegem}
/if (!${Me.Gem[${promheal}]}&&${Spell[${promheal}].ID}&&${usepromheals}==1) /call MemSpells "${promheal}" ${promgem}
/return
|----------------------------------------------------------------------------
| SUB: CheckSpells
|----------------------------------------------------------------------------
Sub CheckSpells
|---Ward Spell Slot 1 or Heal over time for low level
/if (${Me.Level}>=110 && ${Me.Book[${Spell[Ward of Assurance].RankName}]}) {
/varset wardspell ${Spell[Ward of Assurance].RankName}
} else /if (${Me.Level}>=102 && ${Me.Book[${Spell[Ward of Surety].RankName}]}) {
/varset wardspell ${Spell[Ward of Surety].RankName}
} else /if (${Me.Level}>=97 && ${Me.Book[${Spell[Ward of Certitude].RankName}]}) {
/varset wardspell ${Spell[Ward of Certitude].RankName}
} else /if (${Me.Level}>=92 && ${Me.Book[${Spell[Zealous Elixir].RankName}]}) {
/varset wardspell ${Spell[Zealous Elixir].RankName}
} else /if (${Me.Level}>=87 && ${Me.Book[${Spell[Earnest Elixir].RankName}]}) {
/varset wardspell ${Spell[Earnest Elixir].RankName}
} else /if (${Me.Level}>=82 && ${Me.Book[${Spell[Devout Elixir].RankName}]}) {
/varset wardspell ${Spell[Devout Elixir].RankName}
} else /if (${Me.Level}>=77 && ${Me.Book[${Spell[Solemn Elixir].RankName}]}) {
/varset wardspell ${Spell[Solemn Elixir].RankName}
} else /if (${Me.Level}>=72 && ${Me.Book[${Spell[Sacred Elixir].RankName}]}) {
/varset wardspell ${Spell[Sacred Elixir].RankName}
} else /if (${Me.Level}>=67 && ${Me.Book[${Spell[Pious Elixir].RankName}]}) {
/varset wardspell ${Spell[Pious Elixir].RankName}
} else /if (${Me.Level}>=65 && ${Me.Book[${Spell[Holy Elixir].RankName}]}) {
/varset wardspell ${Spell[Holy Elixir].RankName}
} else /if (${Me.Level}>=62 && ${Me.Book[${Spell[Supernal Elixir].RankName}]}) {
/varset wardspell ${Spell[Supernal Elixir].RankName}
} else /if (${Me.Level}>=59 && ${Me.Book[${Spell[Celestial Elixir].RankName}]}) {
/varset wardspell ${Spell[Celestial Elixir].RankName}
} else /if (${Me.Level}>=44 && ${Me.Book[${Spell[Celestial Healing].RankName}]}) {
/varset wardspell ${Spell[Celestial Healing].RankName}
} else /if (${Me.Level}>=29 && ${Me.Book[${Spell[Celestial Health].RankName}]}) {
/varset wardspell ${Spell[Celestial Health].RankName}
} else /if (${Me.Level}>=19 && ${Me.Book[${Spell[Celestial Remedy].RankName}]}) {
/varset wardspell ${Spell[Celestial Remedy].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${wardspell}]}&&${Me.Book[${wardspell}]}&&${BringYourOwnSpells}!=1) /call MemSpells "${wardspell}" ${spellgem}
/if (${Me.Book[${wardspell}]}) /varcalc spellgem ${spellgem}+1
|---Remedy Slot 2 and 3
/if (${Me.Level}>=110 && ${Me.Book[${Spell[Merciful Remedy].RankName}]}) {
/varset remedyheal1 ${Spell[Merciful Remedy].RankName}
/varset remedyheal2 ${Spell[Spiritual Remedy].RankName}
} else /if (${Me.Level}>=101 && ${Me.Book[${Spell[Spiritual Remedy].RankName}]}) {
/varset remedyheal1 ${Spell[Spiritual Remedy].RankName}
/varset remedyheal2 ${Spell[Graceful Remedy].RankName}
} else /if (${Me.Level}>=96 && ${Me.Book[${Spell[Graceful Remedy].RankName}]}) {
/varset remedyheal1 ${Spell[Graceful Remedy].RankName}
/varset remedyheal2 ${Spell[Faithful Remedy].RankName}
} else /if (${Me.Level}>=91 && ${Me.Book[${Spell[Faithful Remedy].RankName}]}) {
/varset remedyheal1 ${Spell[Faithful Remedy].RankName}
/varset remedyheal2 ${Spell[Earnest Remedy].RankName}
} else /if (${Me.Level}>=86 && ${Me.Book[${Spell[Earnest Remedy].RankName}]}) {
/varset remedyheal1 ${Spell[Earnest Remedy].RankName}
/varset remedyheal2 ${Spell[Devout Remedy].RankName}
} else /if (${Me.Level}>=81 && ${Me.Book[${Spell[Devout Remedy].RankName}]}) {
/varset remedyheal1 ${Spell[Devout Remedy].RankName}
/varset remedyheal2 ${Spell[Solemn Remedy].RankName}
} else /if (${Me.Level}>=76 && ${Me.Book[${Spell[Solemn Remedy].RankName}]}) {
/varset remedyheal1 ${Spell[Complete Heal].RankName}
/varset remedyheal2 ${Spell[Solemn Remedy].RankName}
} else /if (${Me.Level}>=71 && ${Me.Book[${Spell[Sacred Remedy].RankName}]}) {
/varset remedyheal1 ${Spell[Complete Heal].RankName}
/varset remedyheal2 ${Spell[Sacred Remedy].RankName}
} else /if (${Me.Level}>=66 && ${Me.Book[${Spell[Pious Remedy].RankName}]}) {
/varset remedyheal1 ${Spell[Complete Heal].RankName}
/varset remedyheal2 ${Spell[Pious Remedy].RankName}
} else /if (${Me.Level}>=61 && ${Me.Book[${Spell[Supernal Remedy].RankName}]}) {
/varset remedyheal1 ${Spell[Complete Heal].RankName}
/varset remedyheal2 ${Spell[Supernal Remedy].RankName}
} else /if (${Me.Level}>=59 && ${Me.Book[${Spell[Ethereal Remedy].RankName}]}) {
/varset remedyheal1 ${Spell[Complete Heal].RankName}
/varset remedyheal2 ${Spell[Solemn Remedy].RankName}
} else /if (${Me.Level}>=51 && ${Me.Book[${Spell[Remedy].RankName}]}) {
/varset remedyheal1 ${Spell[Complete Heal].RankName}
/varset remedyheal2 ${Spell[Remedy].RankName}
} else /if (${Me.Level}>=39 && ${Me.Book[${Spell[Complete Heal].RankName}]}) {
/varset remedyheal1 ${Spell[Complete Heal].RankName}
/varset remedyheal2 ${Spell[Superior Healing].RankName}
} else /if (${Me.Level}>=30 && ${Me.Book[${Spell[Superior Healing].RankName}]}) {
/varset remedyheal1 ${Spell[Superior Healing].RankName}
/varset remedyheal2 ${Spell[Celestial Health].RankName}
} else /if (${Me.Level}>=29 && ${Me.Book[${Spell[Celestial Health].RankName}]}) {
/varset remedyheal1 ${Spell[Celestial Health].RankName}
/varset remedyheal2 ${Spell[Greater Healing].RankName}
} else /if (${Me.Level}>=20 && ${Me.Book[${Spell[Greater Healing].RankName}]}) {
/varset remedyheal1 ${Spell[Greater Healing].RankName}
/varset remedyheal2 ${Spell[Healing].RankName}
} else /if (${Me.Level}>=10 && ${Me.Book[${Spell[Healing].RankName}]}) {
/varset remedyheal1 ${Spell[Healing].RankName}
/varset remedyheal2 ${Spell[Light Healing].RankName}
} else /if (${Me.Level}>=4 && ${Me.Book[${Spell[Light Healing].RankName}]}) {
/varset remedyheal1 ${Spell[Light Healing].RankName}
/varset remedyheal2 ${Spell[Minor Healing].RankName}
} else /if (${Me.Level}>=1 && ${Me.Book[${Spell[Minor Healing].RankName}]}) {
/varset remedyheal1 ${Spell[Minor Healing].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${remedyheal1}]}&&${Me.Book[${remedyheal1}]}&&${BringYourOwnSpells}!=1) /call MemSpells "${remedyheal1}" ${spellgem}
/if (${Me.Book[${remedyheal1}]}) /varcalc spellgem ${spellgem}+1
/if (!${Me.Gem[${spellgem}].Name.Equal[${remedyheal2}]}&&${Me.Book[${remedyheal2}]}&&${BringYourOwnSpells}!=1) /call MemSpells "${remedyheal2}" ${spellgem}
/if (${Me.Book[${remedyheal2}]}) /varcalc spellgem ${spellgem}+1
|---Patch Heals Slot 4
/if (${Me.Level}>=110 && ${Me.Book[${Spell[Undying Life].RankName}]}) {
/varset patchheal ${Spell[Undying Life].RankName}
/varset patchheal2 ${Spell[Sixteenth Serenity].RankName}
/varset patchhealpoint 44
/varset patchheal2point 34
} else /if (${Me.Level}>=101 && ${Me.Book[${Spell[Undying Life].RankName}]}) {
/varset patchheal ${Spell[Undying Life].RankName}
/varset patchheal2 ${Spell[Fifteenth Emblem].RankName}
/varset patchhealpoint 44
/varset patchheal2point 34
} else /if (${Me.Level}>=97 && ${Me.Book[${Spell[Fifteenth Emblem].RankName}]}) {
/varset patchheal ${Spell[Fifteenth Emblem].RankName}
/varset patchhealpoint 34
} else /if (${Me.Level}>=92 && ${Me.Book[${Spell[Fourteenth Catalyst].RankName}]}) {
/varset patchheal ${Spell[Fourteenth Catalyst].RankName}
/varset patchhealpoint 34
} else /if (${Me.Level}>=87 && ${Me.Book[${Spell[Thirteenth Salve].RankName}]}) {
/varset patchheal ${Spell[Thirteenth Salve].RankName}
/varset patchhealpoint 34
} else /if (${Me.Level}>=82 && ${Me.Book[${Spell[Twelfth Night].RankName}]}) {
/varset patchheal ${Spell[Twelfth Night].RankName}
/varset patchhealpoint 34
} else /if (${Me.Level}>=77 && ${Me.Book[${Spell[Eleventh-Hour].RankName}]}) {
/varset patchheal ${Spell[Eleventh-Hour].RankName}
/varset patchhealpoint 34
} else /if (${Me.Level}>=73 && ${Me.Book[${Spell[Sacred Light].RankName}]}) {
/varset patchheal ${Spell[Sacred Light].RankName}
} else /if (${Me.Level}>=70 && ${Me.Book[${Spell[Ancient Hallowed Light].RankName}]}) {
/varset patchheal ${Spell[Ancient Hallowed Light].RankName}
} else /if (${Me.Level}>=68 && ${Me.Book[${Spell[Pious Light].RankName}]}) {
/varset patchheal ${Spell[Pious Light].RankName}
} else /if (${Me.Level}>=65 && ${Me.Book[${Spell[Holy Light].RankName}]}) {
/varset patchheal ${Spell[Holy Light].RankName}
} else /if (${Me.Level}>=63 && ${Me.Book[${Spell[Supernal Light].RankName}]}) {
/varset patchheal ${Spell[Supernal Light].RankName}
} else /if (${Me.Level}>=58 && ${Me.Book[${Spell[Ethereal Light].RankName}]}) {
/varset patchheal ${Spell[Ethereal Light].RankName}
} else /if (${Me.Level}>=53 && ${Me.Book[${Spell[Divine Light].RankName}]}) {
/varset patchheal ${Spell[Divine Light].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${patchheal}]}&&${Me.Book[${patchheal}]}&&${BringYourOwnSpells}!=1) /call MemSpells "${patchheal}" ${spellgem}
/if (${Me.Book[${patchheal}]}) /varcalc spellgem ${spellgem}+1
/if (!${Me.Gem[${spellgem}].Name.Equal[${patchheal2}]}&&${Me.Book[${patchheal2}]}&&${BringYourOwnSpells}!=1) /call MemSpells "${patchheal2}" ${spellgem}
/if (${Me.Book[${patchheal2}]}) /varcalc spellgem ${spellgem}+1
|---Group Heals Slot 5
/if (${Me.Level}>=110 && ${Me.Book[${Spell[Word of Greater Restoration].RankName}]}) {
/varset groupheal ${Spell[Word of Greater Restoration].RankName}
} else /if (${Me.Level}>=105 && ${Me.Book[${Spell[Word of Greater Reformation].RankName}]}) {
/varset groupheal ${Spell[Word of Greater Reformation].RankName}
} else /if (${Me.Level}>=100 && ${Me.Book[${Spell[Word of Reformation].RankName}]}) {
/varset groupheal ${Spell[Word of Reformation].RankName}
} else /if (${Me.Level}>=95 && ${Me.Book[${Spell[Word of Rehabilitation].RankName}]}) {
/varset groupheal ${Spell[Word of Rehabilitation].RankName}
} else /if (${Me.Level}>=90 && ${Me.Book[${Spell[Word of Resurgence].RankName}]}) {
/varset groupheal ${Spell[Word of Resurgence].RankName}
} else /if (${Me.Level}>=85 && ${Me.Book[${Spell[Word of Recovery].RankName}]}) {
/varset groupheal ${Spell[Word of Recovery].RankName}
} else /if (${Me.Level}>=80 && ${Me.Book[${Spell[Word of Vivacity].RankName}]}) {
/varset groupheal ${Spell[Word of Vivacity].RankName}
} else /if (${Me.Level}>=69 && ${Me.Book[${Spell[Word of Vivification].RankName}]}) {
/varset groupheal ${Spell[Word of Vivification].RankName}
} else /if (${Me.Level}>=64 && ${Me.Book[${Spell[Word of Replenishment].RankName}]}) {
/varset groupheal ${Spell[Word of Replenishment].RankName}
} else /if (${Me.Level}>=60 && ${Me.Book[${Spell[Word of Redemption].RankName}]}) {
/varset groupheal ${Spell[Word of Redemption].RankName}
} else /if (${Me.Level}>=57 && ${Me.Book[${Spell[Word of Restoration].RankName}]}) {
/varset groupheal ${Spell[Word of Restoration].RankName}
} else /if (${Me.Level}>=52 && ${Me.Book[${Spell[Word of Vigor].RankName}]}) {
/varset groupheal ${Spell[Word of Vigor].RankName}
} else /if (${Me.Level}>=45 && ${Me.Book[${Spell[Word of Healing].RankName}]}) {
/varset groupheal ${Spell[Word of Healing].RankName}
} else /if (${Me.Level}>=30 && ${Me.Book[${Spell[Word of Health].RankName}]}) {
/varset groupheal ${Spell[Word of Health].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${groupheal}]}&&${Me.Book[${groupheal}]}&&${BringYourOwnSpells}!=1) /call MemSpells "${groupheal}" ${spellgem}
/if (${Me.Book[${groupheal}]}) /varcalc spellgem ${spellgem}+1
|---Group Fast Heal 103+ Only
/if (${Me.Level}>=108 && ${Me.Book[${Spell[Syllable of Mending].RankName}]}) {
/varset groupfastheal ${Spell[Syllable of Mending].RankName}
} else /if (${Me.Level}>=103 && ${Me.Book[${Spell[Syllable of Convalescence].RankName}]}) {
/varset groupfastheal ${Spell[Syllable of Convalescence].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${groupfastheal}]}&&${Me.Book[${groupfastheal}]}&&${BringYourOwnSpells}!=1) /call MemSpells "${groupfastheal}" ${spellgem}
/if (${Me.Book[${groupfastheal}]}) /varcalc spellgem ${spellgem}+1
|---Yaulp Setup Pre-91 AA
/if (${Me.Level}>=91) {
/if (!${Me.AltAbility[489]}) /echo BUY YAULP AA YOU CHEAP BASTARD!
} else /if (${Me.Level}>=86 && ${Me.Book[${Spell[Yaulp XI].RankName}]}) {
/varset yaulpspell ${Spell[Yaulp XI].RankName}
} else /if (${Me.Level}>=81 && ${Me.Book[${Spell[Yaulp X].RankName}]}) {
/varset yaulpspell ${Spell[Yaulp X].RankName}
} else /if (${Me.Level}>=76 && ${Me.Book[${Spell[Yaulp IX].RankName}]}) {
/varset yaulpspell ${Spell[Yaulp IX].RankName}
} else /if (${Me.Level}>=71 && ${Me.Book[${Spell[Yaulp VIII].RankName}]}) {
/varset yaulpspell ${Spell[Yaulp VIII].RankName}
} else /if (${Me.Level}>=69 && ${Me.Book[${Spell[Yaulp VII].RankName}]}) {
/varset yaulpspell ${Spell[Yaulp VII].RankName}
} else /if (${Me.Level}>=65 && ${Me.Book[${Spell[Yaulp VI].RankName}]}) {
/varset yaulpspell ${Spell[Yaulp VI].RankName}
} else /if (${Me.Level}>=56 && ${Me.Book[${Spell[Yaulp V].RankName}]}) {
/varset yaulpspell ${Spell[Yaulp V].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${yaulpspell}]}&&${Me.Book[${yaulpspell}]}&&${BringYourOwnSpells}!=1) /call MemSpells "${yaulpspell}" ${spellgem}
/if (${Me.Book[${yaulpspell}]}) /varcalc spellgem ${spellgem}+1
|---Renewal Big Heal Lines
/if (${Me.Level}>=110 && ${Me.Book[${Spell[Furial Renewal].RankName}]}) {
/varset bigheal1 ${Spell[Furial Renewal].RankName}
/varset bigheal2 ${Spell[Fervid Renewal].RankName}
} else /if (${Me.Level}>=105 && ${Me.Book[${Spell[Fervid Renewal].RankName}]}) {
/varset bigheal1 ${Spell[Fervid Renewal].RankName}
/varset bigheal2 ${Spell[Fraught Renewal].RankName}
} else /if (${Me.Level}>=100 && ${Me.Book[${Spell[Fraught Renewal].RankName}]}) {
/varset bigheal1 ${Spell[Fraught Renewal].RankName}
/varset bigheal2 ${Spell[Fervent Renewal].RankName}
} else /if (${Me.Level}>=95 && ${Me.Book[${Spell[Fervent Renewal].RankName}]}) {
/varset bigheal1 ${Spell[Fervent Renewal].RankName}
/varset bigheal2 ${Spell[Frenzied Renewal].RankName}
} else /if (${Me.Level}>=90 && ${Me.Book[${Spell[Frenzied Renewal].RankName}]}) {
/varset bigheal1 ${Spell[Frenzied Renewal].RankName}
/varset bigheal2 ${Spell[Frenetic Renewal].RankName}
} else /if (${Me.Level}>=85 && ${Me.Book[${Spell[Frenetic Renewal].RankName}]}) {
/varset bigheal1 ${Spell[Frenetic Renewal].RankName}
/varset bigheal2 ${Spell[Frantic Renewal].RankName}
} else /if (${Me.Level}>=80 && ${Me.Book[${Spell[Frantic Renewal].RankName}]}) {
/varset bigheal1 ${Spell[Frantic Renewal].RankName}
/varset bigheal2 ${Spell[Desperate Renewal].RankName}
} else /if (${Me.Level}>=70 && ${Me.Book[${Spell[Desperate Renewal].RankName}]}) {
/varset bigheal1 ${Spell[Desperate Renewal].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${bigheal1}]}&&${Me.Book[${bigheal1}]}&&${BringYourOwnSpells}!=1) /call MemSpells "${bigheal1}" ${spellgem}
/if (${Me.Book[${bigheal1}]}) /varcalc spellgem ${spellgem}+1
| /if (!${Me.Gem[${spellgem}].Name.Equal[${bigheal2}]}&&${Me.Book[${bigheal2}]}&&${BringYourOwnSpells}!=1) /call MemSpells "${bigheal2}" ${spellgem}
| /if (${Me.Book[${bigheal2}]}) /varcalc spellgem ${spellgem}+1
|---Heal Tank and Nuke Tanks Target
/if (${Me.Level}>=110 && ${Me.Book[${Spell[Merciful Intervention].RankName}]}) {
/varset healnuke1 ${Spell[Merciful Intervention].RankName}
/varset healnuke2 ${Spell[Mystical Intervention].RankName}
} else /if (${Me.Level}>=103 && ${Me.Book[${Spell[Mystical Intervention].RankName}]}) {
/varset healnuke1 ${Spell[Mystical Intervention].RankName}
/varset healnuke2 ${Spell[Virtuous Intervention].RankName}
} else /if (${Me.Level}>=98 && ${Me.Book[${Spell[Virtuous Intervention].RankName}]}) {
/varset healnuke1 ${Spell[Virtuous Intervention].RankName}
/varset healnuke2 ${Spell[Elysian Intervention].RankName}
} else /if (${Me.Level}>=93 && ${Me.Book[${Spell[Elysian Intervention].RankName}]}) {
/varset healnuke1 ${Spell[Elysian Intervention].RankName}
/varset healnuke2 ${Spell[Celestial Intervention].RankName}
} else /if (${Me.Level}>=88 && ${Me.Book[${Spell[Celestial Intervention].RankName}]}) {
/varset healnuke1 ${Spell[Celestial Intervention].RankName}
/varset healnuke2 ${Spell[Holy Intervention].RankName}
} else /if (${Me.Level}>=83 && ${Me.Book[${Spell[Holy Intervention].RankName}]}) {
/varset healnuke1 ${Spell[Holy Intervention].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${healnuke1}]}&&${Me.Book[${healnuke1}]}&&${BringYourOwnSpells}!=1) /call MemSpells "${healnuke1}" ${spellgem}
/if (${Me.Book[${healnuke1}]}) /varcalc spellgem ${spellgem}+1
| /if (!${Me.Gem[${spellgem}].Name.Equal[${healnuke2}]}&&${Me.Book[${healnuke2}]}&&${BringYourOwnSpells}!=1) /call MemSpells "${healnuke2}" ${spellgem}
| /if (${Me.Book[${healnuke2}]}) /varcalc spellgem ${spellgem}+1
|---Nuke Target and Heal Tank - DISABLED
/if (${Me.Level}>=105 && ${Me.Book[${Spell[Ardent Contravention].RankName}]}) {
/varset nukeheal1 ${Spell[Ardent Contravention].RankName}
/varset nukeheal2 ${Spell[Virtuous Contravention].RankName}
} else /if (${Me.Level}>=100 && ${Me.Book[${Spell[Virtuous Contravention].RankName}]}) {
/varset nukeheal1 ${Spell[Virtuous Contravention].RankName}
/varset nukeheal2 ${Spell[Elysian Contravention].RankName}
} else /if (${Me.Level}>=95 && ${Me.Book[${Spell[Elysian Contravention].RankName}]}) {
/varset nukeheal1 ${Spell[Elysian Contravention].RankName}
/varset nukeheal2 ${Spell[Celestial Contravention].RankName}
} else /if (${Me.Level}>=90 && ${Me.Book[${Spell[Celestial Contravention].RankName}]}) {
/varset nukeheal1 ${Spell[Celestial Contravention].RankName}
/varset nukeheal2 ${Spell[Holy Contravention].RankName}
} else /if (${Me.Level}>=85 && ${Me.Book[${Spell[Holy Contravention].RankName}]}) {
/varset nukeheal1 ${Spell[Holy Contravention].RankName}
}
| /if (!${Me.Gem[${spellgem}].Name.Equal[${nukeheal1}]}&&${Me.Book[${nukeheal1}]}&&${BringYourOwnSpells}!=1) /call MemSpells "${nukeheal1}" ${spellgem}
| /if (${Me.Book[${nukeheal1}]}) /varcalc spellgem ${spellgem}+1
| /if (!${Me.Gem[${spellgem}].Name.Equal[${nukeheal2}]}&&${Me.Book[${nukeheal2}]}&&${BringYourOwnSpells}!=1) /call MemSpells "${nukeheal2}" ${spellgem}
| /if (${Me.Book[${nukeheal2}]}) /varcalc spellgem ${spellgem}+1
|---Stun Nukes - DISABLED
/if (${Me.Level}>=101 && ${Me.Book[${Spell[Awecrush].RankName}]}) {
/varset stunnuke ${Spell[Awecrush].RankName}
/varset StunLevel 105
} else /if (${Me.Level}>=96 && ${Me.Book[${Spell[Aweclash].RankName}]}) {
/varset stunnuke ${Spell[Aweclash].RankName}
/varset StunLevel 100
} else /if (${Me.Level}>=91 && ${Me.Book[${Spell[Aweburst].RankName}]}) {
/varset stunnuke ${Spell[Aweburst].RankName}
/varset StunLevel 95
} else /if (${Me.Level}>=86 && ${Me.Book[${Spell[Awecrash].RankName}]}) {
/varset stunnuke ${Spell[Awecrash].RankName}
/varset StunLevel 90
} else /if (${Me.Level}>=81 && ${Me.Book[${Spell[Aweshake].RankName}]}) {
/varset stunnuke ${Spell[Aweshake].RankName}
/varset StunLevel 85
}
| /if (!${Me.Gem[${spellgem}].Name.Equal[${stunnuke}]}&&${Me.Book[${stunnuke}]}&&${BringYourOwnSpells}!=1) /call MemSpells "${stunnuke}" ${spellgem}
| /if (${Me.Book[${stunnuke}]}) /varcalc spellgem ${spellgem}+1
|---Promised Heals
/if (${Me.Level}>=103 && ${Me.Book[${Spell[Promised Remedy].RankName}]}) {
/varset promheal ${Spell[Promised Remedy].RankName}
} else /if (${Me.Level}>=103 && ${Me.Book[${Spell[Promised Rehabilitation].RankName}]}) {
/varset promheal ${Spell[Promised Rehabilitation].RankName}
} else /if (${Me.Level}>=98 && ${Me.Book[${Spell[Promised Reformation].RankName}]}) {
/varset promheal ${Spell[Promised Reformation].RankName}
} else /if (${Me.Level}>=93 && ${Me.Book[${Spell[Promised Restitution].RankName}]}) {
/varset promheal ${Spell[Promised Restitution].RankName}
} else /if (${Me.Level}>=88 && ${Me.Book[${Spell[Promised Resurgence].RankName}]}) {
/varset promheal ${Spell[Promised Resurgence].RankName}
} else /if (${Me.Level}>=83 && ${Me.Book[${Spell[Promised Recuperation].RankName}]}) {
/varset promheal ${Spell[Promised Recuperation].RankName}
} else /if (${Me.Level}>=78 && ${Me.Book[${Spell[Promised Restoration].RankName}]}) {
/varset promheal ${Spell[Promised Restoration].RankName}
} else /if (${Me.Level}>=73 && ${Me.Book[${Spell[Promised Renewal].RankName}]}) {
/varset promheal ${Spell[Promised Renewal].RankName}
}
/if (${DivineBuffOn}==1) {
/varcalc promgem ${spellslots}-1
} else {
/varset promgem ${spellslots}
}
/if (!${Me.Gem[${promheal}]}&&${usepromheals}==1&&${Me.Book[${promheal}]}&&${BringYourOwnSpells}!=1) /call MemSpells "${promheal}" ${promgem}
/return
|----------------------------------------------------------------------------
| SUB: CheckBuffs
|----------------------------------------------------------------------------
Sub CheckBuffs
/declare rankcheck string local
|--Group Buff All Levels starts at 45
/if (${Me.Level}>=110 && ${Me.Book[${Spell[Unified Hand of Assurance].RankName}]}) {
/varset GroupHPBuff ${Spell[Unified Hand of Assurance].RankName}
} else /if (${Me.Level}>=105 && ${Me.Book[${Spell[Unified Hand of Surety].RankName}]}) {
/varset GroupHPBuff ${Spell[Unified Hand of Surety].RankName}
} else /if (${Me.Level}>=100 && ${Me.Book[${Spell[Unified Hand of Certitude].RankName}]}) {
/varset GroupHPBuff ${Spell[Unified Hand of Certitude].RankName}
} else /if (${Me.Level}>=95 && ${Me.Book[${Spell[Unified Hand of Credence].RankName}]}) {
/varset GroupHPBuff ${Spell[Unified Hand of Credence].RankName}
} else /if (${Me.Level}>=90 && ${Me.Book[${Spell[Hand of Reliance].RankName}]}) {
/varset GroupHPBuff ${Spell[Hand of Reliance].RankName}
} else /if (${Me.Level}>=85 && ${Me.Book[${Spell[Hand of Gallantry].RankName}]}) {
/varset GroupHPBuff ${Spell[Hand of Gallantry].RankName}
} else /if (${Me.Level}>=80 && ${Me.Book[${Spell[Hand of Temerity].RankName}]}) {
/varset GroupHPBuff ${Spell[Hand of Temerity].RankName}
} else /if (${Me.Level}>=75 && ${Me.Book[${Spell[Hand of Tenacity].RankName}]}) {
/varset GroupHPBuff ${Spell[Hand of Tenacity].RankName}
} else /if (${Me.Level}>=70 && ${Me.Book[${Spell[Hand of Conviction].RankName}]}) {
/varset GroupHPBuff ${Spell[Hand of Conviction].RankName}
} else /if (${Me.Level}>=65 && ${Me.Book[${Spell[Hand of Virtue].RankName}]}) {
/varset GroupHPBuff ${Spell[Hand of Virtue].RankName}
} else /if (${Me.Level}>=60 && ${Me.Book[${Spell[Blessing of Aegolism].RankName}]}) {
/varset GroupHPBuff ${Spell[Blessing of Aegolism].RankName}
} else /if (${Me.Level}>=52 && ${Me.Book[${Spell[Heroic Bond].RankName}]} && !${Me.Book[${Spell[Blessing of Temperance].RankName}]}) {
/varset GroupHPBuff ${Spell[Heroic Bond].RankName}
} else /if (${Me.Level}>=45 && ${Me.Book[${Spell[Blessing of Temperance].RankName}]}) {
/varset GroupHPBuff ${Spell[Blessing of Temperance].RankName}
}
|--Self Buff for Mana Regen and armor
/if (${Me.Level}>=110 && ${Me.Book[${Spell[Armor of the Merciful].RankName}]}) {
/varset SelfBuff ${Spell[Armor of the Merciful].RankName}
} else /if (${Me.Level}>=105 && ${Me.Book[${Spell[Armor of the Ardent].RankName}]}) {
/varset SelfBuff ${Spell[Armor of the Ardent].RankName}
} else /if (${Me.Level}>=100 && ${Me.Book[${Spell[Armor of the Reverent].RankName}]}) {
/varset SelfBuff ${Spell[Armor of the Reverent].RankName}
} else /if (${Me.Level}>=95 && ${Me.Book[${Spell[Armor of the Zealous].RankName}]}) {
/varset SelfBuff ${Spell[Armor of the Zealous].RankName}
} else /if (${Me.Level}>=90 && ${Me.Book[${Spell[Armor of the Earnest].RankName}]}) {
/varset SelfBuff ${Spell[Armor of the Earnest].RankName}
} else /if (${Me.Level}>=85 && ${Me.Book[${Spell[Armor of the Devout].RankName}]}) {
/varset SelfBuff ${Spell[Armor of the Devout].RankName}
} else /if (${Me.Level}>=80 && ${Me.Book[${Spell[Armor of the Solemn].RankName}]}) {
/varset SelfBuff ${Spell[Armor of the Solemn].RankName}
} else /if (${Me.Level}>=75 && ${Me.Book[${Spell[Armor of the Sacred].RankName}]}) {
/varset SelfBuff ${Spell[Armor of the Sacred].RankName}
} else /if (${Me.Level}>=70 && ${Me.Book[${Spell[Armor of the Pious].RankName}]}) {
/varset SelfBuff ${Spell[Armor of the Pious].RankName}
} else /if (${Me.Level}>=65 && ${Me.Book[${Spell[Armor of the Zealot].RankName}]}) {
/varset SelfBuff ${Spell[Armor of the Zealot].RankName}
} else /if (${Me.Level}>=60 && ${Me.Book[${Spell[Ancient High Priest's Bulwark].RankName}]}) {
/varset SelfBuff ${Spell[Ancient High Priest's Bulwark].RankName}
} else /if (${Me.Level}>=58 && ${Me.Book[${Spell[Blessed Armor of the Risen].RankName}]}) {
/varset SelfBuff ${Spell[Blessed Armor of the Risen].RankName}
}
|--Tank Buff Traditionally Shining Series of Buffs
/if (${Me.Level}>=109 && ${Me.Book[${Spell[Shining Fortress].RankName}]}) {
/varset TankBuff ${Spell[Shining Fortress].RankName}
} else /if (${Me.Level}>=104 && ${Me.Book[${Spell[Shining Bulwark].RankName}]}) {
/varset TankBuff ${Spell[Shining Bulwark].RankName}
} else /if (${Me.Level}>=99 && ${Me.Book[${Spell[Shining Bastion].RankName}]}) {
/varset TankBuff ${Spell[Shining Bastion].RankName}
} else /if (${Me.Level}>=94 && ${Me.Book[${Spell[Shining Armor].RankName}]}) {
/varset TankBuff ${Spell[Shining Armor].RankName}
} else /if (${Me.Level}>=89 && ${Me.Book[${Spell[Shining Rampart].RankName}]}) {
/varset TankBuff ${Spell[Shining Rampart].RankName}
}
|--Group Vie Buff
/if (${Me.Book[${Spell[Rallied Greater Guard of Vie].RankName}]}) {
/varset GroupVieBuff ${Spell[Rallied Greater Guard of Vie].RankName}
} else /if (${Me.Book[${Spell[Rallied Greater Ward of Vie].RankName}]}) {
/varset GroupVieBuff ${Spell[Rallied Greater Ward of Vie].RankName}
} else /if (${Me.Book[${Spell[Rallied Bastion of Vie].RankName}]}) {
/varset GroupVieBuff ${Spell[Rallied Bastion of Vie].RankName}
} else /if (${Me.Book[${Spell[Rallied Armor of Vie].RankName}]}) {
/varset GroupVieBuff ${Spell[Rallied Armor of Vie].RankName}
} else /if (${Me.Book[${Spell[Rallied Rampart of Vie].RankName}]}) {
/varset GroupVieBuff ${Spell[Rallied Rampart of Vie].RankName}
} else /if (${Me.Book[${Spell[Rallied Palladium of Vie].RankName}]}) {
/varset GroupVieBuff ${Spell[Rallied Palladium of Vie].RankName}
} else /if (${Me.Book[${Spell[Rallied Shield of Vie].RankName}]}) {
/varset GroupVieBuff ${Spell[Rallied Shield of Vie].RankName}
} else /if (${Me.Book[${Spell[Rallied Aegis of Vie].RankName}]}) {
/varset GroupVieBuff ${Spell[Rallied Aegis of Vie].RankName}
}
|--Aura Buffs
/if (${Me.Level}>=100 && ${Me.Book[${Spell[Aura of the Reverent].RankName}]}) {
/varset aurabuff1 ${Spell[Aura of the Reverent].RankName}
/if (${Me.Book[${Spell[Aura of Divinity].RankName}]}&&${Me.AltAbility[Spirit Mastery].ID}) {
/varset aurabuff2 ${Spell[Aura of Divinity].RankName}
} else /if (${Me.Book[${Spell[Circle of Divinity].RankName}]}&&${Me.AltAbility[Spirit Mastery].ID}) {
/varset aurabuff2 ${Spell[Circle of Divinity].RankName}
}
} else /if (${Me.Level}>=80 && ${Me.Book[${Spell[Circle of Divinity].RankName}]}) {
/varset aurabuff1 ${Spell[Circle of Divinity].RankName}
/if (${Me.Book[${Spell[Aura of the Pious].RankName}]}&&${Me.AltAbility[Spirit Mastery].ID}) /varset aurabuff2 ${Spell[Aura of the Pious].RankName}
} else /if (${Me.Level}>=70 && ${Me.Book[${Spell[Aura of the Pious].RankName}]}) {
/varset aurabuff1 ${Spell[Aura of the Pious].RankName}
} else /if (${Me.Level}>=55 && ${Me.Book[${Spell[Aura of the Zealot].RankName}]}) {
/varset aurabuff1 ${Spell[Aura of the Zealot].RankName}
}
|--Divine Buffs REQUIRES extra spell slot because of the 90s recast
/if (${Me.Level}>=107 && ${Me.Book[${Spell[Divine Jurisdiction].RankName}]}) {
/varset DivineBuff ${Spell[Divine Jurisdiction].RankName}
} else /if (${Me.Level}>=102 && ${Me.Book[${Spell[Divine Indemnification].RankName}]}) {
/varset DivineBuff ${Spell[Divine Indemnification].RankName}
} else /if (${Me.Level}>=97 && ${Me.Book[${Spell[Divine Interposition].RankName}]}) {
/varset DivineBuff ${Spell[Divine Interposition].RankName}
} else /if (${Me.Level}>=92 && ${Me.Book[${Spell[Divine Invocation].RankName}]}) {
/varset DivineBuff ${Spell[Divine Invocation].RankName}
} else /if (${Me.Level}>=87 && ${Me.Book[${Spell[Divine Intercession].RankName}]}) {
/varset DivineBuff ${Spell[Divine Intercession].RankName}
} else /if (${Me.Level}>=60 && ${Me.Book[${Spell[Divine Intervention].RankName}]}) {
/varset DivineBuff ${Spell[Divine Intervention].RankName}
} else /if (${Me.Level}>=51 && ${Me.Book[${Spell[Death Pact].RankName}]}) {
/varset DivineBuff ${Spell[Death Pact].RankName}
}
/if (!${Me.Gem[${DivineBuff}]}&&${Spell[${DivineBuff}].ID}&&${DivineBuffOn}==1) /call MemSpells "${DivineBuff}" ${spellslots}
|--Reverse Damage Shield
/if (${Me.Level}>=109 && ${Me.Book[${Spell[Mark of Shandral].RankName}]}) {
/varset ReverseDS ${Spell[Mark of Shandral].RankName}
} else /if (${Me.Level}>=104 && ${Me.Book[${Spell[Mark of the Vicarum].RankName}]}) {
/varset ReverseDS ${Spell[Mark of the Vicarum].RankName}
} else /if (${Me.Level}>=99 && ${Me.Book[${Spell[Mark of the Zealot].RankName}]}) {
/varset ReverseDS ${Spell[Mark of the Zealot].RankName}
} else /if (${Me.Level}>=94 && ${Me.Book[${Spell[Mark of the Adherent].RankName}]}) {
/varset ReverseDS ${Spell[Mark of the Adherent].RankName}
} else /if (${Me.Level}>=89 && ${Me.Book[${Spell[Mark of the Devout].RankName}]}) {
/varset ReverseDS ${Spell[Mark of the Devout].RankName}
} else /if (${Me.Level}>=84 && ${Me.Book[${Spell[Mark of the Unsullied].RankName}]}) {
/varset ReverseDS ${Spell[Mark of the Unsullied].RankName}
} else /if (${Me.Level}>=79 && ${Me.Book[${Spell[Mark of the Devoted].RankName}]}) {
/varset ReverseDS ${Spell[Mark of the Devoted].RankName}
} else /if (${Me.Level}>=74 && ${Me.Book[${Spell[Mark of the Martyr].RankName}]}) {
/varset ReverseDS ${Spell[Mark of the Martyr].RankName}
} else /if (${Me.Level}>=69 && ${Me.Book[${Spell[Mark of the Blameless].RankName}]}) {
/varset ReverseDS ${Spell[Mark of the Blameless].RankName}
} else /if (${Me.Level}>=65 && ${Me.Book[${Spell[Mark of the Righteous].RankName}]}) {
/varset ReverseDS ${Spell[Mark of the Righteous].RankName}
} else /if (${Me.Level}>=54 && ${Me.Book[${Spell[Mark of Retribution].RankName}]}) {
/varset ReverseDS ${Spell[Mark of Retribution].RankName}
}
|--Symbols
/if (${Me.Level}>=110 && ${Me.Book[${Spell[Unity of Emra].RankName}]}) {
/varset SymbolBuff ${Spell[Unity of Emra].RankName}
} else /if (${Me.Level}>=101 && ${Me.Book[${Spell[Unity of Nonia].RankName}]}) {
/varset SymbolBuff ${Spell[Unity of Nonia].RankName}
} else /if (${Me.Level}>=96 && ${Me.Book[${Spell[Unity of Gezat].RankName}]}) {
/varset SymbolBuff ${Spell[Unity of Gezat].RankName}
} else /if (${Me.Level}>=91 && ${Me.Book[${Spell[Unity of the Triumvirate].RankName}]}) {
/varset SymbolBuff ${Spell[Unity of the Triumvirate].RankName}
} else /if (${Me.Level}>=86 && ${Me.Book[${Spell[Symbol of Ealdun].RankName}]}) {
/varset SymbolBuff ${Spell[Symbol of Ealdun].RankName}
} else /if (${Me.Level}>=81 && ${Me.Book[${Spell[Symbol of Darianna].RankName}]}) {
/varset SymbolBuff ${Spell[Symbol of Darianna].RankName}
} else /if (${Me.Level}>=76 && ${Me.Book[${Spell[Symbol of Kaerra].RankName}]}) {
/varset SymbolBuff ${Spell[Symbol of Kaerra].RankName}
} else /if (${Me.Level}>=71 && ${Me.Book[${Spell[Symbol of Elushar].RankName}]}) {
/varset SymbolBuff ${Spell[Symbol of Elushar].RankName}
} else /if (${Me.Level}>=66 && ${Me.Book[${Spell[Symbol of Balikor].RankName}]}) {
/varset SymbolBuff ${Spell[Symbol of Balikor].RankName}
} else /if (${Me.Level}>=61 && ${Me.Book[${Spell[Symbol of Kazad].RankName}]}) {
/varset SymbolBuff ${Spell[Symbol of Kazad].RankName}
} else /if (${Me.Level}>=54 && ${Me.Book[${Spell[Symbol of Marzin].RankName}]}) {
/varset SymbolBuff ${Spell[Symbol of Marzin].RankName}
} else /if (${Me.Level}>=41 && ${Me.Book[${Spell[Symbol of Naltron].RankName}]}) {
/varset SymbolBuff ${Spell[Symbol of Naltron].RankName}
} else /if (${Me.Level}>=31 && ${Me.Book[${Spell[Symbol of Pinzarn].RankName}]}) {
/varset SymbolBuff ${Spell[Symbol of Pinzarn].RankName}
} else /if (${Me.Level}>=21 && ${Me.Book[${Spell[Symbol of Ryltan].RankName}]}) {
/varset SymbolBuff ${Spell[Symbol of Ryltan].RankName}
} else /if (${Me.Level}>=11 && ${Me.Book[${Spell[Symbol of Transal].RankName}]}) {
/varset SymbolBuff ${Spell[Symbol of Transal].RankName}
}
|--Group Symbols
/if (${Me.Level}>=110 && ${Me.Book[${Spell[Unified Hand of Emra].RankName}]}) {
/varset GroupSymbolBuff ${Spell[Unified Hand of Emra].RankName}
} else /if (${Me.Level}>=105 && ${Me.Book[${Spell[Unified Hand of Nonia].RankName}]}) {
/varset GroupSymbolBuff ${Spell[Unified Hand of Nonia].RankName}
} else /if (${Me.Level}>=100 && ${Me.Book[${Spell[Unified Hand of Gezat].RankName}]}) {
/varset GroupSymbolBuff ${Spell[Unified Hand of Gezat].RankName}
} else /if (${Me.Level}>=95 && ${Me.Book[${Spell[Unified Hand of the Triumvirate].RankName}]}) {
/varset GroupSymbolBuff ${Spell[Unified Hand of the Triumvirate].RankName}
} else /if (${Me.Level}>=90 && ${Me.Book[${Spell[Ealdun's Mark].RankName}]}) {
/varset GroupSymbolBuff ${Spell[Ealdun's Mark].RankName}
} else /if (${Me.Level}>=85 && ${Me.Book[${Spell[Darianna's Mark].RankName}]}) {
/varset GroupSymbolBuff ${Spell[Darianna's Mark].RankName}
} else /if (${Me.Level}>=80 && ${Me.Book[${Spell[Kaerra's Mark].RankName}]}) {
/varset GroupSymbolBuff ${Spell[Kaerra's Mark].RankName}
} else /if (${Me.Level}>=75 && ${Me.Book[${Spell[Elushar's Mark].RankName}]}) {
/varset GroupSymbolBuff ${Spell[Elushar's Mark].RankName}
} else /if (${Me.Level}>=70 && ${Me.Book[${Spell[Balikor's Mark].RankName}]}) {
/varset GroupSymbolBuff ${Spell[Balikor's Mark].RankName}
} else /if (${Me.Level}>=63 && ${Me.Book[${Spell[Kazad's Mark].RankName}]}) {
/varset GroupSymbolBuff ${Spell[Kazad's Mark].RankName}
} else /if (${Me.Level}>=58 && ${Me.Book[${Spell[Naltron's Mark].RankName}]}) {
/varset GroupSymbolBuff ${Spell[Naltron's Mark].RankName}
}
|--Single Target HP Buffs
/if (${Me.Level}>=102 && ${Me.Book[${Spell[Unified Surety].RankName}]}) {
/varset HPBuff ${Spell[Unified Surety].RankName}
} else /if (${Me.Level}>=97 && ${Me.Book[${Spell[Unified Certitude].RankName}]}) {
/varset HPBuff ${Spell[Unified Certitude].RankName}
} else /if (${Me.Level}>=92 && ${Me.Book[${Spell[Unified Credence].RankName}]}) {
/varset HPBuff ${Spell[Unified Credence].RankName}
} else /if (${Me.Level}>=87 && ${Me.Book[${Spell[Reliance].RankName}]}) {
/varset HPBuff ${Spell[Reliance].RankName}
} else /if (${Me.Level}>=82 && ${Me.Book[${Spell[Gallantry].RankName}]}) {
/varset HPBuff ${Spell[Gallantry].RankName}
} else /if (${Me.Level}>=77 && ${Me.Book[${Spell[Temerity].RankName}]}) {
/varset HPBuff ${Spell[Temerity].RankName}
} else /if (${Me.Level}>=72 && ${Me.Book[${Spell[Tenacity].RankName}]}) {
/varset HPBuff ${Spell[Tenacity].RankName}
} else /if (${Me.Level}>=67 && ${Me.Book[${Spell[Conviction].RankName}]}) {
/varset HPBuff ${Spell[Conviction].RankName}
} else /if (${Me.Level}>=62 && ${Me.Book[${Spell[Virtue].RankName}]}) {
/varset HPBuff ${Spell[Virtue].RankName}
} else /if (${Me.Level}>=60 && ${Me.Book[${Spell[Aegolism].RankName}]}) {
/varset HPBuff ${Spell[Aegolism].RankName}
} else /if (${Me.Level}>=40 && ${Me.Book[${Spell[Temperance].RankName}]}) {
/varset HPBuff ${Spell[Temperance].RankName}
} else /if (${Me.Level}>=52 && ${Me.Book[${Spell[Heroism].RankName}]}) {
/varset HPBuff ${Spell[Heroism].RankName}
} else /if (${Me.Level}>=32 && ${Me.Book[${Spell[Valor].RankName}]}) {
/varset HPBuff ${Spell[Valor].RankName}
} else /if (${Me.Level}>=22 && ${Me.Book[${Spell[Bravery].RankName}]}) {
/varset HPBuff ${Spell[Bravery].RankName}
} else /if (${Me.Level}>=17 && ${Me.Book[${Spell[Daring].RankName}]}) {
/varset HPBuff ${Spell[Daring].RankName}
} else /if (${Me.Level}>=7 && ${Me.Book[${Spell.RankName}]}) {
/varset HPBuff ${Spell.RankName}
} else /if (${Me.Level}>=1 && ${Me.Book[${Spell[Courage].RankName}]}) {
/varset HPBuff ${Spell[Courage].RankName}
}
/return
|------------------------------|
|---AUTO-BARD by Noobhaxor-----|
|--------Version 2.4.2 --------|
|-----September Update --------|
#turbo 80
#Event Buff "Your #1# spell has worn off of #*#."
#include autosubs.inc
Sub Main
/doevents flush
/declare MacroName string outer AutoBard
/declare IniFileName string outer ${MacroName}_${Me.CleanName}.ini
|-Declare spell variables
/if (${Me.AltAbility[Mnemonic Retention].Rank}==4) {
/declare spellmisc int outer 12
/declare spellslots int outer 11
} else /if (${Me.AltAbility[Mnemonic Retention].Rank}==3) {
/declare spellmisc int outer 11
/declare spellslots int outer 10
} else /if (${Me.AltAbility[Mnemonic Retention].Rank}==2) {
/declare spellmisc int outer 10
/declare spellslots int outer 9
} else /if (${Me.AltAbility[Mnemonic Retention].Rank}==1) {
/declare spellmisc int outer 9
/declare spellslots int outer 8
} else {
/declare spellmisc int outer 8
/declare spellslots int outer 7
}
/declare spellgem int outer 1
|Declare Songs
/declare aurasong string outer NULL
/declare regensong string outer NULL
/declare song1 string outer NULL
/declare song2 string outer NULL
/declare song3 string outer NULL
/declare song4 string outer NULL
/declare song5 string outer NULL
/declare slowsong string outer NULL
/declare bmsong string outer NULL
/declare aoemezsong string outer NULL
/declare aeslowsong string outer NULL
/if (!${Defined[castready]}) /declare castready timer outer 0
/declare bmsongtimer timer outer 0
/declare aeslowtimer timer outer 0
/declare epicsword string outer NULL
/declare darksword string outer NULL
/if (${FindItem[Darkened Breath of Harmony].ID}) {
/varset darksword Darkened Breath of Harmony
}
/if (${FindItem[Prismatic Dragon Blade].ID}) {
/varset epicsword Prismatic Dragon Blade
} else /if (${FindItem[Blade of Vesagran].ID}) {
/varset epicsword Blade of Vesagran
}
/call VarSetup
|-Config Options
/call LoadIni General FollowToonName string NULL
/call LoadIni General UseFellowship int 0
/call LoadIni General UseMelee int 1
/call LoadIni General UseSlow int 1
/call LoadIni General UseMez int 1
/call LoadIni General InstantRelease int 0
/call LoadIni General AutoCampHold int 1
/call LoadIni General AutoAssistAt int 98
/call LoadIni General BringYourOwnSpells int 0
/noparse /alias /byos /multiline ; /varset changetoini 1 ; /docommand ${If[${BringYourOwnSpells}==1,/varset BringYourOwnSpells 0,/varset BringYourOwnSpells 1]} ; /echo Toggling Bring Your Own Spells to ${If[${BringYourOwnSpells}==0,OFF,ON]}
/call AliasSetup
/call AutoVersionCheck 5
/call SetupSongs
|----------------------------------------------------------------------------
| MainLoop
|----------------------------------------------------------------------------
:mainloop
/if (${changetoini}==1) /call INIChanges
/if (${Me.Zoning}) /call Zoning
/if (${Me.Hovering}) /call DeathSub
/if (!${Me.XTarget[1].ID}&&!${Me.Invis}) /call DowntimeSongs
/if (${Me.XTarget[1].ID}) /call FindTarget
/if (${Me.XTarget[1].ID}&&${Me.Combat}&&${UseMelee}==1) /call EngageTarget
/if (${Me.XTarget}>1&&${UseMez}==1) /call AESongs
/if (${Me.XTarget[1].ID} && ${castready}==0) /call CombatSongs
/if (${Me.XTarget[1].ID} && (${Me.XTarget}>3 || ${Target.Named}) && ${Target.ID}==${autotargetid}) /call BardBurn
/if (!${Me.XTarget[1].ID}) /call AutoCampCheck
/call SitCheck
/doevents
/goto :mainloop
/return
|----------------------------------------------------------------------------
| SUB: BardBurn
|----------------------------------------------------------------------------
Sub BardBurn
/if (${FindItem[${epicsword}].ID} && ${FindItem[${epicsword}].Timer}==0) /call ItemNow "${epicsword}"
/if (${Me.AltAbilityReady[Quick Time]}) /call AANow 3702
|--Third Spire
/if (${Me.AltAbilityReady[1422]}) /call AANow 1422
/if (${Me.AltAbilityReady[Funeral Dirge]}) /call AANow 777
| /if (${Me.AltAbilityReady[Bladed Song]}) /call AANow 669
/if (${Me.AltAbilityReady[Dance of Blades]}) /call AANow 359
/if (${Me.CombatAbilityReady[Thousand Blades]}) /call DiscNow "Thousand Blades"
/return
|----------------------------------------------------------------------------
| SUB: AESongs
|----------------------------------------------------------------------------
Sub AESongs
/if (${Me.XTarget}>1 && ${SpawnCount[NPC radius 30]}>1 &&${Me.GemTimer[${aoemezsong}]}==0&& ${castready}==0&&${Me.CurrentMana}>${Spell[${aoemezsong}].Mana}&&${Me.Gem[${aoemezsong}]}) {
/call SongQueue "${aoemezsong}"
}
/return
|----------------------------------------------------------------------------
| SUB: CombatSongs
|----------------------------------------------------------------------------
Sub CombatSongs
|In Combat
/if (${Me.CombatAbilityReady["Reflexive Rejoinder"]}&& ${Me.PctEndurance}>10 && ${Group.Member[${Spawn[group cleric].CleanName}].PctMana}<50 && ${Group.Member[${Spawn[group cleric].CleanName}].PctMana}>=1) {
/docommand /doability "Reflexive Rejoinder"
/delay 8 !${Me.CombatAbilityReady["Reflexive Rejoinder"]}
}
/if (${Target.Type.Equal[NPC]} && ${Target.Distance}<150&&${Me.GemTimer[${slowsong}]}==0 && !${Spell[${Target.Buff[${slowsong}]}].ID}&&${UseSlow}&&${Me.Gem[${slowsong}]}) {
/call SongQueue "${slowsong}"
} else /if (${Me.GemTimer[${bmsong}]}==0&&${bmsongtimer}==0&&${Me.Gem[${bmsong}]}) {
/call SongQueue "${bmsong}"
/varset bmsongtimer 1m
} else /if (${FindItem[${darksword}].ID} && ${FindItem[${darksword}].Timer}==0 && ${Me.Song[Doben's Spry Sonata Rk. II].Duration}<4000) {
/call ItemNow "${darksword}"
} else /if (${Me.GemTimer[${song1}]}==0&&${Me.Song[${song1}].Duration}<4000&&${Me.CurrentMana}>${Spell[${song1}].Mana}&&${Me.Gem[${song1}]}) {
/call SongQueue "${song1}"
} else /if (${Me.GemTimer[${song2}]}==0&&${Me.Song[${song2}].Duration}<4000&&${Me.CurrentMana}>${Spell[${song2}].Mana}&&${Me.Gem[${song2}]}) {
/call SongQueue "${song2}"
} else /if (${Me.GemTimer[${song3}]}==0&&${Me.Song[${song3}].Duration}<4000&&${Me.CurrentMana}>${Spell[${song3}].Mana}&&${Me.Gem[${song3}]}) {
/call SongQueue "${song3}"
} else /if (${Me.GemTimer[${song4}]}==0&&${Me.Song[${song4}].Duration}<4000&&${Me.CurrentMana}>${Spell[${song4}].Mana}&&${Me.Gem[${song4}]}) {
/call SongQueue "${song4}"
} else /if (${Me.GemTimer[${song5}]}==0&&${Me.Song[${song5}].Duration}<4000&&${Me.CurrentMana}>${Spell[${song5}].Mana}&&${Me.Gem[${song5}]}) {
/call SongQueue "${song5}"
}
/return
|----------------------------------------------------------------------------
| SUB: DowntimeSongs
|----------------------------------------------------------------------------
Sub DowntimeSongs
|Out of Combat
/if (!${Spell[${Me.Aura[1]}].ID} && !${Me.Moving} && !${Me.Invis} && !${Me.Sitting} && ${Me.State.NotEqual[FEIGN]}&&${castready}==0&&!${Me.Combat}&&${Me.XTarget}==0&&${Me.Gem[${aurasong}]}) {
/call SongQueue "${aurasong}"
} else /if (${Me.PctMana}>80&&${Group}&&${Me.GemTimer[${regensong}]}==0&&!${Me.Invis}&& !${Me.Sitting}&&${castready}==0&&!${Me.Combat}&&${Me.XTarget}==0&&(${Spawn[group healer].PctMana}<80||${Spawn[group tank].PctMana}<80)&&${Me.Gem[${regensong}]}) {
/call SongQueue "${regensong}"
} else /if (${Select[${Me.Casting.ID},${Spell[${song1}].ID},${Spell[${song3}].ID},${Spell[${song4}].ID},${Spell[${song2}].ID},${Spell[${song5}].ID}]}>0&& !${Me.Invis}&&!${Me.Combat}&&${Me.XTarget}==0) {
/stopcast
} else /if (${Spell[Selo's Sonata].Stacks} &&!${Me.Buff[Selo's Sonata].ID}&& !${Me.Invis} && ${Me.AltAbilityReady[3704]} && ${Me.State.NotEqual[FEIGN]}) {
/squelch /alt act 3704
}
/return
|----------------------------------------------------------------------------
| SUB: SongQueue
|----------------------------------------------------------------------------
Sub SongQueue(string nextsong)
/if (${Me.Casting.ID}) /stopcast
/delay 10 !${Me.Casting.ID}
/cast ${Me.Gem[${nextsong}]}
/varset castready ${Math.Calc[(${Spell[${nextsong}].MyCastTime}/100)+5]}
/return
|----------------------------------------------------------------------------
| SUB: MemSongs
|----------------------------------------------------------------------------
Sub MemSongs(string memsong,int memgem)
/if (${Me.Casting.ID}) /stopcast
/delay 2s !${Me.Casting.ID}
/if (${spellmisc}<${memgem}) {
/echo Macro attempting memorize more songs than spell slots availiable. Ending.
/end
}
/echo Memorizing ${memsong}
/memspell ${memgem} "${memsong}"
/delay 25
/return
|----------------------------------------------------------------------------
| SUB: SetupSongs
|----------------------------------------------------------------------------
Sub SetupSongs(string memsong,int memgem)
|---SONG 1
/if (${Me.Level}>=108 && ${Me.Book[${Spell[Kluzen's Spry Sonata].RankName}]} && !${FindItem[Darkened Breath of Harmony].ID}) {
/varset song1 ${Spell[Kluzen's Spry Sonata].RankName}
} else /if (${Me.Level}>=98 && ${Me.Book[${Spell[Doben's Spry Sonata].RankName}]} && !${FindItem[Darkened Breath of Harmony].ID}) {
/varset song1 ${Spell[Doben's Spry Sonata].RankName}
} else /if (${Me.Level}>=105 && ${Me.Book[${Spell[Arcane Melody].RankName}]}) {
/varset song1 ${Spell[Arcane Melody].RankName}
} else /if (${Me.Level}>=93 && ${Me.Book[${Spell[Terasal's Spry Sonata].RankName}]}) {
/varset song1 ${Spell[Terasal's Spry Sonata].RankName}
} else /if (${Me.Level}>=88 && ${Me.Book[${Spell[Sionachie's Spry Sonata].RankName}]}) {
/varset song1 ${Spell[Sionachie's Spry Sonata].RankName}
} else /if (${Me.Level}>=83 && ${Me.Book[${Spell[Dance of the Dragorn].RankName}]}) {
/varset song1 ${Spell[Dance of the Dragorn].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${song1}]}&&${Me.Book[${song1}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${song1}" ${spellgem}
/if (${Me.Book[${song1}]}) /varcalc spellgem ${spellgem}+1
|---SONG 2
/if (${Me.Level}>=109 && ${Me.Book[${Spell[War March of Dekloaz].RankName}]}) {
/varset song2 ${Spell[War March of Dekloaz].RankName}
} else /if (${Me.Level}>=104 && ${Me.Book[${Spell[War March of Jocelyn].RankName}]}) {
/varset song2 ${Spell[War March of Jocelyn].RankName}
} else /if (${Me.Level}>=99 && ${Me.Book[${Spell[War March of Protan].RankName}]}) {
/varset song2 ${Spell[War March of Protan].RankName}
} else /if (${Me.Level}>=94 && ${Me.Book[${Spell[War March of Illdaera].RankName}]}) {
/varset song2 ${Spell[War March of Illdaera].RankName}
} else /if (${Me.Level}>=89 && ${Me.Book[${Spell[War March of Dagda].RankName}]}) {
/varset song2 ${Spell[War March of Dagda].RankName}
} else /if (${Me.Level}>=84 && ${Me.Book[${Spell[War March of Brekt].RankName}]}) {
/varset song2 ${Spell[War March of Brekt].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${song2}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${song2}" ${spellgem}
/if (${Me.Book[${song2}]}) /varcalc spellgem ${spellgem}+1
|---SONG 3
/if (${Me.Level}>=106 && ${Me.Book[${Spell[Aria of Begalru].RankName}]}) {
/varset song3 ${Spell[Aria of Begalru].RankName}
} else /if (${Me.Level}>=101 && ${Me.Book[${Spell[Aria of Maetanrus].RankName}]}) {
/varset song3 ${Spell[Aria of Maetanrus].RankName}
} else /if (${Me.Level}>=96 && ${Me.Book[${Spell[Aria of Va'Ker].RankName}]}) {
/varset song3 ${Spell[Aria of Va'Ker].RankName}
} else /if (${Me.Level}>=91 && ${Me.Book[${Spell[Aria of the Orator].RankName}]}) {
/varset song3 ${Spell[Aria of the Orator].RankName}
} else /if (${Me.Level}>=86 && ${Me.Book[${Spell[Aria of the Composer].RankName}]}) {
/varset song3 ${Spell[Aria of the Composer].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${song3}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${song3}" ${spellgem}
/if (${Me.Book[${song3}]}) /varcalc spellgem ${spellgem}+1
|---SONG 4
/if (${Me.Level}>=109 && ${Me.Book[${Spell[Travenro's Song of Suffering].RankName}]}) {
/varset song4 ${Spell[Travenro's Song of Suffering].RankName}
} else /if (${Me.Level}>=104 && ${Me.Book[${Spell[Fjilnauk's Song of Suffering].RankName}]}) {
/varset song4 ${Spell[Fjilnauk's Song of Suffering].RankName}
} else /if (${Me.Level}>=99 && ${Me.Book[${Spell[Kaficus' Song of Suffering].RankName}]}) {
/varset song4 ${Spell[Kaficus' Song of Suffering].RankName}
} else /if (${Me.Level}>=94 && ${Me.Book[${Spell[Hykast's Song of Suffering].RankName}]}) {
/varset song4 ${Spell[Hykast's Song of Suffering].RankName}
} else /if (${Me.Level}>=89 && ${Me.Book[${Spell[Noira's Song of Suffering].RankName}]}) {
/varset song4 ${Spell[Noira's Song of Suffering].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${song4}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${song4}" ${spellgem}
/if (${Me.Book[${song4}]}) /varcalc spellgem ${spellgem}+1
|---SONG 5
/if (${Me.Level}>=106 && ${Me.Book[${Spell[Pulse of Xigam].RankName}]}) {
/varset song5 ${Spell[Pulse of Xigam].RankName}
} else /if (${Me.Level}>=101 && ${Me.Book[${Spell[Pulse of Sionachie].RankName}]}) {
/varset song5 ${Spell[Pulse of Sionachie].RankName}
} else /if (${Me.Level}>=96 && ${Me.Book[${Spell[Pulse of Salarra].RankName}]}) {
/varset song5 ${Spell[Pulse of Salarra].RankName}
} else /if (${Me.Level}>=91 && ${Me.Book[${Spell[Pulse of Lunanyn].RankName}]}) {
/varset song5 ${Spell[Pulse of Lunanyn].RankName}
} else /if (${Me.Level}>=86 && ${Me.Book[${Spell[Pulse of Renewal].RankName}]}) {
/varset song5 ${Spell[Pulse of Renewal].RankName}
} else /if (${Me.Level}>=82 && ${Me.Book[${Spell[Pulse of Rodcet].RankName}]}) {
/varset song5 ${Spell[Pulse of Rodcet].RankName}
} else /if (${Me.Level}>=77 && ${Me.Book[${Spell[Rhythm of Restoration].RankName}]}) {
/varset song5 ${Spell[Rhythm of Restoration].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${song5}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${song5}" ${spellgem}
/if (${Me.Book[${song5}]}) /varcalc spellgem ${spellgem}+1
|--Broken Mirror Song
/if (${Me.Level}>=101 && ${Me.Book[${Spell[Dichotomic Psalm].RankName}]}) {
/varset bmsong ${Spell[Dichotomic Psalm].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${bmsong}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${bmsong}" ${spellgem}
/if (${Me.Book[${bmsong}]}) /varcalc spellgem ${spellgem}+1
|---AOE Mez
/if (${Me.Level}>=110 && ${Me.Book[${Spell[Wave of Somnolence].RankName}]}) {
/varset aoemezsong ${Spell[Wave of Somnolence].RankName}
} else /if (${Me.Level}>=105 && ${Me.Book[${Spell[Wave of Torpor].RankName}]}) {
/varset aoemezsong ${Spell[Wave of Torpor].RankName}
} else /if (${Me.Level}>=100 && ${Me.Book[${Spell[Wave of Quietude].RankName}]}) {
/varset aoemezsong ${Spell[Wave of Quietude].RankName}
} else /if (${Me.Level}>=95 && ${Me.Book[${Spell[Wave of the Conductor].RankName}]}) {
/varset aoemezsong ${Spell[Wave of the Conductor].RankName}
} else /if (${Me.Level}>=90 && ${Me.Book[${Spell[Wave of Dreams].RankName}]}) {
/varset aoemezsong ${Spell[Wave of Dreams].RankName}
} else /if (${Me.Level}>=85 && ${Me.Book[${Spell[Wave of Slumber].RankName}]}) {
/varset aoemezsong ${Spell[Wave of Slumber].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${aoemezsong}]}&&${Me.Book[${aoemezsong}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${aoemezsong}" ${spellgem}
/if (${Me.Book[${aoemezsong}]}) /varcalc spellgem ${spellgem}+1
|---Aura Song
|/if (${Me.Level}>=110 && ${Me.Book[${Spell[Aura of Begalru].RankName}]}) {
| /varset aurasong ${Spell[Aura of Begalru].RankName}
|} else
/if (${Me.Level}>=105 && ${Me.Book[${Spell[Aura of Maetanrus].RankName}]}) {
/varset aurasong ${Spell[Aura of Maetanrus].RankName}
} else /if (${Me.Level}>=100 && ${Me.Book[${Spell[Aura of Va'Ker].RankName}]}) {
/varset aurasong ${Spell[Aura of Va'Ker].RankName}
} else /if (${Me.Level}>=95 && ${Me.Book[${Spell[Aura of the Orator].RankName}]}) {
/varset aurasong ${Spell[Aura of the Orator].RankName}
} else /if (${Me.Level}>=90 && ${Me.Book[${Spell[Aura of the Composer].RankName}]}) {
/varset aurasong ${Spell[Aura of the Composer].RankName}
} else /if (${Me.Level}>=85 && ${Me.Book[${Spell[Aura of the Poet].RankName}]}) {
/varset aurasong ${Spell[Aura of the Poet].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${aurasong}]}&&${Me.Book[${aurasong}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${aurasong}" ${spellgem}
/if (${Me.Book[${aurasong}]}) /varcalc spellgem ${spellgem}+1
|--Slow Target
/if (${Me.Level}>=64 && ${Me.Book[${Spell[Requiem of Time].RankName}]}) {
/varset slowsong ${Spell[Requiem of Time].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${slowsong}]}&&${Me.Book[${slowsong}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${slowsong}" ${spellgem}
/if (${Me.Book[${slowsong}]}) /varcalc spellgem ${spellgem}+1
|---AE Slow Song
/if (${Me.Level}>=109 && ${Me.Book[${Spell[Dekloaz's Melodic Binding].RankName}]}) {
/varset aeslowsong ${Spell[Dekloaz's Melodic Binding].RankName}
} else /if (${Me.Level}>=99 && ${Me.Book[${Spell[Protan's Melodic Binding].RankName}]}) {
/varset aeslowsong ${Spell[Protan's Melodic Binding].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${aeslowsong}]}&&${Me.Book[${aeslowsong}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${aeslowsong}" ${spellgem}
/if (${Me.Book[${aeslowsong}]}) /varcalc spellgem ${spellgem}+1
|---Regen Song
/if (${Me.Level}>=109 && ${Me.Book[${Spell[Jembel's Lively Crescendo].RankName}]}) {
/varset regensong ${Spell[Jembel's Lively Crescendo].RankName}
} else /if (${Me.Level}>=104 && ${Me.Book[${Spell[Silisia's Lively Crescendo].RankName}]}) {
/varset regensong ${Spell[Silisia's Lively Crescendo].RankName}
} else /if (${Me.Level}>=100 && ${Me.Book[${Spell[Motlak's Lively Crescendo].RankName}]}) {
/varset regensong ${Spell[Motlak's Lively Crescendo].RankName}
} else /if (${Me.Level}>=95 && ${Me.Book[${Spell[Kolain's Lively Crescendo].RankName}]}) {
/varset regensong ${Spell[Kolain's Lively Crescendo].RankName}
} else /if (${Me.Level}>=90 && ${Me.Book[${Spell[Lyssa's Lively Crescendo].RankName}]}) {
/varset regensong ${Spell[Lyssa's Lively Crescendo].RankName}
} else /if (${Me.Level}>=85 && ${Me.Book[${Spell[Gruber's Lively Crescendo].RankName}]}) {
/varset regensong ${Spell[Gruber's Lively Crescendo].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${regensong}]}&&${Me.Book[${regensong}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${regensong}" ${spellgem}
/if (${Me.Book[${regensong}]}) /varcalc spellgem ${spellgem}+1
/return
|----------------------------------------------------------------------------
| SUB: INIChanges
|----------------------------------------------------------------------------
Sub INIChanges
/varset changetoini 0
/call SetIni General FollowToonName string "${FollowToonName}"
/call SetIni General UseFellowship int ${UseFellowship}
/call SetIni General UseMelee int ${UseMelee}
/call SetIni General InstantRelease int ${InstantRelease}
/call SetIni General AutoCampHold int ${AutoCampHold}
/call SetIni General BringYourOwnSpells int ${BringYourOwnSpells}
/return
No. I don't have the skill for that
|-Declare spell variables
/if (${Me.AltAbility[Mnemonic Retention].Rank}==4) {
/declare spellmisc int outer 12
/declare spellslots int outer 11
} else /if (${Me.AltAbility[Mnemonic Retention].Rank}==3) {
/declare spellmisc int outer 11
/declare spellslots int outer 10
} else /if (${Me.AltAbility[Mnemonic Retention].Rank}==2) {
/declare spellmisc int outer 10
/declare spellslots int outer 9
} else /if (${Me.AltAbility[Mnemonic Retention].Rank}==1) {
/declare spellmisc int outer 9
/declare spellslots int outer 8
|----------------------------------------------------------------------------
| SUB: SetupSongs
|----------------------------------------------------------------------------
Sub SetupSongs(string memsong,int memgem)
|---SONG 1
/if (${Me.Level}>=108 && ${Me.Book[${Spell[Kluzen's Spry Sonata].RankName}]} && !${FindItem[Darkened Breath of Harmony].ID}) {
/varset song1 ${Spell[Kluzen's Spry Sonata].RankName}
} else /if (${Me.Level}>=98 && ${Me.Book[${Spell[Doben's Spry Sonata].RankName}]} && !${FindItem[Darkened Breath of Harmony].ID}) {
/varset song1 ${Spell[Doben's Spry Sonata].RankName}
} else /if (${Me.Level}>=105 && ${Me.Book[${Spell[Arcane Melody].RankName}]}) {
/varset song1 ${Spell[Arcane Melody].RankName}
} else /if (${Me.Level}>=93 && ${Me.Book[${Spell[Terasal's Spry Sonata].RankName}]}) {
/varset song1 ${Spell[Terasal's Spry Sonata].RankName}
} else /if (${Me.Level}>=88 && ${Me.Book[${Spell[Sionachie's Spry Sonata].RankName}]}) {
/varset song1 ${Spell[Sionachie's Spry Sonata].RankName}
} else /if (${Me.Level}>=83 && ${Me.Book[${Spell[Dance of the Dragorn].RankName}]}) {
/varset song1 ${Spell[Dance of the Dragorn].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${song1}]}&&${Me.Book[${song1}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${song1}" ${spellgem}
/if (${Me.Book[${song1}]}) /varcalc spellgem ${spellgem}+1
|---SONG 2
/if (${Me.Level}>=109 && ${Me.Book[${Spell[War March of Dekloaz].RankName}]}) {
/varset song2 ${Spell[War March of Dekloaz].RankName}
} else /if (${Me.Level}>=104 && ${Me.Book[${Spell[War March of Jocelyn].RankName}]}) {
/varset song2 ${Spell[War March of Jocelyn].RankName}
} else /if (${Me.Level}>=99 && ${Me.Book[${Spell[War March of Protan].RankName}]}) {
/varset song2 ${Spell[War March of Protan].RankName}
} else /if (${Me.Level}>=94 && ${Me.Book[${Spell[War March of Illdaera].RankName}]}) {
/varset song2 ${Spell[War March of Illdaera].RankName}
} else /if (${Me.Level}>=89 && ${Me.Book[${Spell[War March of Dagda].RankName}]}) {
/varset song2 ${Spell[War March of Dagda].RankName}
} else /if (${Me.Level}>=84 && ${Me.Book[${Spell[War March of Brekt].RankName}]}) {
/varset song2 ${Spell[War March of Brekt].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${song2}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${song2}" ${spellgem}
/if (${Me.Book[${song2}]}) /varcalc spellgem ${spellgem}+1
|---SONG 3
/if (${Me.Level}>=106 && ${Me.Book[${Spell[Aria of Begalru].RankName}]}) {
/varset song3 ${Spell[Aria of Begalru].RankName}
} else /if (${Me.Level}>=101 && ${Me.Book[${Spell[Aria of Maetanrus].RankName}]}) {
/varset song3 ${Spell[Aria of Maetanrus].RankName}
} else /if (${Me.Level}>=96 && ${Me.Book[${Spell[Aria of Va'Ker].RankName}]}) {
/varset song3 ${Spell[Aria of Va'Ker].RankName}
} else /if (${Me.Level}>=91 && ${Me.Book[${Spell[Aria of the Orator].RankName}]}) {
/varset song3 ${Spell[Aria of the Orator].RankName}
} else /if (${Me.Level}>=86 && ${Me.Book[${Spell[Aria of the Composer].RankName}]}) {
/varset song3 ${Spell[Aria of the Composer].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${song3}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${song3}" ${spellgem}
/if (${Me.Book[${song3}]}) /varcalc spellgem ${spellgem}+1
|---SONG 4
/if (${Me.Level}>=109 && ${Me.Book[${Spell[Travenro's Song of Suffering].RankName}]}) {
/varset song4 ${Spell[Travenro's Song of Suffering].RankName}
} else /if (${Me.Level}>=104 && ${Me.Book[${Spell[Fjilnauk's Song of Suffering].RankName}]}) {
/varset song4 ${Spell[Fjilnauk's Song of Suffering].RankName}
} else /if (${Me.Level}>=99 && ${Me.Book[${Spell[Kaficus' Song of Suffering].RankName}]}) {
/varset song4 ${Spell[Kaficus' Song of Suffering].RankName}
} else /if (${Me.Level}>=94 && ${Me.Book[${Spell[Hykast's Song of Suffering].RankName}]}) {
/varset song4 ${Spell[Hykast's Song of Suffering].RankName}
} else /if (${Me.Level}>=89 && ${Me.Book[${Spell[Noira's Song of Suffering].RankName}]}) {
/varset song4 ${Spell[Noira's Song of Suffering].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${song4}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${song4}" ${spellgem}
/if (${Me.Book[${song4}]}) /varcalc spellgem ${spellgem}+1
|---SONG 5
/if (${Me.Level}>=106 && ${Me.Book[${Spell[Pulse of Xigam].RankName}]}) {
/varset song5 ${Spell[Pulse of Xigam].RankName}
} else /if (${Me.Level}>=101 && ${Me.Book[${Spell[Pulse of Sionachie].RankName}]}) {
/varset song5 ${Spell[Pulse of Sionachie].RankName}
} else /if (${Me.Level}>=96 && ${Me.Book[${Spell[Pulse of Salarra].RankName}]}) {
/varset song5 ${Spell[Pulse of Salarra].RankName}
} else /if (${Me.Level}>=91 && ${Me.Book[${Spell[Pulse of Lunanyn].RankName}]}) {
/varset song5 ${Spell[Pulse of Lunanyn].RankName}
} else /if (${Me.Level}>=86 && ${Me.Book[${Spell[Pulse of Renewal].RankName}]}) {
/varset song5 ${Spell[Pulse of Renewal].RankName}
} else /if (${Me.Level}>=82 && ${Me.Book[${Spell[Pulse of Rodcet].RankName}]}) {
/varset song5 ${Spell[Pulse of Rodcet].RankName}
} else /if (${Me.Level}>=77 && ${Me.Book[${Spell[Rhythm of Restoration].RankName}]}) {
/varset song5 ${Spell[Rhythm of Restoration].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${song5}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${song5}" ${spellgem}
/if (${Me.Book[${song5}]}) /varcalc spellgem ${spellgem}+1
|--Broken Mirror Song
/if (${Me.Level}>=101 && ${Me.Book[${Spell[Dichotomic Psalm].RankName}]}) {
/varset bmsong ${Spell[Dichotomic Psalm].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${bmsong}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${bmsong}" ${spellgem}
/if (${Me.Book[${bmsong}]}) /varcalc spellgem ${spellgem}+1
|---AOE Mez
/if (${Me.Level}>=110 && ${Me.Book[${Spell[Wave of Somnolence].RankName}]}) {
/varset aoemezsong ${Spell[Wave of Somnolence].RankName}
} else /if (${Me.Level}>=105 && ${Me.Book[${Spell[Wave of Torpor].RankName}]}) {
/varset aoemezsong ${Spell[Wave of Torpor].RankName}
} else /if (${Me.Level}>=100 && ${Me.Book[${Spell[Wave of Quietude].RankName}]}) {
/varset aoemezsong ${Spell[Wave of Quietude].RankName}
} else /if (${Me.Level}>=95 && ${Me.Book[${Spell[Wave of the Conductor].RankName}]}) {
/varset aoemezsong ${Spell[Wave of the Conductor].RankName}
} else /if (${Me.Level}>=90 && ${Me.Book[${Spell[Wave of Dreams].RankName}]}) {
/varset aoemezsong ${Spell[Wave of Dreams].RankName}
} else /if (${Me.Level}>=85 && ${Me.Book[${Spell[Wave of Slumber].RankName}]}) {
/varset aoemezsong ${Spell[Wave of Slumber].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${aoemezsong}]}&&${Me.Book[${aoemezsong}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${aoemezsong}" ${spellgem}
/if (${Me.Book[${aoemezsong}]}) /varcalc spellgem ${spellgem}+1
|---Aura Song
|/if (${Me.Level}>=110 && ${Me.Book[${Spell[Aura of Begalru].RankName}]}) {
| /varset aurasong ${Spell[Aura of Begalru].RankName}
|} else
/if (${Me.Level}>=105 && ${Me.Book[${Spell[Aura of Maetanrus].RankName}]}) {
/varset aurasong ${Spell[Aura of Maetanrus].RankName}
} else /if (${Me.Level}>=100 && ${Me.Book[${Spell[Aura of Va'Ker].RankName}]}) {
/varset aurasong ${Spell[Aura of Va'Ker].RankName}
} else /if (${Me.Level}>=95 && ${Me.Book[${Spell[Aura of the Orator].RankName}]}) {
/varset aurasong ${Spell[Aura of the Orator].RankName}
} else /if (${Me.Level}>=90 && ${Me.Book[${Spell[Aura of the Composer].RankName}]}) {
/varset aurasong ${Spell[Aura of the Composer].RankName}
} else /if (${Me.Level}>=85 && ${Me.Book[${Spell[Aura of the Poet].RankName}]}) {
/varset aurasong ${Spell[Aura of the Poet].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${aurasong}]}&&${Me.Book[${aurasong}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${aurasong}" ${spellgem}
/if (${Me.Book[${aurasong}]}) /varcalc spellgem ${spellgem}+1
|--Slow Target
/if (${Me.Level}>=64 && ${Me.Book[${Spell[Requiem of Time].RankName}]}) {
/varset slowsong ${Spell[Requiem of Time].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${slowsong}]}&&${Me.Book[${slowsong}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${slowsong}" ${spellgem}
/if (${Me.Book[${slowsong}]}) /varcalc spellgem ${spellgem}+1
|---AE Slow Song
/if (${Me.Level}>=109 && ${Me.Book[${Spell[Dekloaz's Melodic Binding].RankName}]}) {
/varset aeslowsong ${Spell[Dekloaz's Melodic Binding].RankName}
} else /if (${Me.Level}>=99 && ${Me.Book[${Spell[Protan's Melodic Binding].RankName}]}) {
/varset aeslowsong ${Spell[Protan's Melodic Binding].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${aeslowsong}]}&&${Me.Book[${aeslowsong}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${aeslowsong}" ${spellgem}
/if (${Me.Book[${aeslowsong}]}) /varcalc spellgem ${spellgem}+1
|---Regen Song
/if (${Me.Level}>=109 && ${Me.Book[${Spell[Jembel's Lively Crescendo].RankName}]}) {
/varset regensong ${Spell[Jembel's Lively Crescendo].RankName}
} else /if (${Me.Level}>=104 && ${Me.Book[${Spell[Silisia's Lively Crescendo].RankName}]}) {
/varset regensong ${Spell[Silisia's Lively Crescendo].RankName}
} else /if (${Me.Level}>=100 && ${Me.Book[${Spell[Motlak's Lively Crescendo].RankName}]}) {
/varset regensong ${Spell[Motlak's Lively Crescendo].RankName}
} else /if (${Me.Level}>=95 && ${Me.Book[${Spell[Kolain's Lively Crescendo].RankName}]}) {
/varset regensong ${Spell[Kolain's Lively Crescendo].RankName}
} else /if (${Me.Level}>=90 && ${Me.Book[${Spell[Lyssa's Lively Crescendo].RankName}]}) {
/varset regensong ${Spell[Lyssa's Lively Crescendo].RankName}
} else /if (${Me.Level}>=85 && ${Me.Book[${Spell[Gruber's Lively Crescendo].RankName}]}) {
/varset regensong ${Spell[Gruber's Lively Crescendo].RankName}
}
/if (!${Me.Gem[${spellgem}].Name.Equal[${regensong}]}&&${Me.Book[${regensong}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${regensong}" ${spellgem}
/if (${Me.Book[${regensong}]}) /varcalc spellgem ${spellgem}+1
/return
It's the extra spellgem
- - - Updated - - -
Here's the bard one too, for those that need it:
Rich (BB code):|------------------------------| |---AUTO-BARD by Noobhaxor-----| |--------Version 2.4.2 --------| |-----September Update --------| #turbo 80 #Event Buff "Your #1# spell has worn off of #*#." #include autosubs.inc Sub Main /doevents flush /declare MacroName string outer AutoBard /declare IniFileName string outer ${MacroName}_${Me.CleanName}.ini |-Declare spell variables /if (${Me.AltAbility[Mnemonic Retention].Rank}==4) { /declare spellmisc int outer 12 /declare spellslots int outer 11 } else /if (${Me.AltAbility[Mnemonic Retention].Rank}==3) { /declare spellmisc int outer 11 /declare spellslots int outer 10 } else /if (${Me.AltAbility[Mnemonic Retention].Rank}==2) { /declare spellmisc int outer 10 /declare spellslots int outer 9 } else /if (${Me.AltAbility[Mnemonic Retention].Rank}==1) { /declare spellmisc int outer 9 /declare spellslots int outer 8 } else { /declare spellmisc int outer 8 /declare spellslots int outer 7 } /declare spellgem int outer 1 |Declare Songs /declare aurasong string outer NULL /declare regensong string outer NULL /declare song1 string outer NULL /declare song2 string outer NULL /declare song3 string outer NULL /declare song4 string outer NULL /declare song5 string outer NULL /declare slowsong string outer NULL /declare bmsong string outer NULL /declare aoemezsong string outer NULL /declare aeslowsong string outer NULL /if (!${Defined[castready]}) /declare castready timer outer 0 /declare bmsongtimer timer outer 0 /declare aeslowtimer timer outer 0 /declare epicsword string outer NULL /declare darksword string outer NULL /if (${FindItem[Darkened Breath of Harmony].ID}) { /varset darksword Darkened Breath of Harmony } /if (${FindItem[Prismatic Dragon Blade].ID}) { /varset epicsword Prismatic Dragon Blade } else /if (${FindItem[Blade of Vesagran].ID}) { /varset epicsword Blade of Vesagran } /call VarSetup |-Config Options /call LoadIni General FollowToonName string NULL /call LoadIni General UseFellowship int 0 /call LoadIni General UseMelee int 1 /call LoadIni General UseSlow int 1 /call LoadIni General UseMez int 1 /call LoadIni General InstantRelease int 0 /call LoadIni General AutoCampHold int 1 /call LoadIni General AutoAssistAt int 98 /call LoadIni General BringYourOwnSpells int 0 /noparse /alias /byos /multiline ; /varset changetoini 1 ; /docommand ${If[${BringYourOwnSpells}==1,/varset BringYourOwnSpells 0,/varset BringYourOwnSpells 1]} ; /echo Toggling Bring Your Own Spells to ${If[${BringYourOwnSpells}==0,OFF,ON]} /call AliasSetup /call AutoVersionCheck 5 /call SetupSongs |---------------------------------------------------------------------------- | MainLoop |---------------------------------------------------------------------------- :mainloop /if (${changetoini}==1) /call INIChanges /if (${Me.Zoning}) /call Zoning /if (${Me.Hovering}) /call DeathSub /if (!${Me.XTarget[1].ID}&&!${Me.Invis}) /call DowntimeSongs /if (${Me.XTarget[1].ID}) /call FindTarget /if (${Me.XTarget[1].ID}&&${Me.Combat}&&${UseMelee}==1) /call EngageTarget /if (${Me.XTarget}>1&&${UseMez}==1) /call AESongs /if (${Me.XTarget[1].ID} && ${castready}==0) /call CombatSongs /if (${Me.XTarget[1].ID} && (${Me.XTarget}>3 || ${Target.Named}) && ${Target.ID}==${autotargetid}) /call BardBurn /if (!${Me.XTarget[1].ID}) /call AutoCampCheck /call SitCheck /doevents /goto :mainloop /return |---------------------------------------------------------------------------- | SUB: BardBurn |---------------------------------------------------------------------------- Sub BardBurn /if (${FindItem[${epicsword}].ID} && ${FindItem[${epicsword}].Timer}==0) /call ItemNow "${epicsword}" /if (${Me.AltAbilityReady[Quick Time]}) /call AANow 3702 |--Third Spire /if (${Me.AltAbilityReady[1422]}) /call AANow 1422 /if (${Me.AltAbilityReady[Funeral Dirge]}) /call AANow 777 | /if (${Me.AltAbilityReady[Bladed Song]}) /call AANow 669 /if (${Me.AltAbilityReady[Dance of Blades]}) /call AANow 359 /if (${Me.CombatAbilityReady[Thousand Blades]}) /call DiscNow "Thousand Blades" /return |---------------------------------------------------------------------------- | SUB: AESongs |---------------------------------------------------------------------------- Sub AESongs /if (${Me.XTarget}>1 && ${SpawnCount[NPC radius 30]}>1 &&${Me.GemTimer[${aoemezsong}]}==0&& ${castready}==0&&${Me.CurrentMana}>${Spell[${aoemezsong}].Mana}&&${Me.Gem[${aoemezsong}]}) { /call SongQueue "${aoemezsong}" } /return |---------------------------------------------------------------------------- | SUB: CombatSongs |---------------------------------------------------------------------------- Sub CombatSongs |In Combat /if (${Me.CombatAbilityReady["Reflexive Rejoinder"]}&& ${Me.PctEndurance}>10 && ${Group.Member[${Spawn[group cleric].CleanName}].PctMana}<50 && ${Group.Member[${Spawn[group cleric].CleanName}].PctMana}>=1) { /docommand /doability "Reflexive Rejoinder" /delay 8 !${Me.CombatAbilityReady["Reflexive Rejoinder"]} } /if (${Target.Type.Equal[NPC]} && ${Target.Distance}<150&&${Me.GemTimer[${slowsong}]}==0 && !${Spell[${Target.Buff[${slowsong}]}].ID}&&${UseSlow}&&${Me.Gem[${slowsong}]}) { /call SongQueue "${slowsong}" } else /if (${Me.GemTimer[${bmsong}]}==0&&${bmsongtimer}==0&&${Me.Gem[${bmsong}]}) { /call SongQueue "${bmsong}" /varset bmsongtimer 1m } else /if (${FindItem[${darksword}].ID} && ${FindItem[${darksword}].Timer}==0 && ${Me.Song[Doben's Spry Sonata Rk. II].Duration}<4000) { /call ItemNow "${darksword}" } else /if (${Me.GemTimer[${song1}]}==0&&${Me.Song[${song1}].Duration}<4000&&${Me.CurrentMana}>${Spell[${song1}].Mana}&&${Me.Gem[${song1}]}) { /call SongQueue "${song1}" } else /if (${Me.GemTimer[${song2}]}==0&&${Me.Song[${song2}].Duration}<4000&&${Me.CurrentMana}>${Spell[${song2}].Mana}&&${Me.Gem[${song2}]}) { /call SongQueue "${song2}" } else /if (${Me.GemTimer[${song3}]}==0&&${Me.Song[${song3}].Duration}<4000&&${Me.CurrentMana}>${Spell[${song3}].Mana}&&${Me.Gem[${song3}]}) { /call SongQueue "${song3}" } else /if (${Me.GemTimer[${song4}]}==0&&${Me.Song[${song4}].Duration}<4000&&${Me.CurrentMana}>${Spell[${song4}].Mana}&&${Me.Gem[${song4}]}) { /call SongQueue "${song4}" } else /if (${Me.GemTimer[${song5}]}==0&&${Me.Song[${song5}].Duration}<4000&&${Me.CurrentMana}>${Spell[${song5}].Mana}&&${Me.Gem[${song5}]}) { /call SongQueue "${song5}" } /return |---------------------------------------------------------------------------- | SUB: DowntimeSongs |---------------------------------------------------------------------------- Sub DowntimeSongs |Out of Combat /if (!${Spell[${Me.Aura[1]}].ID} && !${Me.Moving} && !${Me.Invis} && !${Me.Sitting} && ${Me.State.NotEqual[FEIGN]}&&${castready}==0&&!${Me.Combat}&&${Me.XTarget}==0&&${Me.Gem[${aurasong}]}) { /call SongQueue "${aurasong}" } else /if (${Me.PctMana}>80&&${Group}&&${Me.GemTimer[${regensong}]}==0&&!${Me.Invis}&& !${Me.Sitting}&&${castready}==0&&!${Me.Combat}&&${Me.XTarget}==0&&(${Spawn[group healer].PctMana}<80||${Spawn[group tank].PctMana}<80)&&${Me.Gem[${regensong}]}) { /call SongQueue "${regensong}" } else /if (${Select[${Me.Casting.ID},${Spell[${song1}].ID},${Spell[${song3}].ID},${Spell[${song4}].ID},${Spell[${song2}].ID},${Spell[${song5}].ID}]}>0&& !${Me.Invis}&&!${Me.Combat}&&${Me.XTarget}==0) { /stopcast } else /if (${Spell[Selo's Sonata].Stacks} &&!${Me.Buff[Selo's Sonata].ID}&& !${Me.Invis} && ${Me.AltAbilityReady[3704]} && ${Me.State.NotEqual[FEIGN]}) { /squelch /alt act 3704 } /return |---------------------------------------------------------------------------- | SUB: SongQueue |---------------------------------------------------------------------------- Sub SongQueue(string nextsong) /if (${Me.Casting.ID}) /stopcast /delay 10 !${Me.Casting.ID} /cast ${Me.Gem[${nextsong}]} /varset castready ${Math.Calc[(${Spell[${nextsong}].MyCastTime}/100)+5]} /return |---------------------------------------------------------------------------- | SUB: MemSongs |---------------------------------------------------------------------------- Sub MemSongs(string memsong,int memgem) /if (${Me.Casting.ID}) /stopcast /delay 2s !${Me.Casting.ID} /if (${spellmisc}<${memgem}) { /echo Macro attempting memorize more songs than spell slots availiable. Ending. /end } /echo Memorizing ${memsong} /memspell ${memgem} "${memsong}" /delay 25 /return |---------------------------------------------------------------------------- | SUB: SetupSongs |---------------------------------------------------------------------------- Sub SetupSongs(string memsong,int memgem) |---SONG 1 /if (${Me.Level}>=108 && ${Me.Book[${Spell[Kluzen's Spry Sonata].RankName}]} && !${FindItem[Darkened Breath of Harmony].ID}) { /varset song1 ${Spell[Kluzen's Spry Sonata].RankName} } else /if (${Me.Level}>=98 && ${Me.Book[${Spell[Doben's Spry Sonata].RankName}]} && !${FindItem[Darkened Breath of Harmony].ID}) { /varset song1 ${Spell[Doben's Spry Sonata].RankName} } else /if (${Me.Level}>=105 && ${Me.Book[${Spell[Arcane Melody].RankName}]}) { /varset song1 ${Spell[Arcane Melody].RankName} } else /if (${Me.Level}>=93 && ${Me.Book[${Spell[Terasal's Spry Sonata].RankName}]}) { /varset song1 ${Spell[Terasal's Spry Sonata].RankName} } else /if (${Me.Level}>=88 && ${Me.Book[${Spell[Sionachie's Spry Sonata].RankName}]}) { /varset song1 ${Spell[Sionachie's Spry Sonata].RankName} } else /if (${Me.Level}>=83 && ${Me.Book[${Spell[Dance of the Dragorn].RankName}]}) { /varset song1 ${Spell[Dance of the Dragorn].RankName} } /if (!${Me.Gem[${spellgem}].Name.Equal[${song1}]}&&${Me.Book[${song1}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${song1}" ${spellgem} /if (${Me.Book[${song1}]}) /varcalc spellgem ${spellgem}+1 |---SONG 2 /if (${Me.Level}>=109 && ${Me.Book[${Spell[War March of Dekloaz].RankName}]}) { /varset song2 ${Spell[War March of Dekloaz].RankName} } else /if (${Me.Level}>=104 && ${Me.Book[${Spell[War March of Jocelyn].RankName}]}) { /varset song2 ${Spell[War March of Jocelyn].RankName} } else /if (${Me.Level}>=99 && ${Me.Book[${Spell[War March of Protan].RankName}]}) { /varset song2 ${Spell[War March of Protan].RankName} } else /if (${Me.Level}>=94 && ${Me.Book[${Spell[War March of Illdaera].RankName}]}) { /varset song2 ${Spell[War March of Illdaera].RankName} } else /if (${Me.Level}>=89 && ${Me.Book[${Spell[War March of Dagda].RankName}]}) { /varset song2 ${Spell[War March of Dagda].RankName} } else /if (${Me.Level}>=84 && ${Me.Book[${Spell[War March of Brekt].RankName}]}) { /varset song2 ${Spell[War March of Brekt].RankName} } /if (!${Me.Gem[${spellgem}].Name.Equal[${song2}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${song2}" ${spellgem} /if (${Me.Book[${song2}]}) /varcalc spellgem ${spellgem}+1 |---SONG 3 /if (${Me.Level}>=106 && ${Me.Book[${Spell[Aria of Begalru].RankName}]}) { /varset song3 ${Spell[Aria of Begalru].RankName} } else /if (${Me.Level}>=101 && ${Me.Book[${Spell[Aria of Maetanrus].RankName}]}) { /varset song3 ${Spell[Aria of Maetanrus].RankName} } else /if (${Me.Level}>=96 && ${Me.Book[${Spell[Aria of Va'Ker].RankName}]}) { /varset song3 ${Spell[Aria of Va'Ker].RankName} } else /if (${Me.Level}>=91 && ${Me.Book[${Spell[Aria of the Orator].RankName}]}) { /varset song3 ${Spell[Aria of the Orator].RankName} } else /if (${Me.Level}>=86 && ${Me.Book[${Spell[Aria of the Composer].RankName}]}) { /varset song3 ${Spell[Aria of the Composer].RankName} } /if (!${Me.Gem[${spellgem}].Name.Equal[${song3}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${song3}" ${spellgem} /if (${Me.Book[${song3}]}) /varcalc spellgem ${spellgem}+1 |---SONG 4 /if (${Me.Level}>=109 && ${Me.Book[${Spell[Travenro's Song of Suffering].RankName}]}) { /varset song4 ${Spell[Travenro's Song of Suffering].RankName} } else /if (${Me.Level}>=104 && ${Me.Book[${Spell[Fjilnauk's Song of Suffering].RankName}]}) { /varset song4 ${Spell[Fjilnauk's Song of Suffering].RankName} } else /if (${Me.Level}>=99 && ${Me.Book[${Spell[Kaficus' Song of Suffering].RankName}]}) { /varset song4 ${Spell[Kaficus' Song of Suffering].RankName} } else /if (${Me.Level}>=94 && ${Me.Book[${Spell[Hykast's Song of Suffering].RankName}]}) { /varset song4 ${Spell[Hykast's Song of Suffering].RankName} } else /if (${Me.Level}>=89 && ${Me.Book[${Spell[Noira's Song of Suffering].RankName}]}) { /varset song4 ${Spell[Noira's Song of Suffering].RankName} } /if (!${Me.Gem[${spellgem}].Name.Equal[${song4}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${song4}" ${spellgem} /if (${Me.Book[${song4}]}) /varcalc spellgem ${spellgem}+1 |---SONG 5 /if (${Me.Level}>=106 && ${Me.Book[${Spell[Pulse of Xigam].RankName}]}) { /varset song5 ${Spell[Pulse of Xigam].RankName} } else /if (${Me.Level}>=101 && ${Me.Book[${Spell[Pulse of Sionachie].RankName}]}) { /varset song5 ${Spell[Pulse of Sionachie].RankName} } else /if (${Me.Level}>=96 && ${Me.Book[${Spell[Pulse of Salarra].RankName}]}) { /varset song5 ${Spell[Pulse of Salarra].RankName} } else /if (${Me.Level}>=91 && ${Me.Book[${Spell[Pulse of Lunanyn].RankName}]}) { /varset song5 ${Spell[Pulse of Lunanyn].RankName} } else /if (${Me.Level}>=86 && ${Me.Book[${Spell[Pulse of Renewal].RankName}]}) { /varset song5 ${Spell[Pulse of Renewal].RankName} } else /if (${Me.Level}>=82 && ${Me.Book[${Spell[Pulse of Rodcet].RankName}]}) { /varset song5 ${Spell[Pulse of Rodcet].RankName} } else /if (${Me.Level}>=77 && ${Me.Book[${Spell[Rhythm of Restoration].RankName}]}) { /varset song5 ${Spell[Rhythm of Restoration].RankName} } /if (!${Me.Gem[${spellgem}].Name.Equal[${song5}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${song5}" ${spellgem} /if (${Me.Book[${song5}]}) /varcalc spellgem ${spellgem}+1 |--Broken Mirror Song /if (${Me.Level}>=101 && ${Me.Book[${Spell[Dichotomic Psalm].RankName}]}) { /varset bmsong ${Spell[Dichotomic Psalm].RankName} } /if (!${Me.Gem[${spellgem}].Name.Equal[${bmsong}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${bmsong}" ${spellgem} /if (${Me.Book[${bmsong}]}) /varcalc spellgem ${spellgem}+1 |---AOE Mez /if (${Me.Level}>=110 && ${Me.Book[${Spell[Wave of Somnolence].RankName}]}) { /varset aoemezsong ${Spell[Wave of Somnolence].RankName} } else /if (${Me.Level}>=105 && ${Me.Book[${Spell[Wave of Torpor].RankName}]}) { /varset aoemezsong ${Spell[Wave of Torpor].RankName} } else /if (${Me.Level}>=100 && ${Me.Book[${Spell[Wave of Quietude].RankName}]}) { /varset aoemezsong ${Spell[Wave of Quietude].RankName} } else /if (${Me.Level}>=95 && ${Me.Book[${Spell[Wave of the Conductor].RankName}]}) { /varset aoemezsong ${Spell[Wave of the Conductor].RankName} } else /if (${Me.Level}>=90 && ${Me.Book[${Spell[Wave of Dreams].RankName}]}) { /varset aoemezsong ${Spell[Wave of Dreams].RankName} } else /if (${Me.Level}>=85 && ${Me.Book[${Spell[Wave of Slumber].RankName}]}) { /varset aoemezsong ${Spell[Wave of Slumber].RankName} } /if (!${Me.Gem[${spellgem}].Name.Equal[${aoemezsong}]}&&${Me.Book[${aoemezsong}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${aoemezsong}" ${spellgem} /if (${Me.Book[${aoemezsong}]}) /varcalc spellgem ${spellgem}+1 |---Aura Song |/if (${Me.Level}>=110 && ${Me.Book[${Spell[Aura of Begalru].RankName}]}) { | /varset aurasong ${Spell[Aura of Begalru].RankName} |} else /if (${Me.Level}>=105 && ${Me.Book[${Spell[Aura of Maetanrus].RankName}]}) { /varset aurasong ${Spell[Aura of Maetanrus].RankName} } else /if (${Me.Level}>=100 && ${Me.Book[${Spell[Aura of Va'Ker].RankName}]}) { /varset aurasong ${Spell[Aura of Va'Ker].RankName} } else /if (${Me.Level}>=95 && ${Me.Book[${Spell[Aura of the Orator].RankName}]}) { /varset aurasong ${Spell[Aura of the Orator].RankName} } else /if (${Me.Level}>=90 && ${Me.Book[${Spell[Aura of the Composer].RankName}]}) { /varset aurasong ${Spell[Aura of the Composer].RankName} } else /if (${Me.Level}>=85 && ${Me.Book[${Spell[Aura of the Poet].RankName}]}) { /varset aurasong ${Spell[Aura of the Poet].RankName} } /if (!${Me.Gem[${spellgem}].Name.Equal[${aurasong}]}&&${Me.Book[${aurasong}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${aurasong}" ${spellgem} /if (${Me.Book[${aurasong}]}) /varcalc spellgem ${spellgem}+1 |--Slow Target /if (${Me.Level}>=64 && ${Me.Book[${Spell[Requiem of Time].RankName}]}) { /varset slowsong ${Spell[Requiem of Time].RankName} } /if (!${Me.Gem[${spellgem}].Name.Equal[${slowsong}]}&&${Me.Book[${slowsong}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${slowsong}" ${spellgem} /if (${Me.Book[${slowsong}]}) /varcalc spellgem ${spellgem}+1 |---AE Slow Song /if (${Me.Level}>=109 && ${Me.Book[${Spell[Dekloaz's Melodic Binding].RankName}]}) { /varset aeslowsong ${Spell[Dekloaz's Melodic Binding].RankName} } else /if (${Me.Level}>=99 && ${Me.Book[${Spell[Protan's Melodic Binding].RankName}]}) { /varset aeslowsong ${Spell[Protan's Melodic Binding].RankName} } /if (!${Me.Gem[${spellgem}].Name.Equal[${aeslowsong}]}&&${Me.Book[${aeslowsong}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${aeslowsong}" ${spellgem} /if (${Me.Book[${aeslowsong}]}) /varcalc spellgem ${spellgem}+1 |---Regen Song /if (${Me.Level}>=109 && ${Me.Book[${Spell[Jembel's Lively Crescendo].RankName}]}) { /varset regensong ${Spell[Jembel's Lively Crescendo].RankName} } else /if (${Me.Level}>=104 && ${Me.Book[${Spell[Silisia's Lively Crescendo].RankName}]}) { /varset regensong ${Spell[Silisia's Lively Crescendo].RankName} } else /if (${Me.Level}>=100 && ${Me.Book[${Spell[Motlak's Lively Crescendo].RankName}]}) { /varset regensong ${Spell[Motlak's Lively Crescendo].RankName} } else /if (${Me.Level}>=95 && ${Me.Book[${Spell[Kolain's Lively Crescendo].RankName}]}) { /varset regensong ${Spell[Kolain's Lively Crescendo].RankName} } else /if (${Me.Level}>=90 && ${Me.Book[${Spell[Lyssa's Lively Crescendo].RankName}]}) { /varset regensong ${Spell[Lyssa's Lively Crescendo].RankName} } else /if (${Me.Level}>=85 && ${Me.Book[${Spell[Gruber's Lively Crescendo].RankName}]}) { /varset regensong ${Spell[Gruber's Lively Crescendo].RankName} } /if (!${Me.Gem[${spellgem}].Name.Equal[${regensong}]}&&${Me.Book[${regensong}]}&&${BringYourOwnSpells}!=1) /call MemSongs "${regensong}" ${spellgem} /if (${Me.Book[${regensong}]}) /varcalc spellgem ${spellgem}+1 /return |---------------------------------------------------------------------------- | SUB: INIChanges |---------------------------------------------------------------------------- Sub INIChanges /varset changetoini 0 /call SetIni General FollowToonName string "${FollowToonName}" /call SetIni General UseFellowship int ${UseFellowship} /call SetIni General UseMelee int ${UseMelee} /call SetIni General InstantRelease int ${InstantRelease} /call SetIni General AutoCampHold int ${AutoCampHold} /call SetIni General BringYourOwnSpells int ${BringYourOwnSpells} /return
cant the dev who does auto cleric not just fix this ?
tried copy paste some ( apparent fixes ) and all my cleric does now is stand there casting united hand of surety until no manner is left.
What is a "what not"?Does it use heals an what not? Or just updated for buffs?
- - - Updated - - -
Can't run it crashes me when it goes to load spells
