Formatted for SpellCast 2.30.
Features include:
- Variable for controlling idle set
- Variable for controlling Herald’s Gaiters
- Light Obi controls (without AutoExec)
- Automatic strategem use (with availability controls) *Requires the use of outside scritps if macros use
or - Strategem changes depending on which Arts are active, eliminating the need for multiple macros
- Light Arts activation if strategem is used
- HP set control for Devotion (requires easy game macro setup)
- Stoneskin canceling depending on Celerity status
- Haste reminder (requires AddToChat plugin, only activates on self-cast)
- Automatic Afflatus activation for spells
- Body equip delay in resting action to maximize MP recovery
There are some things other WHMs may do that I will not. I refuse to lower my HP in any situation on WHM, so there is no medicine ring support.
If I melee, it’s for shits and giggles so there are no melee rules.
As awesome as Sublimation can be, idling in HP gear to increase Sublimation return could ultimately gimp cure efficiency. Not worth the trade-off to me.
There are no rules to tier down cures based on MP; in the 6 years I’ve been playing this job, I’ve learned the mp requirements for spells and know my thresholds. I also do not block out Cure IV. I know it’s the worst spell hate-wise, but sometimes you need it.
The only target correction is for Afflatus: Solace when used before Sacrifice, because all my macros are
**Reraise script not working for some reason, best to eliminate that changespell for now. Also note casting Raise 3 on someone under AutoStrat rules puts Waterga V >> Deadpersonsname into chat instead of Raise III >> Deadpersonsname. Researching a workaround for this.
Open Unformatted Code In New Window
<?xml version="1.0"?> <spellcast> <config Debug="true" /> <variables clear="yes"> <!-- Defines which set should be equipped in aftercast (in-game macro conrolled) --> <var name="Standing">Enmity</var> <!-- What to wear on not-Lightsday --> <var name="Belt">Pythia Sash +1</var> <!-- Are we running around or mostly stationary? (in-game macro controlled) --> <var name="Shoes">Herald's Gaiters</var> <!-- Auto-Strategem handling --> <var name="StratCount">2</var> <!-- On/Off switch for auto-strategems --> <var name="AutoStrat">1</var> <!-- G15 tank party coverage setup - can remove --> <var name="tank1" /> <var name="tank2" /> </variables> <sets> <group name="WHM"> <!-- As taru, I -never- wear anything on WHM that lowers my HP. This set has enough MND to cap stoneskin. Mainly used for longer fights where enmity buildup can be a problem. With Pythia Sash +1 and Blessed Pumps +1, this set is Enmity -50 (capped). --> <set name="Enmity"> <main>Surya's Staff</main> <sub>Staff Strap</sub> <ammo>White Tathlum</ammo> <head>Mirror Tiara</head> <neck>Beguiling Collar</neck> <lear>Novia Earring</lear> <rear>Roundel Earring</rear> <body>Aristocrat's Coat</body> <hands>Marduk's Dastanas</hands> <lring>Tamas Ring</lring> <rring>Trooper's Ring</rring> <back>Errant Cape</back> <waist>$Belt</waist> <legs>Bls. Trousers +1</legs> <feet>$Shoes</feet> </set> <!-- This set is for Dynamis/Limbus/Einherjar where double dark weather wreaks havok on cures. Also used for short fights where enmity won't factor as much and maximizing MP efficiency is crucial. 47% cure potency, +48 MND, and still maintains Enmity -31. Also Cure V/VI set. --> <set name="MaxMND" BaseSet="Enmity"> <sub>Raptor Strap +1</sub> <head>Selenian Cap</head> <neck>Faith Torque</neck> <hands>Blessed Mitts +1</hands> <rring>Star Ring</rring> <back>Prism Cape</back> <feet>Blessed Pumps +1</feet> </set> <!-- For Devotion, 1504 HP -> 376 Devotion --> <set name="MaxHP" BaseSet="Enmity"> <main>Rsv.Cpt. Mace</main> <sub>Ptr.Prt. Shield</sub> <head>Walahra Turban</head> <neck>Cougar Pendant</neck> <lear>Morukaka Earring</lear> <rear>Cassie Earring</rear> <body>Marduk's Jubbah</body> <hands>Creek F Mitts</hands> <rring>Bomb Queen Ring</rring> <back>Gigant Mantle</back> <waist>Steppe Sash</waist> <legs>Oracle's Braconi</legs> <feet>Creek F Clomps</feet> </set> <!-- For reraise, protect(ra), and shell(ra), where recast values don't particularly matter --> <set name="FastCast" BaseSet="Enmity"> <main>Seveneyes</main> <sub>Muse Tariqah</sub> <head>Selenian Cap</head> <lear>Loquac. Earring</lear> <body>Marduk's Jubbah</body> <feet>Rostrum Pumps</feet> </set> <!-- For haste and raises --> <set name="Recast" BaseSet="FastCast"> <head>Walahra Turban</head> <waist>Swift Belt</waist> </set> <set name="Bar"> <body>Blessed Briault +1</body> <legs>Cleric's Pantaln.</legs> </set> <!-- Divine skill, M.acc, Haste --> <set name="Banish" BaseSet="Enmity"> <main>Neptune's Staff</main> <sub>Light Grip</sub> <rear>Sapphire Earring</rear> <body>Augur's Jaseran</body> <hands>Nashira Gages</hands> <rring>Omega Ring</rring> <legs>Nashira Seraweels</legs> <feet>Nashira Crackows</feet> </set> <set name="Repose" BaseSet="Banish"> <main>Apollo's Staff</main> </set> <!-- hMP +41, can't currently get very much better. (I know, need Goli feet, Legion Scutum, and new craftable body, but I said "very much better" not "zomg best hMP set evar!")--> <set name="Resting" BaseSet="Enmity"> <main>Pluto's Staff</main> <head>Mirror Tiara</head> <neck>Eidolon Pendant</neck> <lear>Relaxing Earring</lear> <rear>Antivenom Earring</rear> <!-- Removed for higher efficiency resting --> <!--<body>Oracle's Robe</body>--> <hands>Oracle's Gloves</hands> <lring>Star Ring</lring> <rring>Star Ring</rring> <back>Felicitas Cape</back> <waist>Austerity Belt</waist> <legs>Oracle's Braconi</legs> <feet>Oracle's Pigaches</feet> </set> </group> </sets> <rules> <if spell="autoset"> <equip when="idle" set="$Standing" /> <equip when="resting" set="Resting" /> <command when="resting">wait 15;input /equip body "Oracle's Robe"</command> </if> <if Type="JobAbility"> <if SubJob="SCH"> <!-- StratCount variable tells how many charges are available to use. This rule checks the variable; if 0 are available it cancels the action, if 1 or more are available it decreases the availability and then increases it again in 2 minutes. --> <if Spell="Accession|Manifestation|Celerity|Alacrity|Penury|Parsimony"> <defaulttarget target="<me>" /> <if Advanced='"$StratCount"="0"'> <cancelspell /> <return /> </if> <else> <command>spellcast var dec StratCount;wait 120;spellcast var inc StratCount</command> </else> </if> <!-- Change Light Arts strategems to Dark Arts equivalents if Dark Arts is active --> <if BuffActive="Dark Arts|Addendum: Black"> <if Spell="Celerity"> <changespell Spell="Alacrity" /> </if> <elseif Spell="Penury"> <changespell Spell="Parsimony" /> </elseif> <elseif Spell="Accession"> <changespell Spell="Manifestation" /> </elseif> </if> <else> <!-- Activate Light Arts if not already active when strategems macros are used --> <if Spell="Celerity" notBuffActive="Light Arts"> <changespell Spell="Light Arts" /> <command when="aftercast">Celerity</command> </if> <elseif Spell="Penury" notBuffActive="Light Arts"> <changespell Spell="Light Arts" /> <command when="aftercast">Penury</command> </elseif> <elseif Spell="Accession" notBuffActive="Light Arts"> <changespell Spell="Light Arts" /> <command when="aftercast">Accession</command> </elseif> <!-- Only reason to use Dark Arts is for access to black magic, so activate Addendum also --> <elseif Spell="Dark Arts"> <command when="aftercast">Addendum: Black</command> </elseif> </else> </if> <if Spell="Devotion"> <!-- In-game macro is simple: /ma "Cure V" <me> /wait 4 /ja "Devotion" <stpt> Aftercast delay is to prevent HP loss from gear swapping too soon...rare, but happens! --> <aftercastdelay delay="2" /> <equip when="aftercast" set="$Standing" /> </if> </if> <elseif Type="WhiteMagic"> <!-- Probably could have used AutoExec to handle day rule but this is unintrusive and never fails me --> <if Advanced='"%WeatherElement" = "Light" OR "%DayElement" = "Light"'> <var cmd="set Belt Korin Obi" /> </if> <else> <var cmd="set Belt Pythia Sash +1" /> </else> <if Spell="Stoneskin"> <!-- Changes cancel delay if Celerity is active. No need for special gear, both idle sets have plenty of MND for capped stoneskin (taru) --> <if notBuffActive="Celerity"> <midcastdelay delay="4" /> <command when="MidCast">cancel 37</command> </if> <else> <midcastdelay delay="2" /> <command when="MidCast">cancel 37</command> </else> </if> <elseif Spell="Cure V*"> <!-- Usually only Cure 5ing myself for Devotion, so put on MaxHP gear and stop parsing. --> <if SpellTargetType="Self" HPGT="600"> <equip when="precast" set="MaxHP" /> <return /> </if> <else> <!-- If a strategem charge is available and I'm not conserving strategems, use Penury to reduce MP cost. Changespell triggers a script since spellcast doesn't like <stal>. --> <if SubJob="SCH" Advanced='"$AutoStrat"="1" AND "$StratCount">"0"'> <if Advanced='"$StratCount">"0"'> <if Spell="Cure V"> <changespell Spell="Waterga V" /> </if> <elseif Spell="Cure VI"> <changespell Spell="Aeroga V"/> </elseif> </if> </if> <!-- Always swap to MaxMND set for Cure V/VI, then return to current idle set --> <equip when="precast" set="MaxMND" /> <equip when="aftercast" set="$Standing" /> </else> </elseif> <!-- For the love of god, max -Enmity for Curagas... --> <elseif Spell="Cura*"> <equip when="precast" set="Enmity"> <feet>Blessed Pumps +1</feet> </equip> <equip when="aftercast" set="$Standing" /> </elseif> <elseif Spell="Regen*"> <equip when="precast"> <body>Cleric's Briault</body> </equip> <equip when="aftercast"> <body>Aristocrat's Coat</body> </equip> </elseif> <elseif Spell="Barstonra|Barwatera|Baraera|Barfira|Barblizzara|Barthundra"> <equip when="precast" set="Bar" /> <castdelay delay=".2" /> <equip when="aftercast" set="$Standing" /> </elseif> <elseif Spell="Haste"> <equip when="precast" set="Recast" /> <equip when="aftercast" set="$Standing" /> <!-- Only notify when Haste is cast on myself, otherwise chatlog spam is excessive. I use <command></command> here instead of <addtochat> </addtochat> because I needed to utilize aftercast without a delay. Requires AddToChat plugin, available here: http://windower.net/plugins/AddToChat.dll --> <if Advanced='"%SpellTargetName" = "Giacorleone"'> <command>pause 170;input //addtochat 121 **************************************** [: Haste :] ****************************************</command> </if> </elseif> <elseif Spell="Reraise*|Protect*|Shell*"> <if Spell="Protectra*|Shellra"> <!-- Damn people always trying to stand as far away as possible... --> <command>input /p %Spell » Stay put! «</command> </if> <!-- If not conserving strats and one is available, use Penury to reduce MP cost --> <elseif Spell="Reraise III" SubJob="SCH" Advanced='"$AutoStrat"="1" AND "$StratCount">"0"'> <changespell Spell="Stonega V" /> </elseif> <equip when="precast" set="FastCast" /> <equip when="aftercast" set="$Standing" /> </elseif> <elseif Spell="Raise*"> <!-- If weakened and a strategem charge is available, use Celerity to reduce recast timer. Otherwise, use Penury to reduce MP consumption. --> <if Spell="Raise III" SubJob="SCH" Advanced='"$AutoStrat"="1" AND "$StratCount">"0"'> <if BuffActive="weakness"> <changespell Spell="Firaga V" /> </if> <else> <changespell Spell="Blizzaga V" /> </else> </if> <equip when="precast" set="Recast" /> <equip when="aftercast" set="$Standing" /> <!-- To avoid wasting time/strategems/mp, announce raises in situations where multiple raisers may be attempting to get one dead person --> <if Area="Dynamis-*|Hazhalm*"> <command when="precast">input /p %Spell » %SpellTarget</command> </if> </elseif> <!--<elseif Spell="Sacrifice" notBuffActive="Afflatus Solace"> <castdelay delay="2" /> <command when="precast">input /ja "Afflatus Solace" <me></command> </elseif>--> <elseif Spell="Esuna" notBuffActive="Afflatus Misery"> <changespell Spell="Afflatus Misery" /> <command when="aftercast">pause 1;input /ma "Esuna" <me></command> </elseif> <elseif Spell="Banish*|Holy"> <equip when="precast" set="Banish" /> </elseif> <elseif Spell="Repose"> <equip when="precast" set="Repose" /> </elseif> </elseif> <!-- Fake spell for Penury/Reraise 3 --> <elseif Spell="Stonega V"> <cancelspell /> <command>exec gia/whm/spells/penrr.ffxi</command> </elseif> <!-- Fake spell for Penury/Cure V --> <elseif Spell="Waterga V"> <cancelspell /> <command>exec gia/whm/spells/penc5.ffxi</command> </elseif> <!-- Fake spell for Penury/Cure VI --> <elseif Spell="Aeroga V"> <cancelspell /> <command>exec gia/whm/spells/penc6.ffxi</command> </elseif> <!-- Fake spell for Celerity/Raise 3 --> <elseif Spell="Firaga V"> <cancelspell /> <command>exec gia/whm/spells/celr3.ffxi</command> </elseif> <!-- Fake spell for Penury/Raise 3 --> <elseif Spell="Blizzaga V"> <cancelspell /> <command>exec gia/whm/spells/penr3.ffxi</command> </elseif> </rules> </spellcast>