Code:
<?xml version="1.0"?>
<!-- Based off of Aikar's BLM Template with much modification
Credit to ddaydj for SorcRing code (copy of SMN Conjurer's Ring code)
Last Updated 2010/04/22
Read comments before changing anything.
-->
<spellcast xmlns:xi="http://www.w3.org/2001/XInclude">
<config
RequireVersion="2.30"
Debug = "True"
HideErrors = "False"
ShowGearSwaps = "False"
quickcommands = "True"
showspellinfo = "False"/>
<variables clear="True">
<!-- Sleep timers, announces to chat when sleep is wearing off. set to 0 to not use. -->
<!-- (note: this is sort of very obvious usage of 3rd party programs, so I've set them to /echo so only you will see) -->
<var name="SleepTimers">1</var>
<var name="StormTimers">1</var>
<!-- set this to 1 if you want an echo/chat reminder that Sublimation is complete -->
<var name="SubReminder">1</var>
<!-- set this to the percentage of TP you want to start locking weapons at -->
<var name="lockTP">100</var>
<!-- set these to the Elemental Staves you use -->
<var name="LightStaff">Light Staff</var>
<var name="DarkStaff">Pluto's Staff</var>
<var name="FireStaff">Vulcan's Staff</var>
<var name="IceStaff">Aquilo's Staff</var>
<var name="WindStaff">Auster's Staff</var>
<var name="EarthStaff">Terra's Staff</var>
<var name="ThunderStaff">Jupiter's Staff</var>
<var name="WaterStaff">Neptune's Staff</var>
<!-- set these to 1 if you want to use the Elemental Obi, otherwise set to 0 -->
<var name="LightObi">0</var>
<var name="DarkObi">0</var>
<var name="FireObi">0</var>
<var name="IceObi">1</var>
<var name="WindObi">0</var>
<var name="EarthObi">0</var>
<var name="ThunderObi">1</var>
<var name="WaterObi">0</var>
<!-- set these to 1 if you want to use the Elemental Grips, otherwise set to 0 -->
<var name="LightGrip">0</var>
<var name="DarkGrip">0</var>
<var name="FireGrip">0</var>
<var name="IceGrip">0</var>
<var name="WindGrip">0</var>
<var name="EarthGrip">0</var>
<var name="ThunderGrip">0</var>
<var name="WaterGrip">0</var>
<!-- set this to 1 if you want to use Ugg Pendant, otherwise set to 0 -->
<var name="UggPendant">1</var>
<!-- set this to 1 if you want to use Sorcerer's Ring, otherwise set to 0 -->
<var name="SorcRing">0</var>
<!-- set this to your HP before Convert HP to MP equipment and after HP+ equipment -->
<var name="BaseHP">1000</var>
<!-- set to 1 to use Balrahn's Ring for Assault, otherwise set to 0 -->
<var name="BalrahnsRing">0</var>
<!-- set this to 1 to use boost Sublimation gear, otherwise set to 0 -->
<var name="SubHead">1</var>
<var name="SubBody">1</var>
<!-- set this to 1 to use Argute Loafers, 2 for Argute Loafers +1 with Celerity and Alacrity, otherwise set to 0 -->
<var name="Loafers">0</var>
</variables>
<sets>
<group name="Default" default="Yes">
<!-- This will be the baseset also used when Addendum: Black is active -->
<set name="BLM_Mode">
<main>$EarthStaff</main>
<sub>Staff Strap</sub>
<ammo>Incantor Stone</ammo>
<head>Scholar's Mortarboard</head>
<neck>Orochi Nodowa</neck>
<lear>Darkness Earring</lear>
<rear>Loquacious Earring</rear>
<body>Pluviale</body>
<hands>Argute Bracers</hands>
<lring>Patronus Ring</lring>
<rring>Jelly Ring</rring>
<back>Cheviot Cape</back>
<waist>Qiqirn Sash +1</waist>
<legs>Savant's Pants</legs>
<feet>Scholar's Loafers</feet>
</set>
<!-- This will be used when Addendum: White is active -->
<set name="WHM_Mode">
<main>$EarthStaff</main>
<sub>Staff Strap</sub>
<ammo>Incantor Stone</ammo>
<head>Scholar's Mortarboard</head>
<neck>Orochi Nodowa</neck>
<lear>Darkness Earring</lear>
<rear>Loquacious Earring</rear>
<body>Pluviale</body>
<hands>Argute Bracers</hands>
<lring>Patronus Ring</lring>
<rring>Jelly Ring</rring>
<back>Cheviot Cape</back>
<waist>Qiqirn Sash +1</waist>
<legs>Savant's Pants</legs>
<feet>Scholar's Loafers</feet>
</set>
<!-- MP Recovered while healing equipment -->
<set name="Resting" baseset="BLM_Mode">
<main>$DarkStaff</main>
<neck>Grandiose Chain</neck>
<lear>Antivenom Earring</lear>
<body>Errant Hpl.</body>
<rring>Star Ring</rring>
<back>Invigorating Cape</back>
</set>
<!-- Elemental skill equipment, I include MAB gear as well -->
<set name="ElementalMagic">
<neck>Elemental Torque</neck>
<lear>Cass. Earring</lear>
<rear>Helenus's Earring</rear>
<body>Teal Saio</body>
<hands>Vicious Mufflers</hands>
<legs>Teal Slops</legs>
</set>
<!-- Enfeebling skill equipment: Dark Arts -->
<set name="EnfeeblingMagicDark">
<neck>Spider Torque</neck>
<body>Scholar's Gown</body>
<legs>Savant's Pants +1</legs>
</set>
<!-- Enfeebling skill equipment: Light Arts -->
<set name="EnfeeblingMagicLight">
<neck>Spider Torque</neck>
<body>Errant Hpl.</body>
<legs>Savant's Pants +1</legs>
</set>
<set name="HealingMagic">
<neck>Fylgja Torque</neck>
<body>Errant Houppelande</body>
<rring>Serket Ring</rring>
<legs>Scholar's pants</legs>
</set>
<set name="EnhancingMagic">
<neck>Enhancing Torque</neck>
<body>Argute Gown</body>
<legs>Scholar's Pants+1></legs>
</set>
<set name="DarkMagic">
<lear>Abyssal Earring</lear>
<body>Scholar's Gown</body>
<legs>Argute Pants</legs>
</set>
<set name="DivineMagic" />
<!-- Intelligence equipment (i.e. Bind, Sleep). -->
<set name="Intelligence">
<sub>Bugard Strap +1</sub>
<ammo>Phantom Tathlum</ammo>
<lear>Abyssal Earring</lear>
<rear>Moldavite Earring</rear>
<lring>Snow Ring</lring>
<rring>Snow Ring</rring>
<back>Prism Cape</back>
<waist>Cognition Belt</waist>
<feet>Custom M Boots</feet>
</set>
<!-- Mind equipment (i.e. Paralyze, Slow). -->
<set name="Mind">
<sub>Reign Grip</sub>
<head>Teal Chapeau</head>
<lear>Star Earring</lear>
<body>Errant Hpl.</body>
<lring>Star Ring</lring>
<back>Sunbeam Cape</back>
<waist>Penitent's rope</waist>
<legs>Savant's Pants +1</legs>
<feet>Teal Pigaches</feet>
</set>
<!-- Fast Cast / Haste equipment -->
<set name="FastCast">
<rear>Loquacious Earring</rear>
<ammo>Incantor Stone</ammo>
<feet>Scholar's Loafers</feet>
</set>
<set name="EnmityDown">
<sub>Staff Strap</sub>
<head>Teal Chapeau</head>
<body>Errant Hpl.</body>
<hands>Argute Bracers</hands>
<waist>Penitent's rope</waist>
<legs>Mahatma Slops</legs>
</set>
</group>
</sets>
<rules>
<!-- Utility: if you have no Target currently, and casting a spell that can be cast on self, then cast on self (buffs). -->
<if validtargets="*Self*" targettype="None" spelltarget="<t>">
<changetarget Target="<me>" />
</if>
<!-- Utility: if targetting a monster, but casting a spell that can not be cast on monsters, then cast on self (buffs). -->
<if spelltarget="<t>" targettype="MONSTER" notvalidtarget="*Enemy*" validtarget="*Self*">
<changetarget Target="<me>" />
</if>
<!-- Dont parse this file if under level 73... ie capped areas -->
<if mlvllt="73">
<return />
</if>
<if spell="Teleport*|Warp*|Recall*">
<return />
</if>
<if spell="Sublimation" advanced="$SubHead=1 OR $SubBody=1">
<if advanced="$SubHead=1">
<equip when="Precast|Midcast"><head>Scholar's Mortarboard</head></equip>
</if>
<if advanced="$SubBody=1">
<equip when="Precast|Midcast"><body>Argute Gown</body></equip>
</if>
<!-- Reminder that Sublimation has completed -->
<if advanced="$SubReminder=1" buffactive="Sublimation: Complete">
<action type = "AddToChat" color = "204">Sublimation Completed</action>
</if>
</if>
<!-- set of gear to equip when Addendum: Black is active and finished casting a spell or coming back from resting mp (idle set) -->
<if buffactive="Addendum: Black|Dark Arts">
<equip when="Idle|Aftercast" set="BLM_Mode" />
</if>
<!-- set of gear to equip when Addendum: White is active and finished casting a spell or coming back from resting mp (idle set) -->
<elseif buffactive="Addendum: White|Light Arts">
<equip when="Idle|Aftercast" set="WHM_Mode" />
</elseif>
<else>
<equip when="Idle|Aftercast" set="WHM_Mode" />
</else>
<!-- set of gear to equip when resting -->
<equip when="Resting" set="Resting" />
<!--Equips Sorcerer's's Ring if Latent effect is active and enabled-->
<if advanced='$SorcRing=1 AND %HP<$BaseHP*.76 AND %TP<100'>
<equip when="MidCast|AfterCast">
<rring lock="yes">Sorcerer's's Ring</rring>
</equip>
</if>
<!-- Disables equipment switching that would cause loss of TP. lock does not work because of changes with $ElementalStaff-->
<if tpgt="$lockTP">
<disable slot="Main|Sub|Range" />
</if>
<else>
<enable slot="Main|Sub|Range" />
</else>
<if advanced="$BalrahnsRing=1" area="Nyzul*|Leujaoam*|Mamool*|Periqia|Lebros*|Ilrusi*|*Remnants">
<equip when="Idle|Aftercast|Engaged">
<lring lock="yes">Balrahn's Ring</lring>
</equip>
</if>
<!-- Equips Argutes Loafers or +1 version for Celerity & Alacrity -->
<if advanced='$Loafers=1 AND "%WeatherElement"="%spellElement"' buffactive="Celerity|Alacrity">
<equip when="PreCast|MidCast">
<feet>Argute Loafers</feet>
</equip>
</if>
<elseif advanced='$Loafers=2 AND "%WeatherElement"="%spellElement"' buffactive="Celerity|Alacrity">
<equip when="PreCast|MidCast">
<feet>Argute Loafers +1</feet>
</equip>
</elseif>
<if spell="Stun">
<!-- Equip gear that helps stun, and nothing else -->
<equip set="DarkMagic|FastCast">
<main>$ThunderStaff</main>
<head>Walahra Turban</head>
<waist>Swift Belt</waist>
</equip>
</if>
<else>
<!-- Elemental Staff accoring to spell -->
<equip when="Midcast"><main>$%spellElementStaff</main></equip>
<!-- Elemental Grip checks. Are we casting an EnfeebleMagic, or are we casting on a resistant mob? -->
<if Mode="OR" Notskill="ElementalMagic" Target="Tiamat|Genbu|Suzaku|Seiryu|Byakko|Kirin|Jormungand|Ouryu|Vrtra|Cerberus|Khimaira|Fafnir|Nidhogg|Aspidochelone|King Behemoth|Tinnin|Sarameya|Tyger|Jailer of Love">
<if advanced='"$%spellElementGrip" == "1"'>
<equip when="Midcast">
<sub lock="yes">%spellElement Grip</sub>
</equip>
</if>
</if>
<!-- If were handling spells -->
<if skill="*Magic">
<!-- If enfeebling magic, equip proper enfeebling gear -->
<if skill="EnfeeblingMagic">
<if spell="Bind|Blind*|Dispel|Gravity|Poison*|Sleep*">
<equip when="Midcast" set="FastCast|Intelligence|EnfeeblingMagicDark" />
</if>
<elseif spell="Paralyze*|Silence|Slow*">
<equip when="Midcast" set="FastCast|EnfeeblingMagicLight|Mind" />
</elseif>
<else>
<equip when="Midcast" set="FastCast|EnfeeblingMagic" />
</else>
<if buffactive="Accession|Manifestation">
<equip set="EnmityDown" />
</if>
</if>
<!-- If elemental magic, equip proper elemental gear-->
<elseif skill="ElementalMagic">
<if mppsftercastlt="50" advanced="$UggPendant == 1">
<equip when="Midcast">
<neck lock="yes">Uggalepih Pendant</neck>
</equip>
</if>
<if notspell="*helix">
<equip when="Precast|Midcast" set="Intelligence|ElementalMagic" />
</if>
<else>
<equip when="Precast|Midcast" set="ElementalMagic|Intelligence" />
</else>
<!-- Handle Elemental Obi's -->
<if advanced='("%spellElement" = "%WeatherElement" OR "%spellElement" = "%DayElement") AND "$%spellElementObi" = "1"'>
<if Element="Dark"><equip when="Midcast"><waist lock="yes">Anrin Obi</waist></equip></if>
<elseif Element="Light"><equip when="Midcast"><waist lock="yes">Korin Obi</waist></equip></elseif>
<elseif Element="Thunder"><equip when="Midcast"><waist lock="yes">Rairin Obi</waist></equip></elseif>
<elseif Element="Ice"><equip when="Midcast"><waist lock="yes">Hyorin Obi</waist></equip></elseif>
<elseif Element="Fire"><equip when="Midcast"><waist lock="yes">Karin Obi</waist></equip></elseif>
<elseif Element="Wind"><equip when="Midcast"><waist lock="yes">Furin Obi</waist></equip></elseif>
<elseif Element="Water"><equip when="Midcast"><waist lock="yes">Suirin Obi</waist></equip></elseif>
<elseif Element="Earth"><equip when="Midcast"><waist lock="yes">Dorin Obi</waist></equip></elseif>
</if>
</elseif>
<!-- White Magic Rules-->
<elseif skill="HealingMagic">
<if spell="Cure*|Curaga*">
<equip when="Midcast">
<main>$LightStaff</main>
</equip>
</if>
<equip when="Midcast" set="FastCast|Mind|HealingMagic" />
<if buffactive="Accession|Manifestation">
<equip set="EnmityDown" />
</if>
</elseif>
<elseif skill="EnhancingMagic">
<if spell="Stoneskin|En*|Phalanx*">
<if buffactive="Accession|Manifestation">
<equip set="EnmityDown" />
</if>
</if>
<if spell="Stoneskin">
<midcastdelay delay="6" />
<equip when="Midcast" set="FastCast|EnhancingMagic|Mind" />
</if>
<!-- Equip for Enspells -->
<elseif spell="En*">
<equip when="Midcast" set="Intelligence|EnhancingMagic" />
</elseif>
<elseif spell="Phalanx*">
<equip when="Midcast" set="EnhancingMagic" />
</elseif>
<else>
<equip when="Midcast" set="FastCast|EnhancingMagic" />
<if buffactive="Accession|Manifestation">
<equip set="EnmityDown" />
</if>
</else>
</elseif>
<else>
<!-- For any other type of spell, just equip matching set name. -->
<equip when="Precast|Midcast" set="FastCast|%skill" />
<if buffactive="Accession|Manifestation">
<equip set="EnmityDown" />
</if>
</else>
</if>
<!-- Timers for when sleep is wearing off. -->
<if advanced="$SleepTimers=1">
<if spell="Sleep II|Sleepga II">
<cmd when="Aftercast">spellcast var inc sleepid;wait 45;input /echo [$sleepid:%spell] <%Target> Wearing off in 45s</cmd>
<cmd when="Aftercast">wait 75;input /echo [$sleepid:%spell] <%Target> Wearing off in 15s</cmd>
<cmd when="Aftercast">wait 85;input /echo [$sleepid:%spell] <%Target> Wearing off in 5s;spellcast var dec sleepid;</cmd>
</if>
<elseif spell="Sleep|Sleepga">
<cmd when="Aftercast">spellcast var inc sleepid;wait 45;input /echo [$sleepid:%spell] <%Target> Wearing off in 15s</cmd>
<cmd when="Aftercast">wait 55;input /echo [$sleepid:%spell] <%Target> Wearing off in 5s;spellcast var dec sleepid;</cmd>
</elseif>
</if>
<if advanced="$StormTimers=1">
<if spell="*storm">
<cmd when="Aftercast">spellcast var inc stormid;wait 150;input /echo [%spelltarget:%spell] <%Target> Wearing off in 30s</cmd>
<cmd when="Aftercast">wait 175;input /echo [%spelltarget:%spell] <%Target> Wearing off in 5s;spellcast var dec stormid;</cmd>
</if>
</if>
<!-- Reminder that Sublimation has completed if active after an action -->
<if advanced="$SubReminder=1" buffactive="Sublimation: Complete">
<cmd when="Aftercast">input /echo Sublimation Complete</cmd>
</if>
<!-- Auto cancel sneak/utsu/stoneskin/blink when recasting them. REQUIRES CANCEL PLUGIN -->
<if spell="Sneak" buffactive="Sneak" advanced='"%spelltarget"="%Playername" OR "%spelltarget"="<me>" OR ("%Target"="%Playername" AND "%spelltarget"="<t>")'>
<cmd when="Midcast">cancel 71</cmd>
<midcastdelay delay="2.1" />
</if>
<elseif spell="Utsusemi: Ichi" buffactive="Copy Image">
<midcastdelay delay="1.6" />
<cmd when="Midcast">cancel 66</cmd>
</elseif>
<elseif spell="Stoneskin" buffactive="Stoneskin">
<cmd when="Midcast">cancel 37</cmd>
<midcastdelay delay="3.6" />
</elseif>
<elseif spell="Blink" buffactive="Blink">
<cmd when="Midcast">cancel 36</cmd>
<midcastdelay delay="3.3" />
</elseif>
</else>
</rules>
</spellcast>