#define MakeIni Ini_${Me.Level}_${Me.Class}.ini
#event AATimer "#*#[ #1#: #2# ] (Reuse Time: #3# seconds)#*#"
#turbo 30
Sub Main(int lvls)
/declare lvl int outer ${Math.Calc[${Me.Level}-${If[${lvls},${lvls},4]}]}
/if (${Me.Level}<10) /varset lvl 1
/echo ${Macro.Name} started. Please wait. Parsing spells to level ${lvl}
/call Load
/call Settings
/call AA
/call Spells
/call Clicky
/if (${Select[${Me.Class.ShortName},WAR,BER,ROG,MNK,RNG,PAL,SHD,BRD,BST]}) /call Disc
/return
Sub Settings
|just to check if settings exists
/declare test string local
/declare test1 string local
/varset test ${Ini[MakeIni,Settings,Option,NULL]}
/if (${test.Equal[NULL]}) {
/varset test
/if (${Select[${Me.Class.ShortName},CLR,DRU,SHM,RNG,PAL,BST]}) {
/varset test ${test}Heal|
/varset test1 ${test1}2|
}
/if (${Select[${Me.Class.ShortName},CLR,DRU,ENC,BRD,NEC,WAR,MNK,BER,PAL]}) {
/varset test ${test}Aura|
/varset test1 ${test1}2|
}
/if (${Select[${Me.Class.ShortName},CLR,DRU,SHM,RNG,PAL,BST,MAG,DRU,SHM,ENC,NEC,SHD]}) {
/varset test ${test}HealPet|
/varset test1 ${test1}1|
}
/if (${Me.CurrentMana}) {
/varset test ${test}Nuke|Buff|
/varset test1 ${test1}2|1|
}
/if (${Select[${Me.Class.ShortName},CLR,DRU,SHM,RNG,ENC,NEC,SHD]}) {
/varset test ${test}Dot|
/varset test1 ${test1}2|
}
/if (${Select[${Me.Class.ShortName},BST,MAG,DRU,SHM,ENC,NEC,SHD]}) {
/varset test ${test}Pet|
/varset test1 ${test1}1|
}
/varset test ${test}AA|SelfBuff|Command|ImHit|Jolt|Debuff|FightBuff|
/varset test1 ${test1}1|1|1|1|1|2|1|
/if (${Select[${Me.Class.ShortName},CLR,MAG,SHM,WIZ,ENC,NEC,SHD,BST,BRD]}) {
/varset test ${test}Harvest|
/varset test1 ${test1}1|
}
/if (${Select[${Me.Class.ShortName},BER,MNK,ROG,WAR,SHD,RNG,PAL,BRD,BST]}) {
/varset test ${test}Disc|
/varset test1 ${test1}1|
}
/if (!${Select[${Me.Class.ShortName},MAG,WAR,BST,CLR,SHM,ENC,PAL]}) {
/varset test ${test}Snare|
/varset test1 ${test1}3|
}
/if (${Select[${Me.Class.ShortName},SHD,NEC]}) {
/varset test ${test}Lifetap|
/varset test1 ${test1}1|
}
/if (${Select[${Me.Class.ShortName},ENC,BRD]}) {
/varset test ${test}Mez|
/varset test1 ${test1}2|
}
/if (!${Select[${Me.Class.ShortName},MAG,WAR,BST,ROG,MNK,BER,BRD,SHD]}) {
/varset test ${test}Root|
/varset test1 ${test1}1|
}
/if (${Select[${Me.Class.ShortName},SHD,WAR,PAL]}) {
/varset test ${test}Aggro|
/varset test1 ${test1}2|
}
/ini "MakeIni" "Settings" "Option" ${test}
/ini "MakeIni" "Settings" "OptionType" ${test1}
}
/varset test ${Ini[MakeIni,Settings,Assist,NULL]}
/if (${test.Equal[NULL]}) /ini "MakeIni" "Settings" "Assist"
/varset test ${Ini[MakeIni,Settings,AssistAt,NULL]}
/if (${test.Equal[NULL]}) /ini "MakeIni" "Settings" "AssistAt"
/return
Sub Spells
/echo Spells start
/declare i int local
/for i ${Me.FirstBook} to ${Math.Calc[${Me.LastBook}+1]}
/if (${Me.Book[${i}].ID} && ${Me.Book[${i}].Level}>=${lvl}) /call Parse ${Me.Book[${i}].ID}
/next i
/echo Spells complete
/return
Sub AA
/echo [AA] start
/declare AAs Nuke|Dot|Debuff|Stun|SelfBuff|Buff|Heal|Mez|Jolt|ImHit|Lifetap|Root|Snare|Mana|Harvest|Pet|HealPet|FightBuff|Aggro|
/declare AAsType 2|2|2|1|1|1|2|2|1|1|1|2|2|1|1|1|1|1|2|
/declare AAsColor Red|Yellow|DarkYellow|Orage|Pink|White|Teal|Purple|Teal|Yellow|Green|Green|Green|Orange|Orange|Pink|Teal|White|DarkRed|
/declare i int local
/declare x int local
/varset AANuke ${AANuke}${AASwarmPet}
/for i 1 to ${AAs.Count[|]}
/for x 1 to ${AA${AAs.Arg[${i},|]}.Count[|]}
/if (${Me.AltAbility[${AA${AAs.Arg[${i},|]}.Arg[${x},|]}].Name.Length}||${Me.Book[${AA${AAs.Arg[${i},|]}.Arg[${x},|]}]}) {
/if (${Spell[${AA${AAs.Arg[${i},|]}.Arg[${x},|]}].SpellType.Find[Beneficial]}) /call Create ${AAs.Arg[${i},|]} ${AAsType.Arg[${i},|]} ${Spell[${AA${AAs.Arg[${i},|]}.Arg[${x},|]}].ID} ${AAsColor.Arg[${i},|]} ben
/if (${Spell[${AA${AAs.Arg[${i},|]}.Arg[${x},|]}].SpellType.Find[Detrimental]}) /call Create ${AAs.Arg[${i},|]} ${AAsType.Arg[${i},|]} ${Spell[${AA${AAs.Arg[${i},|]}.Arg[${x},|]}].ID} ${AAsColor.Arg[${i},|]} det
}
/next x
/next i
/if (${Select[${Me.Class.ShortName},CLR,DRU,SHM,ENC,MAG,NEC,WIZ]}) {
/for i 1 to ${AAArcanum.Count[|]}
/if (${Me.AltAbility[${AAArcanum.Arg[${i},|]}]}) {
/call Create FightBuff 2 ${Me.AltAbility[${AAArcanum.Arg[${i},|]}].Spell.ID} White ben
/goto :skiparcanum
}
/next i
}
:skiparcanum
/if (${Me.Class.ShortName.Equal[MAG]}) {
/for i 1 to ${AAMagCore.Count[|]}
/if (${Me.AltAbility[${AAMagCore.Arg[${i},|]}]}) {
/call Create FightBuff 2 ${Me.AltAbility[${AAMagCore.Arg[${i},|]}].Spell.ID} White ben
/goto :skipcore
}
/next i
/for i 1 to ${AAMagForm.Count[|]}
/if (${Me.AltAbility[${AAMagForm.Arg[${i},|]}]}) {
/call Create FightBuff 2 ${Me.AltAbility[${AAMagForm.Arg[${i},|]}].Spell.ID} White ben
/goto :skipcore
}
/next i
:skipcore
}
/if (${Me.Class.ShortName.Equal[WIZ]}) {
/for i 1 to ${AAWizFam.Count[|]}
/if (${Me.AltAbility[${AAWizFam.Arg[${i},|]}]}) {
/call Create SelfBuff 1 ${Me.AltAbility[${AAWizFam.Arg[${i},|]}].Spell.ID} White ben
/goto :skipfam
}
/next i
:skipfam
/for i 1 to ${AAWizMancy.Count[|]}
/if (${Me.AltAbility[${AAWizMancy.Arg[${i},|]}]}) {
/call Create SelfBuff 1 ${Me.AltAbility[${AAWizMancy.Arg[${i},|]}].Spell.ID} White ben
/goto :skipmancy
}
/next i
:skipmancy
/for i 1 to ${AAWizFury.Count[|]}
/if (${Me.AltAbility[${AAWizFury.Arg[${i},|]}]}) {
/call Create FightBuff 2 ${Me.AltAbility[${AAWizFury.Arg[${i},|]}].Spell.ID} White ben
/goto :skipfury
}
/next i
:skipfury
}
/for i 1 to ${AASpire.Count[|]}
/if (${Me.AltAbility[${AASpire.Arg[${i},|]}]}) {
/call Create FightBuff 2 ${Me.AltAbility[${AASpire.Arg[${i},|]}].Spell.ID} White ben
/goto :skipspire
}
/next i
:skipspire
/aa list timers
/delay 3s
/doevents
/echo [AA] complete.
/return
Sub Event_AATimer(line, string aaNumber, string aaName, string aaReuseTime)
/if (${AALeap.Find[${aaName}]}||${AAFeignDeath.Find[${aaName}]}||${AAPet.Find[${aaName}]}||${AAMount.Find[${aaName}]}||${AARez.Find[${aaName}]}||${AAIgnore.Find[${aaName}]}||${AACure.Find[${aaName}]}||${AAVeteran.Find[${aaName}]}||${AAInvisUndead.Find[${aaName}]}||${aaReuseTime}<0||${AALeap.Find[${aaName}]}||${AADA.Find[${aaName}]}${AAGlyph.Find[${aaName}]}||${AASummon.Find[${aaName}]}||${AACharm.Find[${aaName}]}||${AAPort.Find[${aaName}]}||${AAManaBurn.Find[${aaName}]}||${AAIllusion.Find[${aaName}]}) /goto :aadone
/if (${AAAEAggro.Find[${aaName}]}||${AAAggro.Find[${aaName}]}||${AAEnchant.Find[${aaName}]}||${AAPush.Find[${aaName}]}||${AAPull.Find[${aaName}]}||${AAMez.Find[${aaName}]}||${AAHealPet.Find[${aaName}]}||${AASwarmPet.Find[${aaName}]}||${AAArcanum.Find[${aaName}]}||${AARoot.Find[${aaName}]}||${AAMana.Find[${aaName}]}||${AALifetap.Find[${aaName}]}||${AADebuff.Find[${aaName}]}||${AAJolt.Find[${aaName}]}||${AANuke.Find[${aaName}]}||${AADot.Find[${aaName}]}||${AAStun.Find[${aaName}]}||${AASnare.Find[${aaName}]}||${AASelfBuff.Find[${aaName}]}||${AABuff.Find[${aaName}]}||${AAHeal.Find[${aaName}]}||${AAImHit.Find[${aaName}]}||${AAInvis.Find[${aaName}]}||${AAFightBuff.Find[${aaName}]}) /got :aadone
/if (${AAPetIgnore.Find[${aaName}]}||${AAMainTankBuff.Find[${aaName}]}||${AADot.Find[${aaName}]}||${AAPulling.Find[${aaName}]}||${AAWizFury.Find[${aaName}]}||${AAWizFam.Find[${aaName}]}||${AAWizMancy.Find[${aaName}]}||||${AAMagCore.Find[${aaName}]}||${AAMagForm.Find[${aaName}]}) /goto :aadone
/if (${Select[${Me.AltAbility[${aaName}].Spell.Subcategory},Illusion: Player]}||${aaName.Find[Spire]}) /goto :aadone
/call Create AA 2 ${Me.AltAbility[${aaName}].Spell.ID} Purple det "${aaName}"
:aadone
/return
Sub Parse(int id)
/declare i int local
/if (${Spell[${id}].SpellType.Find[beneficial]}) {
/for i 1 to ${BenList.Count[|]}
/if (${${BenList.Arg[${i},|]}Check}) {
/call Create ${BenList.Arg[${i},|]} ${BenListType.Arg[${i},|]} ${id} ${BenListColor.Arg[${i},|]} ben
/return
}
/next i
}
/if (${Spell[${id}].SpellType.Find[detrimental]}) {
/for i 1 to ${DetList.Count[|]}
/if (${${DetList.Arg[${i},|]}Check}) {
/call Create ${DetList.Arg[${i},|]} ${DetListType.Arg[${i},|]} ${id} ${DetListColor.Arg[${i},|]} det
/return
}
/next i
}
}
/return
Sub Create(section,itype,int id,color,pick,aaName)
/if (${${section}sCreated}) /return
/if (!${Defined[${section}s]}) {
/if (${Ini[MakeIni,${section},${section}Total,0]}) {
/declare ${section}sCreated int outer 1
/return
}
/declare ${section}s int outer
/ini "MakeIni" "${section}" "${section}Color" "${color}"
}
/varcalc ${section}s ${${section}s}+1
/ini "MakeIni" "${section}" "${section}Total" "${${section}s}"
/ini "MakeIni" "${section}" "${section}SpellName${${section}s}" "${Spell[${id}].Name}"
/if (${section.Equal[AA]}) /ini "MakeIni" "${section}" "${section}SpellName${${section}s}" "${aaName}"
/if (${pick.Equal[det]}) /ini "MakeIni" "${section}" "${section}Conditions${${section}s}" "($\{Range.Between[1,$\{AssistAt}:$\{Target.PctHPs}]})"
/if (${pick.Equal[det]} && ${section.Equal[Dot]}) /ini "MakeIni" "${section}" "${section}Conditions${${section}s}" "($\{Range.Between[${Math.Calc[${Spell[${id}].Duration.TotalSeconds}/2].Int},$\{AssistAt}:$\{Target.PctHPs}]})"
/if (${pick.Equal[det]} && ${Me.AltAbility[${Spell[${id}].Name}].MyReuseTime}>100 && !${Select[${section},Mez]}) /ini "MakeIni" "${section}" "${section}Conditions${${section}s}" "($\{Range.Between[20,$\{AssistAt}:$\{Target.PctHPs}]} && $\{Target.Named})"
/if (${pick.Equal[det]} && ${Me.AltAbility[${Spell[${id}].Name}].MyReuseTime}>300 && !${Select[${section},Mez]}) /ini "MakeIni" "${section}" "${section}Conditions${${section}s}" "($\{Range.Between[40,$\{AssistAt}:$\{Target.PctHPs}]} && $\{Target.Named})"
/if (${pick.Equal[det]} && ${Me.AltAbility[${Spell[${id}].Name}].MyReuseTime}>500 && !${Select[${section},Mez]}) /ini "MakeIni" "${section}" "${section}Conditions${${section}s}" "($\{Range.Between[50,$\{AssistAt}:$\{Target.PctHPs}]} && $\{Target.Named})"
/if (${pick.Equal[det]} && ${Me.AltAbility[${Spell[${id}].Name}].MyReuseTime}>800 && !${Select[${section},Mez]}) /ini "MakeIni" "${section}" "${section}Conditions${${section}s}" "($\{Range.Between[40,$\{AssistAt}:$\{Target.PctHPs}]} && $\{Target.Named})"
/if (${section.Equal[Aggro]}) /ini "MakeIni" "${section}" "${section}Conditions${${section}s}" "($\{Target.SecondaryPctAggro}>60)"
/if (${section.Equal[Aggro]} && ${Spell[${id}].TargetType.Find[AE]}) /ini "MakeIni" "${section}" "${section}Conditions${${section}s}" "($\{Me.XTarget}>1 && $\{SpawnCount[radius 30 zradius 30 npc]}>1)"
/if (${pick.Equal[ben]}) /ini "MakeIni" "${section}" "${section}Conditions${${section}s}" ""
/if (${section.Equal[ImHit]}) /ini "MakeIni" "${section}" "${section}Conditions${${section}s}" "($\{Me.PctHPs}<=50 && !$\{Me.Invis} && $\{Me.Standing})"
/if (${section.Equal[Jolt]}) /ini "MakeIni" "${section}" "${section}Conditions${${section}s}" "($\{Me.PctAggro}>70 && !$\{Me.Invis} && $\{Me.Standing} && ($\{Group.MainTank.ID}!=$\{Me.ID}||!$\{SpawnCount[group clr]} && !$\{SpawnCount[group druid]} && !$\{SpawnCount[group shaman]}))"
/if (${section.Equal[LifeTap]}) /ini "MakeIni" "${section}" "${section}Conditions${${section}s}" "($\{Math.Calc[$\{Me.MaxHPs}-$\{Me.CurrentHPs}]}>$\{Math.Abs[$\{Spell[$\{${section}SpellName${${section}s}}].Base[1]}]})"
/if (${section.Equal[Pet]} && ${Spell[${id}].Subcategory.Find[Sum: ]}) /ini "MakeIni" "${section}" "${section}Conditions${${section}s}" "(!$\{Me.Pet.ID} && !$\{Me.Invis} && $\{Me.Standing})"
/if (${section.Equal[Pet]} && !${Spell[${id}].Subcategory.Find[Sum: ]}) /ini "MakeIni" "${section}" "${section}Conditions${${section}s}" "($\{Me.Pet.ID} && !$\{Me.Invis} && $\{Me.Standing} && !$\{Me.Pet.Buff[$\{${section}SpellName${${section}s}}].ID}) && $\{Spell[$\{${section}SpellName${${section}s}}].StacksPet}"
/if (${section.Equal[SelfBuff]} && !${Spell[${id}].Slot[2].Find[Add effect: ]}) /ini "MakeIni" "${section}" "${section}Conditions${${section}s}" "(!$\{Me.Buff[$\{SelfBuffSpellName${${section}s}}].ID} && $\{Spell[$\{SelfBuffSpellName${${section}s}}].Stacks})"
/if (${section.Equal[SelfBuff]} && ${Spell[${id}].Slot[2].Find[Add effect: ]}) {
/declare tempstring string local ${Spell[${id}].Slot[1].Replace[Add Effect: ,]}
/if (${tempstring.Find[ Chance: 100pct]}) /varset tempstring ${tempstring.Replace[ Chance: 100pct,]}
/ini "MakeIni" "${section}" "${section}Conditions${${section}s}" "(!$\{Me.Buff[$\{SelfBuffSpellName${${section}s}}].ID} && $\{Spell[$\{${tempstring}}].Stacks})"
}
/if (${section.Equal[FightBuff]} && !${Spell[${id}].Slot[2].Find[Add effect: ]}) /ini "MakeIni" "${section}" "${section}Conditions${${section}s}" "(!$\{Me.Song[$\{FightBuffSpellName${${section}s}}].ID} && !$\{Me.Buff[$\{FightBuffSpellName${${section}s}}].ID} && $\{Spell[$\{FightBuffSpellName${${section}s}}].Stacks})"
/if (${section.Equal[FightBuff]} && !${Spell[${id}].Slot[2].Find[Add effect: ]} && ${Me.AltAbility[${Spell[${id}].Name}].MyReuseTime}>800) /ini "MakeIni" "${section}" "${section}Conditions${${section}s}" "(!$\{Me.Song[$\{FightBuffSpellName${${section}s}}].ID} && !$\{Me.Buff[$\{FightBuffSpellName${${section}s}}].ID} && $\{Spell[$\{FightBuffSpellName${${section}s}}].Stacks} && $\{Target.Named})"
/if (${section.Equal[FightBuff]} && ${Spell[${id}].Slot[2].Find[Add effect: ]}) {
/declare tempstring string local ${Spell[${id}].Slot[1].Replace[Add Effect: ,]}
/if (${tempstring.Find[ Chance: 100pct]}) /varset tempstring ${tempstring.Replace[ Chance: 100pct,]}
/ini "MakeIni" "${section}" "${section}Conditions${${section}s}" "(!$\{Me.Buff[$\{FightBuffSpellName${${section}s}}].ID} && $\{Spell[$\{${tempstring}}].Stacks})"
}
/if (${section.Equal[Aura]}) /ini "MakeIni" "${section}" "${section}Conditions${${section}s}" "(!$\{Me.AuraInfo[1].ID}||!$\{Me.AuraInfo[2].ID} && ($\{Me.AltAbility[Spirit Mastery]}||$\{Me.AltAbility[Auroria Mastery]}))"
/if (${itype.Equal[2]} && ${section.Equal[AA]}) /ini "MakeIni" "${section}" "${section}Recast${${section}s}" "10s"
/if (${itype.Equal[2]} && ${Math.Calc[${Spell[${id}].Duration}*6].Int}>0 && ${section.NotEqual[AA]}) /ini "MakeIni" "${section}" "${section}Recast${${section}s}" "${Math.Calc[${Spell[${id}].Duration}*6].Int}s"
/if (${itype.Equal[2]} && ${Math.Calc[${Spell[${id}].Duration}*6].Int}<0 && ${section.NotEqual[AA]}) /ini "MakeIni" "${section}" "${section}Recast${${section}s}" "${Math.Calc[24*60*60].Int}s"
/if (${itype.Equal[2]} && ${Math.Calc[${Spell[${id}].Duration}*6].Int}==0 && ${section.NotEqual[AA]}) /ini "MakeIni" "${section}" "${section}Recast${${section}s}" "${Spell[${id}].RecastTime.Int}s"
/if (${itype.Equal[2]} && ${section.Equal[Aura]}) /ini "MakeIni" "${section}" "${section}Recast${${section}s}" "90s"
/return
Sub Load
/declare AASpire string outer |Fundament: Third Spire of Ancestors|Fundament: Second Spire of Arcanum|Fundament: Second Spire of Divinity|Fundament: Third Spire of Elements|Fundament: Second Spire of Enchantment|Fundament: First Spire of Holiness|Fundament: Third Spire of Nature|Fundament: Third Spire of Necromancy|Fundament: Third Spire of Savagery|Fundament: Second Spire of the Minstrels|Fundament: Third Spire of the Pathfinders|Fundament: Second Spire of the Rake|Fundament: First Spire of the Reavers|Fundament: Third Spire of the Savage Lord|Fundament: Second Spire of the Sensei|Fundament: Third Spire of the Warlord|
/declare AASpire2 string outer Fundament: Second Spire of Ancestors|Fundament: Third Spire of Arcanum|Fundament: Third Spire of Divinity|Fundament: First Spire of Elements|Fundament: Third Spire of Enchantment|Fundament: Second Spire of Holiness|Fundament: Second Spire of Nature|Fundament: First Spire of Necromancy|Fundament: Second Spire of Savagery|Fundament: Third Spire of the Minstrels|Fundament: First Spire of the Pathfinders|Fundament: Third Spire of the Rake|Fundament: Third Spire of the Reavers|Fundament: Second Spire of the Savage Lord|Fundament: Third Spire of the Sensei|Fundament: Second Spire of the Warlord|
/declare AASpire3 string outer Fundament: First Spire of Ancestors|Fundament: First Spire of Arcanum|Fundament: First Spire of Divinity|Fundament: Second Spire of Elements|Fundament: First Spire of Enchantment|Fundament: Third Spire of Holiness|Fundament: First Spire of Nature|Fundament: Second Spire of Necromancy|Fundament: First Spire of Savagery|Fundament: First Spire of the Minstrels|Fundament: Second Spire of the Pathfinders|Fundament: First Spire of the Rake|Fundament: Second Spire of the Reavers|Fundament: First Spire of the Savage Lord|Fundament: First Spire of the Sensei|Fundament: First Spire of the Warlord|
/declare AADebuff string outer Turgur's Swarm|Malosinete|Pathosis|Dreary Deeds|Bladed Song|Bite of Tashani|Orb of Tishan|Hand of Ro|Fixation of Ro|Blessing of Ro|Scent of Terris|Death's Malaise|Crippling Sparkle|Ethereal Manipulation|Dampen Resistance|Tigir's Insect Swarm|Wind of Malosinete|Crippling Apparition|Crippling Spirit|Lower Element|
/declare AANuke string outer Force of Will|Force of Elements|Vicious Bite of Chaos|Disruptive Persecution|Harm Touch|Storm Strike|Force of Flame|Force of Ice|
/declare AADot string outer Mental Contortion|
/declare AASwarmPet string outer Phantasmal Opponent|Army of the Dead|Swarm of Decay|Rise of Bones|Song of Stone|Servant of Ro|Host of the Elements|Nature's Guardian|Celestial Hammer|Chattering Bones|Host of the Elements|Call of Xuzl|Spirit Call|Attack of the Warders|Illusory Ally|
/declare AAArcanum string outer Empowered Focus of Arcanum|Enlightened Focus of Arcanum|Acute Focus of Arcanum|Focus of Arcanum|
/declare AAWizFam string outer Kerafyrm's Prismatic Familiar|Improved Familiar|Ro's Flaming Familiar|Druzzil's Mystical Familiar|E'ci's Icy Familiar|
/declare AAWizMancy string outer Pyromancy|Arcomancy|Cryomancy|
/declare AAWizFury string outer Fury of Kerafyrm|Fury of Ro|Fury of Druzzil|Fury of Eci|
/declare AAMagCore string outer Fire Core|Vapor Core|Stone Core|Ice Core|
/declare AAMagForm string outer Heart of Flame|Heart of Vapor|Heart of Stone|Heart of Ice|
/declare AASnare string outer Encroaching Darkness|Entrap|Halt the Dead|Atol's Shackles|Atol's Unresistable Shackles|
/declare AAStun string outer Disruptive Persecution|Divine Stun|Force of Disruption|
/declare AAMez string outer Dirge of the Sleepwalker|Nightmare Stasis|Beam of Slumber|Wave of Slumber|Dead Mesmerization|Scintillating Beam|
/declare AAHeal string outer Burst of Life|Beacon of Life|Convergence of Spirits|Union of Spirits|Lay on Hands|Hand of Piety|Divine Arbitration|Aegis of Superior Divinity|Call of the Ancients|Ancestral Aid|Celestial Regeneration|Focused Celestial Regeneration|Exquisite Benediction|
/declare AAHealSelf string outer Warder's Gift|
/declare AAJolt string outer Concussive Intuition|Death Peace|Improved Death Peace|Arcane Whisper|Cover Tracks|Divine Peace|Death's Effigy|Fading Memories|Balefire Burst|Imitate Death|Inconspicuous Totem|Self Stasis|Drape of Shadows|Playing Possum|Soothing Words|Roar of Thunder|Playing Possum|A Hole in Space|
/declare AAFeignDeath string outer Death Peace|Improved Death Peace|Playing Possum|
/declare AAFightBuff string outer Yaulp|Color Shock|Silent Casting|Reluctant Benevolence|Improved Twincast|Shield of Reverence|Twincast Rk. II|Twincast Rk. III|Scourge Skin|
/declare AARez string outer Gift of Resurrection|Call of the Wild|Blessing of Resurrection|Divine Resurrection|Restoration of Life|Incarnate Anew|Convergence|Rejuvenation of Spirit|
/declare AAIllusion string outer Elemental Form: Air|Elemental Form: Earth|Elemental Form: Fire|Elemental Form: Water|Noteworthy Disguise: Drake|
/declare AASelfBuff string outer Perfected Dead Men Floating|Pact of the Wolf|Bobbing Corpse|Dead Man Floating|Preincarnation|Selo's Sonata|Sionachie's Crescendo|Eldritch Rune|Mind Over Matter|Veil of Mindshadow|Kerafyrm's Prismatic Familiar|Arcomancy|Cryomancy|Pyromancy|Improved Familiar|E'ci's Icy Familiar|Druzzil's Mystical Familiar|Ro's Flaming Familiar|Noteworthy Disguise: Drake|Pact of the Wurine|Elemental Ward|Cascade of Decay|
/declare AAMainTankBuff string outer Divine Guardian|Spirit Guardian|Focused Celestial Regeneration|
/declare AACure string outer Radiant Cure|Purified Spirits|Ward of Purity|Purification|Blessing of Purification|Purify Body|Group Purify Soul|Embrace the Decay|Nature's Salve|
/declare AABuff string outer Perfected Dead Men Floating|Perfected Dead Man Floating|Spirit of Eagles|Marr's Salvation|Group Pact of the Wolf|Communion of the Cheetah|Talisman of Celerity|Selo's Sonata|Group Perfected Levitation|Perfected Levitation|Spirit of Eagle|Spirit Walk|Group Spirit Walk|Dead Man Floating|Bobbing Corpse|Flight of Eagles|Voice of Thule|
/declare AAIgnore string outer Mass Group Buff|Tranquil Blessings|Origin|Harmonic Dissonance|Harmonious Arrow|Gate|Cannibalization|Group Shrink|Shrink|Spiritual Channeling|Turn Undead|Summon Remains|Act of Valor|Forceful Rejuvenation|Sense the Dead|Fog of Memories|Project Illusion|Aspect of Zomm|Turn Summoned|Summon Tome of the Hero's Journey|Banestrike|Flesh to Bone|Wake the dead|Call to Corpse|Fear Storm|Blood Magic|Blanket of Forgetfulness|Mark of Travel|Tertiary Recall|Languid Bite|Call of the Herald|Vainglorious Shout|
/declare AAEnchant string outer Mass Enchant Palladium|Enchant Palladium|Enchant Palladium Trio|
/declare AAInvis string outer Shared Camouflage|Innate Camouflage|Cover Tracks|Silent Presence|Spirit Walk|Group Silent Presence|Group Spirit Walk|Cloak of Shadows|Shauri's Sonorious Clouding|Group Perfect Invisibility|Gather Shadows|Improved Natural Invisibility|
/declare AAImHit string outer Improved Sanctuary|Sanctuary|Outrider's Evasion|Shield of Notes|Hymn of the Last Stand|Doppelganger|Mind Crash|Host in the Shell|Companion of Necessity|Hold the Line|Divine Retribution|Blessing of Sanctuary|Embalmer's Carapace|Imitate Death|Death's Effigy|Improved Death Peace|Lyrical Prankster|
/declare AAVeteran string outer Lesson of the Devoted|Infusion of the Faithful|Chaotic Jester|Expedient Recovery|Steadfast Servant|Staunch Recovery|Intensity of the Resolute|Throne of Heroes|Armor of Experience|Summon Resupply Agent|Summon Clockwork Banker|Summon Permutation Peddler|Summon Personal Tribute Master|Glyph of Indeterminable Reward|
/declare AAInvisUndead string outer Group Perfected Invisibility to Undead|Innate Invis to Undead|Cloak of Light|Fool the Fallen|
/declare AARoot string outer Grasp of Sylvan Spirits|Blessed Chains|Virulent Paralysis|Shackles of Tunare|Beguiler's Directed Banishment|Beguiler's Banishment|Strong Root|Paralytic Spores|Pestilent Paralysis|Bony Grasp of Death|
/declare AAMount string outer Steed of Souls|Abyssal Steed|Unholy Steed|Wicked Steed|Holy Warhorse|Valiant Steed|Divine Steed|Hallowed Steed|
/declare AAAggro string outer Projection of Doom|Ageless Enmity|Projection of Piety|Projection of Fury|
/declare AAAEAggro string outer Explosion of Spite|Explosion of Hatred|Beacon of the Righteous|Area Taunt|Enhanced Area Taunt|
/declare AAPet string outer Aegis of Kildrukaun|Hobble of Spirits|
/declare AAPetIgnore string outer Suspended Minion|Summon Companion|Companion's Relocation|Diminutive Companion|Shared Health|
/declare AAPetBuff string outer Aegis of Kildrukaun|Virulent Talon|Savage Lord's Totem|Focus of Primal Elements|Spiritcaller Totem of the Feral|Staff of Elemental Essence|Hobble of Spirits|Second Wind Ward|
/declare AAHealPet string outer Replenish Companion|Mend Companion|Companion's Blessing|Divine Companion Aura|
/declare AAPush string outer Unbridled Strike of Fear|Spiritual Rebuke|Repel the Wicked|Sonic Displacement|Paralytic Spores|Virulent Paralysis|Wall of Wind|Silent Displacement|Spiritual Rebuke|Press the Attack|Repel the Wicked|Unbridled Strike of Fear|Beam of Displacement|
/declare AAPull string outer Hate's Attraction|Divine Call|Lure of the Siren's Song|Grappling Strike|Distant Strike|
/declare AALeap string outer Hate Step|Leap of Faith|Lyre Leap|Netherstep|Dimensional Instability|Dimensional Shield|Neshika's Blink|Whisperwind|
/declare AADA string outer Harmshield|Bestow Divine Aura|Cascading Divine Aura|
/declare AALifetap string outer Leech Touch|Vicious Bite of Chaos|Dying Grasp|
/declare AAGlyph string outer Glyph of Angry Thoughts|Glyph of Draconic Potential|Glyph of Courage|Glyph of Dragon Scales|Glyph of Stored Life|Glyph of Arcane Secrets|Glyph of the Cataclysm|Glyph of Destruction|Glyph of Genari Might|Glyph of the Master|Glyph of Lost Secrets|Glyph of Frantic Infusion|
/declare AASummon string outer Azure Mind Crystal|Sanguine Mind Crystal|Mass Enchant Dwerium|Small Modulation Shard|Medium Modulation Shard|Large Modulation Shard|
/declare AACharm string outer Edict of Command|Dire Charm|
/declare AAPort string outer Nexus Gate|Exodus|Teleport Bind|Translocate|Teleport|Translocational Anchor|Secondary Recall|Abscond|Call of the Hero|Call Hither|Egress|Levant|
/declare AAManaBurn string outer Mana Burn|Mana Blaze|Volatile Mana Blaze|Mana Blast|
/declare AAMana string outer Harvest of Druzzil|Quiet Miracle|Cannibalization|Gather Mana|Mana Draw|Death Bloom|Mana Reserve|Fundament: Second Spire of Enchantment|Veturika's Perseverance|Death Blossom|Paragon of Spirit|
/declare AAHarvest string outer Harvest of Druzzil|Quiet Miracle|Cannibalization|Gather Mana|Mana Draw|Death Bloom|Mana Reserve|Fundament: Second Spire of Enchantment|Veturika's Perseverance|Death Blossom|Paragon of Spirit|
/declare AAClickyNuke string outer Aurora, the Heartwood Blade|Blade of Vesagran|Blessed Spiritstaff of the Heyokah|Champion's Sword of Eternal Power|Crafted Talisman of Fates|Deathwhisper|Fatestealer|Fistwraps of Celestial Discipline|Heartwood Blade|Innoruuk's Dark Blessing|Innoruuk's Voice|Kreljnok's Sword of Eternal Power|Nightbane, Sword of the Valiant|Nightshade, Blade of Entropy|Prismatic Dragon Blade|Raging Taelosian Alloy Axe|Redemption|Soulwhisper|Staff of Everliving Brambles|Staff of Living Brambles|Staff of Phenomenal Power|Staff of Prismatic Power|Transcended Fistwraps of Immortality|Vengeful Taelosian Blood Axe|
/declare AAAura string outer Twincast Aura|Holy Aura|Disciple's Aura|Aura of Rage|Champion's Aura|
/declare AAPulling string outer Throw Stone|Boastful Bellow|
/declare DetList string outer Lifetap|Nuke|Dot|Stun|Debuff|Root|Jolt|Mez|Aggro|
/declare DetListType string outer 1|2|2|1|2|2|1|2|2|
/declare DetListColor string outer Green|Red|Yellow|Orange|DarkYellow|Green|Teal|Purple|DarkRed|
/noparse /declare LifetapCheck string outer (${Spell[${id}].TargetType.Equal[Lifetap]})
/noparse /declare NukeCheck string outer (${Spell[${id}].Category.Find[Direct Damage]}||${Spell[${id}].TargetType.Equal[single]} && !${Spell[${id}].Duration} && (${Spell[${id}].Slot[1].Left[21].Equal[Decrease Hitpoints by]}||${Spell[${id}].Slot[2].Left[21].Equal[Decrease Hitpoints by]}||${Spell[${id}].Slot[3].Left[21].Equal[Decrease Hitpoints by]}||${Spell[${id}].Slot[4].Left[21].Equal[Decrease Hitpoints by]}||${Spell[${id}].Skill.Equal[Evocation]}||${Spell[${id}].Skill.Equal[Archery]}))
/noparse /declare DotCheck string outer (${Spell[${id}].Category.Equal[Damage over time]}||${Spell[${id}].TargetType.Equal[single]} && ${Spell[${id}].Duration}>=2 && (${Spell[${id}].Slot[1].Left[21].Equal[Decrease Hitpoints by]}||${Spell[${id}].Slot[2].Left[21].Equal[Decrease Hitpoints by]}||${Spell[${id}].Slot[3].Left[21].Equal[Decrease Hitpoints by]}||${Spell[${id}].Slot[4].Left[21].Equal[Decrease Hitpoints by]}))
/noparse /declare StunCheck string outer (${Spell[${id}].TargetType.Equal[single]} && (${Spell[${id}].Slot[1].Left[4].Equal[Stun]}||${Spell[${id}].Slot[2].Left[4].Equal[Stun]}||${Spell[${id}].Slot[1].Left[8].Equal[SpinStun]}))
/noparse /declare DebuffCheck string outer (${Spell[${id}].Subcategory.NotEqual[root]} && ${Spell[${id}].TargetType.Equal[single]} && ${Spell[${id}].Duration} && ${Select[${Spell[${id}].Skill},Alteration,Abjuration]} && ${Spell[${id}].Slot[1].Left[13].NotEqual[Increase Hate]} && ${Spell[${id}].Slot[2].Left[13].NotEqual[Increase Hate]} && ${Spell[${id}].Slot[5].Left[13].NotEqual[Increase Hate]})
/noparse /declare RootCheck string outer (${Spell[${id}].Slot[2].Equal[root]}||${Spell[${id}].Subcategory.Equal[root]})
/noparse /declare JoltCheck string outer ((${Spell[${id}].Slot[1].Find[Feign Death]}||${Spell[${id}].Slot[1].Find[Fade Memories]})||${Spell[${id}].TargetType.Equal[single]} && (${Spell[${id}].Slot[1].Left[13].Equal[Decrease Hate]}||${Spell[${id}].Slot[2].Left[13].Equal[Decrease Hate]}))
/noparse /declare MezCheck string outer (${Spell[${id}].Slot[1].Left[11].Equal[Mesmerize]}||${Spell[${id}].Subcategory.Equal[Enthrall]})
/noparse /declare AggroCheck string outer (${Spell[${id}].Subcategory.Find[Jolt]}||${Spell[${id}].Name.Find[Audacity]})
/declare BenList string outer SelfBuff|FightBuff|MainTankBuff|Heal|Buff|Aura|Pet|HealPet|
/declare BenListType string outer 1|1|2|2|1|2|1|1|
/declare BenListColor string outer Pink|Yellow|Green|Teal|White|White|Pink|Pink|
/noparse /declare SelfBuffCheck string outer (${Spell[${id}].TargetType.Equal[Self]} && ${Spell[${id}].Duration}>50 && !${bookcheck.Find[illusion]})
/noparse /declare FightBuffCheck string outer (${Spell[${id}].TargetType.Equal[Self]} && ${Range.Between[1,51:${Spell[${id}].Duration}]})
/noparse /declare MainTankBuffCheck string outer ((${Spell[${id}].TargetType.Equal[single]}||${Spell[${id}].TargetType.Equal[group v2]}) && (${Range.Between[4,90:${Spell[${id}].Duration}]}||${Spell[${id}].Name.Find[Promised]}) && ${Spell[${id}].Slot[1].Left[8].NotEqual[Reaction]})
/noparse /declare HealCheck string outer (${Spell[${id}].Category.NotEqual[pet]} && ${Spell[${id}].Name.Find[splash]} && ${Select[${Spell[${id}].TargetType},Unknown,Free Target]}||${Spell[${id}].Slot[1].Left[21].Equal[Increase Hitpoints by]}||${Spell[${id}].Slot[2].Left[21].Equal[Increase Hitpoints by]}||${Spell[${id}].Slot[3].Left[21].Equal[Increase Hitpoints by]}||${Spell[${id}].Slot[4].Left[21].Equal[Increase Hitpoints by]}||${Spell[${id}].Slot[5].Left[21].Equal[Increase Hitpoints by]}||${Spell[${id}].Slot[6].Left[21].Equal[Increase Hitpoints by]})
/noparse /declare BuffCheck string outer ((${Spell[${id}].TargetType.Equal[single]}||${Spell[${id}].TargetType.Find[group]}||${Spell[${id} Rk. II].TargetType.Find[group]}) && ((${Range.Between[90,999999:${Spell[${id}].Duration}]}||${Range.Between[1,3:${Spell[${id}].Duration}]})||${Spell[${id}].Name.Find[Promised]}) && ${Spell[${id}].Slot[1].Left[8].NotEqual[Reaction]})
/noparse /declare AuraCheck string outer (${Spell[${id}].Slot[1].Find[Aura Effect]}||${Spell[${id}].Category.Equal[Aura]})
/noparse /declare PetCheck string outer (${Spell[${id}].Category.Equal[Pet]} && (${Spell[${id}].Subcategory.Find[Block]}||${Spell[${id}].Subcategory.Find[Misc]}||${Spell[${id}].Subcategory.Find[Haste]}||${Spell[${id}].Subcategory.Find[Sum: ]} && !${Spell[${id}].Subcategory.Find[Swarm]}))
/return
Sub Clicky
/echo [Clicky] start
/declare slot int local
/declare ph int outer 1
/declare ct int outer ${Ini[MakeIni,Clicky,ClickyTotal,123456]}
/if (${ct}!=123456) {
/echo Clicky section already built!
/return
}
/ini "MakeIni" "Clicky" "ClickyColor" "Orange"
/ini "MakeIni" "Clicky" "ClickyTotal"
/for slot 0 to 22
/if (${InvSlot[${slot}].Item.Spell.ID} && (${InvSlot[${slot}].Item.Spell.SpellType.Equal[Detrimental]}||${slot}==17) && ${InvSlot[${slot}].Item.CastTime}>0) {
/ini "MakeIni" "Clicky" "ClickySpellName${ph}" "${InvSlot[${slot}].Item.Name}"
/ini "MakeIni" "Clicky" "ClickyConditions${ph}" "($\{Range.Between[1,$\{AssistAt}:$\{Target.PctHPs}]} && !$\{FindItem[$\{ClickySpellName${ph}}].Timer})"
/varcalc ph ${ph}+1
}
/next slot
/declare i int local
/for slot 23 to 32
/if (!${InvSlot[${slot}].Item.Container} && ${InvSlot[${slot}].Item.Spell.ID} && ${InvSlot[${slot}].Item.CastTime}>0 && (${InvSlot[${slot}].Item.Spell.SpellType.Equal[Detrimental]}||${InvSlot[${slot}].Item.WornSlot[1]}==17)) {
/ini "MakeIni" "Clicky" "ClickySpellName${ph}" "${InvSlot[${slot}].Item.Name}"
/ini "MakeIni" "Clicky" "ClickyConditions${ph}" "($\{Range.Between[1,$\{AssistAt}:$\{Target.PctHPs}]} && !$\{FindItem[$\{ClickySpellName${ph}}].Timer})"
/varcalc ph ${ph}+1
}
/if (${InvSlot[${slot}].Item.Container}) {
/for i 1 to ${InvSlot[${slot}].Item.Container}
/if (${Me.Inventory[${slot}].Item[${i}].CastTime}>0 && (${Me.Inventory[${slot}].Item[${i}].Spell.SpellType.Equal[detrimental]}||${Me.Inventory[${slot}].Item[${i}].WornSlot[1]}==17) && ${Me.Level}>=${Me.Inventory[${slot}].Item[${i}].RequiredLevel} && ${Me.Inventory[${slot}].Item[${i}].Class[${Me.Class}].Name.Equal[${Me.Class}]} && (!${Me.Inventory[${slot}].Item[${i}].Attuneable}||${Me.Inventory[${slot}].Item[${i}].Attuneable} && ${Me.Inventory[${slot}].Item[${i}].NoDrop})) {
/if (!${Me.Inventory[${slot}].Item[${i}].Name.Find[potion]}) /ini "MakeIni" "Clicky" "ClickySpellName${ph}" "${Me.Inventory[${slot}].Item[${i}].Name}"
/if (!${Me.Inventory[${slot}].Item[${i}].Name.Find[potion]}) /ini "MakeIni" "Clicky" "ClickyConditions${ph}" "($\{Range.Between[1,$\{AssistAt}:$\{Target.PctHPs}]} && !$\{FindItem[$\{ClickySpellName${ph}}].Timer})"
/varcalc ph ${ph}+1
}
/next i
}
/next slot
/varcalc ph ${ph}-1
/ini "MakeIni" "Clicky" "ClickyTotal" "${ph}"
/echo [Clicky] complete
/return
Sub Disc
/echo [Disc] start
/declare i int local
/declare x int local
/declare z int local
/declare tempDisc string local
/ini "MakeIni" "Disc" "DiscColor" "Green"
/ini "MakeIni" "Disc" "DiscTotal" "20"
/for i 1 to 20
/ini "MakeIni" "Disc" "Disc${i}"
/ini "MakeIni" "Disc" "DiscCategory${i}"
/ini "MakeIni" "Disc" "DiscConditions${i}"
/next i
/for i 1 to 100
/if (!${Me.CombatAbility[${i}].Name.Length}) /goto :done
/if (${Me.CombatAbility[${i}].Name.Find[ Wind]}) /goto :nexti
/if (${Me.CombatAbility[${i}].RecastTimerID}) /ini "MakeIni" "Disc" "Disc${Me.CombatAbility[${i}].RecastTimerID}" "${Me.CombatAbility[${i}]}"
/if (${Me.CombatAbility[${i}].RecastTimerID}) /ini "MakeIni" "Disc" "DiscCategory${Me.CombatAbility[${i}].RecastTimerID}" "${Me.CombatAbility[${i}].Subcategory}"
/for x 1 to 12
/varset tempDisc
/if (${Me.CombatAbility[${i}].Slot[${x}].Find[100% Chance to trigger: ]}) /varset tempDisc ${Me.CombatAbility[${i}].Slot[${x}].Replace[100% Chance to trigger: ,]}
/if (${Me.CombatAbility[${i}].Slot[${x}].Find[Add Effect: ]}) /varset tempDisc ${Me.CombatAbility[${i}].Slot[${x}].Replace[Add Effect: ,]}
/if (${Me.CombatAbility[${i}].Slot[${x}].Find[Add proc: ]}) /varset tempDisc ${Me.CombatAbility[${i}].Slot[${x}].Replace[Add proc: ,]}
/if (${Me.CombatAbility[${i}].Slot[${x}].Find[Trigger effect: ]}) /varset tempDisc ${Me.CombatAbility[${i}].Slot[${x}].Replace[Trigger effect: ,]}
/if (${Me.CombatAbility[${i}].Slot[${x}].Find[Cast DD as well(100% chance, Spell: ]}) /varset tempDisc ${Me.CombatAbility[${i}].Slot[${x}].Replace[Cast DD as Well(100% chance, Spell: ,]}
/if (${tempDisc.Find[)]}) /varset tempDisc ${tempDisc.Replace[),]}
/if (${tempDisc.Find[ Chance: 100pct]}) /varset tempDisc ${tempDisc.Replace[ Chance: 100pct,]}
/if (!${tempDisc.Length}) {
/if (${Select[${Me.CombatAbility[${i}].Category},Direct Damage]}||${Me.CombatAbility[${i}].Slot[${x}].Find[increase proc modifier]}||${Me.CombatAbility[${i}].Slot[${x}].Find[offense attack]}||${Me.CombatAbility[${i}].Slot[${x}].Find[skill attack]}||${Me.CombatAbility[${i}].Slot[${x}].Find[increase chance to hit]}||${Me.CombatAbility[${i}].Slot[${x}].Find[increase archery]}||${Me.CombatAbility[${i}].Slot[${x}].Find[reduce backstab timer]}||${Me.CombatAbility[${i}].Slot[${x}].Find[damage bonus]}||${Me.CombatAbility[${i}].Slot[${x}].Find[increase damage]}||${Me.CombatAbility[${i}].Slot[${x}].Find[increase spell damage]}||${Me.CombatAbility[${i}].Slot[${x}].Find[increase chance to critical]}||${Me.CombatAbility[${i}].Slot[${x}].Find[increase critical damage]}||${Me.CombatAbility[${i}].Slot[${x}].Find[hundred hands]}||${Me.CombatAbility[${i}].Slot[${x}].Find[decrease accuracy]}) /ini "MakeIni" "Disc" "DiscCategory${Me.CombatAbility[${i}].RecastTimerID}" "Offensive"
/if (${Select[${Me.CombatAbility[${i}].Subcategory},Block,Armor Class]}||${Me.CombatAbility[${i}].Slot[${x}].Find[block]}||${Me.CombatAbility[${i}].Slot[${x}].Find[dodge]}||${Me.CombatAbility[${i}].Slot[${x}].Find[parry]}||${Me.CombatAbility[${i}].Slot[${x}].Find[riposte]}||${Me.CombatAbility[${i}].Slot[${x}].Find[melee mitigation]}||${Me.CombatAbility[${i}].Slot[${x}].Find[mitigate melee]}||${Me.CombatAbility[${i}].Slot[${x}].Find[defensive]}||${Me.CombatAbility[${i}].Slot[${x}].Find[avoid]}||${Me.CombatAbility[${i}].Slot[${x}].Find[resist]}) /ini "MakeIni" "Disc" "DiscCategory${Me.CombatAbility[${i}].RecastTimerID}" "Defensive"
/if (${Select[${Me.CombatAbility[${i}].Subcategory},Jolt,Hatred]}||${Select[${Me.CombatAbility[${i}].Category},Jolt,Hatred]}||${Me.CombatAbility[${i}].Slot[${x}].Find[taunt]}||${Me.CombatAbility[${i}].Slot[${x}].Find[hate]}||${Me.CombatAbility[${i}].Slot[${x}].Find[hatred]}||${Me.CombatAbility[${i}].Slot[${x}].Find[aggro]}) /ini "MakeIni" "Disc" "DiscCategory${Me.CombatAbility[${i}].RecastTimerID}" "Aggro"
/if (${Select[${Me.CombatAbility[${i}].Subcategory},Enthrall]}||${Select[${Me.CombatAbility[${i}].Category},Enthrall]}||${Me.CombatAbility[${i}].Slot[${x}].Find[mesmerize]}) /ini "MakeIni" "Disc" "DiscCategory${Me.CombatAbility[${i}].RecastTimerID}" "Mez"
/if (${Me.CombatAbility[${i}].TargetType.Equal[self]} && ${Me.CombatAbility[${i}].Slot[${x}].Find[inrease hitpoints]}) /ini "MakeIni" "Disc" "DiscCategory${Me.CombatAbility[${i}].RecastTimerID}" "OOC Heal"
/if (${Me.CombatAbility[${i}].Slot[${x}].Find[Increase endurance]}) /ini "MakeIni" "Disc" "DiscCategory${Me.CombatAbility[${i}].RecastTimerID}" "EndRegen"
/if (${Me.CombatAbility[${i}].Slot[${x}].Find[reaction radius]}) /ini "MakeIni" "Disc" "DiscCategory${Me.CombatAbility[${i}].RecastTimerID}" "Lull"
/if (${Spell[${Me.CombatAbility[${i}]}].Skill.Equal[Throwing]}) /ini "MakeIni" "Disc" "DiscCategory${Me.CombatAbility[${i}].RecastTimerID}" "Throwing"
/if (${Ini[MakeIni,Disc,DiscCategory${Me.CombatAbility[${i}].RecastTimerID}].Equal[Offensive]}) {
/if (${Me.CombatAbility[${i}].RecastTime}>=800) /ini "MakeIni" "Disc" "DiscConditions${Me.CombatAbility[${i}].RecastTimerID}" "$\{Target.Named} && $\{Range.Between[30,$\{AssistAt}:$\{Target.PctHPs}]} && !$\{Melee.DiscID} && $\{Me.PctHPs}>90"
/if (${Me.CombatAbility[${i}].RecastTime}<800) /ini "MakeIni" "Disc" "DiscConditions${Me.CombatAbility[${i}].RecastTimerID}" "$\{Range.Between[30,$\{AssistAt}:$\{Target.PctHPs}]} && !$\{Melee.DiscID}"
}
/if (${Ini[MakeIni,Disc,DiscCategory${Me.CombatAbility[${i}].RecastTimerID}].Equal[Defensive]}) {
/if (${Me.CombatAbility[${i}].RecastTime}>=800) /ini "MakeIni" "Disc" "DiscConditions${Me.CombatAbility[${i}].RecastTimerID}" "$\{Target.Named} && $\{Me.PctHPs}<50 && !$\{Melee.DiscID}"
/if (${Me.CombatAbility[${i}].RecastTime}<800) /ini "MakeIni" "Disc" "DiscConditions${Me.CombatAbility[${i}].RecastTimerID}" "$\{Me.PctHPs}<70 && !$\{Melee.DiscID}"
}
}
/if (${tempDisc.Length}) {
/for z 1 to 12
/if (${Spell[${tempDisc}].Slot[${z}].Find[decrease hitpoints]}||${Spell[${tempDisc}].Slot[${z}].Find[attack]}||${Spell[${tempDisc}].Slot[${z}].Find[increase spell damage]}||${Spell[${tempDisc}].Slot[${z}].Find[increase damage]}||${Spell[${tempDisc}].Slot[${z}].Find[increase critical]}||${Spell[${tempDisc}].Slot[${z}].Find[hundred hands]}||${Spell[${tempDisc}].Slot[${z}].Find[accuracy]}) /ini "MakeIni" "Disc" "DiscCategory${Me.CombatAbility[${i}].RecastTimerID}" "Offensive"
/if (${Spell[${tempDisc}].Slot[${z}].Find[mitiga]}||${Spell[${tempDisc}].Slot[${z}].Find[defens]}||${Spell[${tempDisc}].Slot[${z}].Find[avoid]}${Spell[${tempDisc}].Slot[${z}].Find[parry]}) /ini "MakeIni" "Disc" "DiscCategory${Me.CombatAbility[${i}].RecastTimerID}" "Defensive"
/if (${Spell[${tempDisc}].Slot[${z}].Find[hate]}||${Spell[${tempDisc}].Slot[${z}].Find[hatred]}||${Spell[${tempDisc}].Slot[${z}].Find[taunt]}||${Spell[${tempDisc}].Slot[${z}].Find[aggro]}) /ini "MakeIni" "Disc" "DiscCategory${Me.CombatAbility[${i}].RecastTimerID}" "Aggro"
/if (${Me.CombatAbility[${i}].Slot[${z}].Find[Increase endurance]}) /ini "MakeIni" "Disc" "DiscCategory${Me.CombatAbility[${i}].RecastTimerID}" "EndRegen"
/if (${Spell[${tempDisc}].Slot[${z}].Find[Negative HP Limit]}) /ini "MakeIni" "Disc" "DiscCategory${Me.CombatAbility[${i}].RecastTimerID}" "Delay Death"
/next z
/varset tempDisc
}
/next x
:nexti
/next i
:done
/echo [Disc] complete.
/return