Thanks to Aikar for a wonderful plugin and the other xml-contributors for snips and bits of code!
Updated/optimized: 091013
The highlights:
AutoCanceling buffs (utsu, stoneskin, blink, sneak, etc)
Swaps in Dream Boots +1 when sneaking for longer duration
Updated to work with Spellcast 2.30
When melee subjob
swaps in melee TP-building gear when engaging (Joyeuse)
swaps in acc-gear for ranged attacks and reverts back to melee TP after firing if engaged
swaps in WS-gear and reverts back to melee TP if engaged
When mage subjob
Also uses variables for special gear like Obis, Elemental grips, Elemental staves, Commodore Tricorne and Commodore Frac. Change the ones you want to use from 0 to 1.
Good luck!
<?xml version="1.0" encoding="utf-8"?>
<!-- COR.XML by Mojava. Thanks to Aikar for a wonderful plugin. -->
<!-- REQUIRES spellcast 2.30+ -->
<!-- 091008: implemented changes suggested by Frost following Kneeru's inquiry. -->
<spellcast xmlns:xi="http://www.w3.org/2001/XInclude">
<config
RequireVersion="2.30"
Debug="False"
ShowSpellInfo="False"
ShowGearSwaps="False"
/>
<sets>
<group name="COR" default="yes">
<set name="TOWN">
<ammo>Steel bullet</ammo>
<head>Corsair's tricorne</head>
<neck>Peacock amulet</neck>
<lear>Hollow earring</lear>
<rear>Brutal earring</rear>
<body>Commodore frac</body>
<hands>Crimson finger gauntlets</hands>
<waist>Commodore belt</waist>
<lring>Rajas ring</lring>
<rring>Luzaf's ring</rring>
<back>Amemet mantle +1</back>
<legs>Denali kecks</legs>
<feet>Hermes' sandals</feet>
</set>
<!-- RA: earrings handled in the rules-section -->
<!-- due to subjob-dependent gear. -->
<set name="RANGED">
<ammo>Steel Bullet</ammo>
<head>Corsair's tricorne</head>
<neck>Peacock amulet</neck>
<body>Corsair's frac</body>
<hands>Crimson finger gauntlets</hands>
<lring>Behemoth ring</lring>
<rring>Behemoth ring</rring>
<waist>Commodore belt</waist>
<legs>Denali kecks</legs>
<feet>Corsair's bottes</feet>
<back>Amemet mantle +1</back>
</set>
<!-- Caps sword acc on Grt Colibri, switching in more STR -->
<!-- This assumes Sushi + Hunter's roll -->
<set name="TP">
<main>Joyeuse</main>
<head>Walahra turban</head>
<neck>Peacock amulet</neck>
<lear>Hollow earring</lear>
<rear>Brutal earring</rear>
<body>Commodore frac</body>
<hands>Dusk gloves</hands>
<lring>Rajas ring</lring>
<rring>Flame ring</rring>
<waist>Swift belt</waist>
<legs>Denali kecks</legs>
<feet>Denali gamashes</feet>
<back>Forager's mantle</back>
</set>
<set name="SLUG" baseset="RANGED">
<ammo>Steel bullet</ammo>
<body>Commodore frac</body>
<lring>Rajas ring</lring>
<waist>Commodore belt</waist>
<feet>Corsair's bottes</feet>
</set>
<set name="QD">
<waist>Scouter's rope</waist>
<lear>Moldavite earring</lear>
<rear>Drone earring</rear>
<lring>Garrulous ring</lring>
<rring>Emerald ring</rring>
<body>Mirke wardecors</body>
<hands>Commodore gants</hands>
<legs>Denali kecks</legs>
<feet>Corsair's bottes</feet>
</set>
<set name="Resting">
<main>Dark Staff</main>
</set>
<set name="COR-MAGE">
<main>Earth Staff</main>
<head>Corsair's tricorne</head>
<lear>Moldavite earring</lear>
<rear>Drone earring</rear>
<body>Mirke wardecors</body>
<hands>Commodore gants</hands>
<lring>Garrulous ring</lring>
<rring>Emerald ring</rring>
<waist>Scouter's rope</waist>
<legs>Denali kecks</legs>
<feet>Hermes' sandals</feet>
</set>
<set name="HealingMagic" baseset="COR-MAGE">
<main>Light staff</main>
<head>Walahra Turban</head>
<waist>Swift belt</waist>
</set>
<!-- Change the following depending on if you have the HQ or not -->
<set name="DarkStaff"><main>Dark Staff</main></set>
<set name="LightStaff"><main>Light Staff</main></set>
<set name="ThunderStaff"><main>Thunder Staff</main></set>
<set name="IceStaff"><main>Aquilo's Staff</main></set>
<set name="FireStaff"><main>Fire Staff</main></set>
<set name="WindStaff"><main>Wind Staff</main></set>
<set name="WaterStaff"><main>Water Staff</main></set>
<set name="EarthStaff"><main>Earth Staff</main></set>
</group>
</sets>
<variables>
<!-- Elemental Obi definitions. -->
<var name = "IceObi">Hyorin Obi</var>
<var name = "WindObi">Furin Obi</var>
<var name = "EarthObi">Dorin Obi</var>
<var name = "ThunderObi">Rairin Obi</var>
<var name = "WaterObi">Suirin Obi</var>
<var name = "FireObi">Karin Obi</var>
<var name = "DarkObi">Anrin Obi</var>
<var name = "LightObi">Korin Obi</var>
<!-- Elemental Obi's, set to 1 for the ones you have. -->
<var name = "DarkObiAvailable">0</var>
<var name = "LightObiAvailable">0</var>
<var name = "ThunderObiAvailable">0</var>
<var name = "IceObiAvailable">0</var>
<var name = "FireObiAvailable">0</var>
<var name = "WindObiAvailable">0</var>
<var name = "WaterObiAvailable">0</var>
<var name = "EarthObiAvailable">0</var>
<!-- Elemental Grips, set to 1 for the ones you have. -->
<var name = "DarkGrip">0</var>
<var name = "ThunderGrip">0</var>
<var name = "IceGrip">0</var>
<var name = "FireGrip">0</var>
<var name = "WindGrip">0</var>
<var name = "WaterGrip">0</var>
<var name = "EarthGrip">0</var>
<!-- Elemental Staffs, set to 1 for the ones you usually bring. -->
<var name = "DarkStaff">1</var>
<var name = "LightStaff">1</var>
<var name = "ThunderStaff">0</var>
<var name = "IceStaff">1</var>
<var name = "FireStaff">0</var>
<var name = "WindStaff">1</var>
<var name = "WaterStaff">0</var>
<var name = "EarthStaff">1</var>
<!-- Special Equipment, set to 1 for the ones you have. -->
<var name = "CommodoreTricorne">0</var>
<var name = "CommodoreFrac">1</var>
</variables>
<rules>
<if status="idle" SubJob="WHM|RDM|BLM|SMN|BLU|SCH" >
<equip when="idle|aftercast" set="COR-MAGE" />
</if>
<elseif status="resting" SubJob="WHM|RDM|BLM|SMN|BLU|SCH" >
<equip when="resting" set="Resting" />
</elseif>
<elseif status="idle|resting" >
<equip when="idle|aftercast" set="TOWN" />
</elseif>
<elseif status="engaged">
<equip when="engaged|aftercast" set="TP" />
</elseif>
<if CommandPrefix="/ra*">
<if SubJob="WHM|RDM|BLM|SMN|BLU|SCH">
<equip when="precast|midcast" set="RANGED">
<main lock="yes">Trailer's Kukri</main>
<lear lock="yes">Hollow earring</lear>
<rear lock="yes">Drone earring</rear>
</equip>
</if>
<elseif SubJob="RNG">
<equip when="precast|midcast" set="RANGED">
<lear lock="yes">Hollow earring</lear>
<rear lock="yes">Beater's earring</rear>
<!-- <waist lock="yes">Gun belt</waist> <== use this unless you have Commodore belt -->
</equip>
</elseif>
<else>
<equip when="precast|midcast" set="RANGED">
<lear lock="yes">Hollow earring</lear>
<rear lock="yes">Drone earring</rear>
</equip>
</else>
</if>
<elseif type="WhiteMagic">
<equip when="precast" set="COR-MAGE"/>
<if skill="HealingMagic">
<equip when="precast" set="HealingMagic" />
<if Spell="Cur*">
<if Spell="Cure III" MPLT="46">
<changespell Spell="Cure II" />
</if>
<elseif Spell="Cure II" MPLT="24">
<changespell Spell="Cure" />
</elseif>
</if>
</if>
<if spell="Reraise">
<if BuffActive="Reraise">
<action type="midcastdelay" delay="3.0" />
<action type="Command" when="midcast">cancel 113</action>
</if>
</if>
<elseif spell="Stoneskin">
<if BuffActive="Stoneskin">
<action type="midcastdelay" delay="3.0" />
<action type="Command" when="midcast">cancel 37</action>
</if>
</elseif>
<elseif Spell="Sneak">
<if advanced = '( "%Target" = "%PlayerName" ) OR "%TargetType" != "PLAYER"' >
<addtochat color = "57">SelfSneak triggered -- using Dream boots +1 [TargetType: %TargetType]</addtochat>
<changetarget Target="<me>" />
<equip when="precast">
<feet lock="yes">Dream boots +1</feet>
</equip>
</if>
<if BuffActive="Sneak">
<action type="midcastdelay" delay="2.0" />
<action type="Command" when="midcast">cancel 71</action>
</if>
</elseif>
<elseif Spell="Blink" >
<if BuffActive="Blink" >
<action type="Command" when="midcast">cancel 36</action>
</if>
</elseif>
</elseif>
<elseif type="Ninjutsu">
<if spell="Utsusemi: Ni">
<action type="midcastdelay" delay="1.0" />
</if>
<elseif spell="Utsusemi: Ichi">
<action type="midcastdelay" delay="3.3" />
<action type="Command" when="midcast">cancel 66</action>
</elseif>
<elseif Spell="Monomi*">
<addtochat color = "57">Monomi triggered -- using Dream boots +1</addtochat>
<equip when="precast">
<feet lock="yes">Dream boots +1</feet>
</equip>
<if BuffActive="Sneak">
<action type="midcastdelay" delay="3.3" />
<action type="Command" when="midcast">cancel 71</action>
</if>
</elseif>
</elseif>
<!-- WEAPONSKILL -->
<elseif Type="WeaponSkill">
<if TPGT="99">
<if notbuffactive="Flash">
<if notbuffactive="Amnesia">
<equip when="precast|midcast" set="SLUG" />
<command when="aftercast" delay="6">input /lockon on</command>
</if>
</if>
<else>
<action type="AddToChat" color="39">WS blocked while Amnesia/Flash is in effect.</action>
<action type="cancelspell"/>
</else>
</if>
</elseif>
<!-- QUICK DRAW -->
<elseif type="CorsairShot" notbuffactive="Amnesia">
<equip when="precast" set="QD" />
<!-- Elemental Obi check. -->
<if advanced='(("%SpellElement" = "%DayElement") OR ("%SpellElement" = "%WeatherElement")) AND "$%SpellElementObiAvailable" = "1"'>
<equip when="precast|midcast">
<waist lock="yes">$%SpellElementObi</waist>
</equip>
<addtochat color = "57">Using $%SpellElementObi.</addtochat>
</if>
<!-- Treating Elemental Shots and Elemental Staffs. -->
<if SubJob="WHM|RDM|BLM|SMN|BLU|SCH">
<if Advanced='"$%SpellElementStaff" == "1"'>
<action type="equip" when="precast|midcast" set="%SpellElementStaff" />
<addtochat color = "57">Using %SpellElement Staff.</addtochat>
</if>
<!-- Elemental Grip check. -->
<if Advanced='"$%SpellElementGrip" == "1"'>
<equip when="midcast">
<sub lock="true">%SpellElement Grip</sub>
</equip>
<addtochat color = "57">Using %SpellElement Grip.</addtochat>
</if>
<if Spell = "Light Shot|Dark Shot">
<equip when="precast|midcast">
<lear lock="yes">Drone earring</lear>
</equip>
</if>
</if>
<!-- Don't waste TP when QD if melee Sub. -->
<elseif SubJob="RNG|NIN|WAR|DNC|THF|SAM">
<if Spell = "Light Shot|Dark Shot">
<equip when="precast|midcast">
<lear lock="yes">Drone earring</lear>
</equip>
</if>
</elseif>
</elseif>
<!-- PHANTOM ROLL - Luzaf's handled in macros instead of here. -->
<elseif advanced='( "%Spell" = "* Roll" ) AND ( "$CommodoreTricorne" == "1" )'>
<addtochat color = "57">Using Commodore Tricorne.</addtochat>
<equip when="precast">
<head lock="yes">Commodore Tricorne</head>
</equip>
</elseif>
<!-- RANDOM DEAL -->
<elseif advanced='( "%Spell" = "Random Deal" ) AND ( "$CommodoreFrac" == "1" )'>
<addtochat color = "57">Using Commodore Frac.</addtochat>
<equip when="precast">
<body lock="yes">Commodore Frac</body>
</equip>
</elseif>
<!-- FOR DEBUGGING -->
<!-- <else>
<addtochat color = "57">COR.xml never triggered any action on this event: Skill="%Skill", Status="%status", Spell="%spell" and Type="%Type".</addtochat>
</else> -->
</rules>
</spellcast>