
Originally Posted by
diemos
It might be easier if you posted a link to your specific file. The smallest change can make the biggest difference.
Iirc I've only changed gear and the chatmode for sleep timers. Also, I know there's a lot of redundant swaps in there that need cleaned up but it works(usually
).
Code:
<?xml version="1.0" ?>
<!--
===================================================
||
|| Aikar's BLM SpellCast Template
||
|| This file is designed to be easily used by others.
|| Simply editing in your own gear and modifying the variables up top
|| should be all that is needed to make use of this file.
||
|| Please be sure to configure the variables prior to use.
||
|| If you have any questions - Please post on the forums.
===================================================
-->
<spellcast>
<config RequireVersion="2.18" />
<variables>
<!-- 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 turn off when around people you dont trust -->
<var name="SleepTimers">1</var>
<!-- use BLM AF2 pants or not? Set to 0 if you do not have it -->
<var name="BLMAF2Pants">1</var>
<!-- use Sorc ring or not? set to 0 if you do not have it or dangerous location -->
<var name="Ring">1</var>
<!-- use Ugg Pendant or not? set to 0 if you do not have it. -->
<!-- Set HP Variables for what the maximum amount of HP you can have to trigger sorc ring is for each subjob -->
<var name="UggPendant">1</var>
<var name="RDMRingHP">826</var>
<var name="WHMRingHP">583</var>
<var name="NINRingHP">597</var>
<!-- Elemental Grips, set to 1 for each you have -->
<var name="LightGrip">0</var>
<var name="DarkGrip">1</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, input what staff to use for each element here -->
<var name="IceStaff">Aquilo's Staff</var>
<var name="DarkStaff">Pluto's Staff</var>
<var name="ThunderStaff">Jupiter's Staff</var>
<var name="LightStaff">Light Staff</var>
<var name="WindStaff">Auster's Staff</var>
<var name="FireStaff">Vulcan's Staff</var>
<var name="EarthStaff">Terra's Staff</var>
<var name="WaterStaff">Water Staff</var>
<!-- Elemental Obi's, set to 1 for the ones you have. -->
<var name="DarkObi">1</var>
<var name="LightObi">0</var>
<var name="ThunderObi">1</var>
<var name="IceObi">1</var>
<var name="FireObi">0</var>
<var name="WindObi">0</var>
<var name="WaterObi">0</var>
<var name="EarthObi">0</var>
</variables>
<sets>
<group name="Main" default="yes">
<set name="Idle">
<main>$EarthStaff</main>
<sub>Bugard Strap +1</sub>
<ammo>Phantom Tathlum</ammo>
<head>igqira tiara</head>
<neck>Lmg. medallion</neck>
<lear>Moldavite Earring</lear>
<rear>abyssal earring</rear>
<body>sorcerer's coat</body>
<hands>zenith mitts</hands>
<lring>patronus ring</lring>
<rring>jelly ring</rring>
<back>cheviot cape</back>
<waist>Penitent's Rope</waist>
<legs>goliard trews</legs>
<feet>goliard clogs</feet>
</set>
<set name="FastCast">
<feet>Rostrum Pumps</feet>
<rear>Loquac. Earring</rear>
</set>
<set name="Resting" BaseSet="Idle">
<body>oracle's robe</body>
<main>$DarkStaff</main>
<sub>Raptor Strap +1</sub>
<head>Oracle's Cap</head>
<waist>Qiqirn Sash +1</waist>
<feet>goliard clogs</feet>
<hands>Oracle's Gloves</hands>
<neck>grandiose chain</neck>
<lear>Relaxing Earring</lear>
<rear>Antivenom Earring</rear>
<legs>yigit seraweels</legs>
<back>cheviot Cape</back>
</set>
<set name="MinusHP">
<sub>Dark grip</sub>
<head>Wivre hairpin</head>
<body>black cotehardie</body>
<back>blue Cape</back>
<lear>Astral earring</lear>
<rring>Ether ring</rring>
<lring>serket ring</lring>
<hands>Zenith Mitts</hands>
<legs>zenith slacks</legs>
<feet>Errant pigaches</feet>
</set>
<set name="FullDamage" BaseSet="Idle">
<main lock="yes">Teiwaz</main>
<sub>Bugard Strap +1</sub>
<ammo>Phantom Tathlum</ammo>
<neck>Lmg. medallion</neck>
<lear>Moldavite Earring</lear>
<rear>Abyssal Earring</rear>
<head>Demon helm +1</head>
<body>igqira weskit</body>
<hands>Zenith Mitts</hands>
<lring>snow Ring</lring>
<rring>snow Ring</rring>
<back>prism cape</back>
<waist>Penitent's Rope</waist>
<legs>teal Slops</legs>
<feet>goliard clogs</feet>
</set>
<set name="HighResist" BaseSet="FullDamage">
<hands>Wzd. Gloves +1</hands>
<body>igqira weskit</body>
<head>Sorcerer's Petas.</head>
<rring>Omega ring</rring>
<lring>Balrahn's ring</lring>
<neck>Elemental torque</neck>
<feet>Numerist Pumps</feet>
<back>merciful cape</back>
</set>
<set name="MidResist" BaseSet="FullDamage">
<body>igqira weskit</body>
<head>Demon helm +1</head>
<feet>Numerist Pumps</feet>
</set>
<set name="LightResist" BaseSet="FullDamage">
<body>igqira weskit</body>
</set>
<set name="DarkMagic">
<legs>Wizard's Tonban</legs>
<sub>dark grip</sub>
<lear>Dark Earring</lear>
<head>Nashira turban</head>
<feet>Igqira huaraches</feet>
<rear>Abyssal Earring</rear>
<waist>swift belt</waist>
<body>oracle's robe</body>
<hands>sorcerer's gloves</hands>
<rring>Omega ring</rring>
<lring>Balrahn's ring</lring>
<neck>Dark Torque</neck>
<back>merciful cape</back>
</set>
<set name="EnfeeblingMagic">
<body>Wzd. Coat +1</body>
<head>Igqira Tiara</head>
<neck>spider Torque</neck>
<hands>Mst.Cst. Bracelets</hands>
<lear>Enfeebling Earring</lear>
<legs>Igqira Lappa</legs>
<rring>Omega ring</rring>
<lring>Balrahn's ring</lring>
</set>
<set name="HealingMagic" />
<set name="DivineMagic" />
<set name="EnhancingMagic" BaseSet="Idle">
<main lock="yes">Kirin's pole</main>
<sub>Bugard Strap +1</sub>
<body>Errant Hpl.</body>
<neck>faith torque</neck>
<hands>devotee's mitts</hands>
<head>goliard chapeau</head>
<rring>omega ring</rring>
<back>prism cape</back>
<legs>mahatma slops</legs>
<feet>Igqira huaraches</feet>
</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>">
<action type="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*">
<action type="changetarget" target="<me>" />
</if>
<!-- dont parse this file if under level 73... ie capped areas
<if MLVLLT="75"> <action type="return" /> </if>-->
<!-- set of gear to equip when finished casting a spell or coming back from resting mp (idle set) -->
<action type="equip" when="Idle|aftercast" set="Idle" />
<!-- set of gear to equip when resting -->
<action type="equip" when="Resting" set="Resting" />
<if Spell="Stun">
<!-- equip gear that helps stun, and nothing else -->
<action type="equip" set="DarkMagic|FastCast">
<main>$ThunderStaff</main>
</action>
<!-- these codes just print Stun in auto translate into chat. -->
<action type="command">input /echo \xFD\x07\x02\x12\xFC\xFD >> <%SpellTarget></action>
</if>
<else>
<!-- equip fast cast gear -->
<action type="equip" Set="FastCast" />
<!-- Elemental Grip checks. Are we casting an enfeeble, 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"'>
<action type="equip" when="midcast">
<sub lock="true">%SpellElement Grip</sub>
</action>
</if>
</if>
<!-- if were handling spells -->
<if Skill="*Magic">
<!-- if this is elemental magic (nukes/dot's, then do special handling -->
<if Skill="ElementalMagic">
<if Spell="Frost|Drown|Rasp|Burn|Shock|Choke">
<!-- equip elemental/INT gear for DoT's -->
<action type="equip" when="precast|midcast" Set="HighResist" />
</if>
<else>
<!-- this is an actual nuke. Check target to be a known high resist mob (and that ES is not active) -->
<if Target="Tiamat|Genbu|Suzaku|Seiryu|Byakko|Kirin|Jormungand|Ouryu|Vrtra|Cerberus|Khimaira|Sarameya|Tyger|Jailer of Love" NotBuffActive="Elemental Seal">
<action type="equip" when="precast|midcast" Set="HighResist" />
</if>
<else>
<!-- if mob is not high resist, is it a mid resist mob? -->
<if target="Fafnir|Nidhogg|Aspidochelone|King Behemoth|Tinnin" NotBuffActive="Elemental Seal">
<action type="equip" when="precast|midcast" Set="MidResist" />
</if>
<else>
<!-- Normal mob, go full damage gear. -->
<if mode="or" Area="Dynamis *|Hazhalm*">
<action type="equip" when="precast|midcast" Set="LightResist" />
</if>
<else>
<action type="equip" when="precast|midcast" Set="FullDamage" />
</else>
<!-- only equip pendant in situations you would equip full damage gear -->
<if MPPAfterCastLT="50" Advanced="$UggPendant==1">
<action type="equip" when="midcast">
<neck lock="yes">Uggalepih Pendant</neck>
</action>
</if>
</else>
<!-- check for Sorc Ring if mid or low resist mob. HP values to compare to are in variables above. -->
<if advanced='$Ring == 1'>
<!-- make sure we have an HP variable set for current subjob -->
<if Advanced='"$%SubJobRingHP" !="\$%SubJobRingHP"'>
<if Advanced='%HP > $%SubJobRingHP'>
<!-- if you have too much HP at the time of casting, equip minus hp -->
<action type="equip" set="MinusHP" />
</if>
</if>
<else>
<!-- if no HP amount is specified for the current subjob, just always equip minushp as precast -->
<action type="equip" set="MinusHP" />
</else>
<action type="equip" when="midcast">
<lring>Sorcerer's Ring</lring>
</action>
</if>
</else>
</else>
</if>
<else>
<if NotSpell="Blink|Sneak|Invisible|Warp|Warp II|Bar*">
<!-- for any other type of spell, just equip matching set name. -->
<action type="equip" when="precast|midcast" Set="Idle|%Skill" />
</if>
</else>
</if>
<else>
<action type="equip" when="precast|midcast" Set="Idle" />
</else>
<!-- so i can see in general how much my drain did. If Ring=0 then its a dangerous spot and shouldnt drop HP. -->
<if Spell="Drain" Advanced="$Ring==1">
<action type="equip" set="MinusHP" />
</if>
<!-- Handle Elemental Obi's -->
<if Advanced='("%SpellElement" = "%WeatherElement" OR "%SpellElement" = "%DayElement") AND "$%SpellElementObi" = "1"'>
<if Element="Dark"><action type="equip" when="midcast"><waist lock="yes">Anrin Obi</waist></action></if>
<elseif Element="Light"><action type="equip" when="midcast"><waist lock="yes">Korin Obi</waist></action></elseif>
<elseif Element="Thunder"><action type="equip" when="midcast"><waist lock="yes">Rairin Obi</waist></action></elseif>
<elseif Element="Ice"><action type="equip" when="midcast"><waist lock="yes">Hyorin Obi</waist></action></elseif>
<elseif Element="Fire"><action type="equip" when="midcast"><waist lock="yes">Karin Obi</waist></action></elseif>
<elseif Element="Wind"><action type="equip" when="midcast"><waist lock="yes">Furin Obi</waist></action></elseif>
<elseif Element="Water"><action type="equip" when="midcast"><waist lock="yes">Suirin Obi</waist></action></elseif>
<elseif Element="Earth"><action type="equip" when="midcast"><waist lock="yes">Dorin Obi</waist></action></elseif>
</if>
<!-- Handle AFv2 Pants, but do not equip pants if we already have Weather x2 and day bonuses from obi alone as obi alone hits the 35% damage cap. -->
<if Advanced='(!((regex)%Weather=^.* x2$(/regex) AND "%WeatherElement" = "%SpellElement" AND "$%SpellElementObi" = "1") OR !("%WeatherElement" = "%spellElement")) AND ("%SpellElement" = "%DayElement" AND "$BLMAF2Pants" = "1") AND ("%skill"="ElementalMagic")'>
<action type="equip" when="midcast">
<legs lock="yes">Sorcerer's Tonban</legs>
</action>
</if>
<!-- Timers for when sleep is wearing off. -->
<if advanced='"$SleepTimers"="1"'>
<if Spell="Sleep II|Sleepga II">
<action type="command" when="aftercast">spellcast var inc sleepid;wait 45;input /echo [$sleepid:%spell] <%target> Wearing off in 45s</action>
<action type="command" when="aftercast">wait 75;input /echo [$sleepid:%spell] <%target> Wearing off in 15s</action>
<action type="command" when="aftercast">wait 85;input /echo [$sleepid:%spell] <%target> Wearing off in 5s;spellcast var dec sleepid;</action>
</if>
<elseif Spell="Sleep|Sleepga">
<action type="command" when="aftercast">spellcast var inc sleepid;wait 45;input /echo [$sleepid:%spell] <%target> Wearing off in 15s</action>
<action type="command" when="aftercast">wait 55;input /echo [$sleepid:%spell] <%target> Wearing off in 5s;spellcast var dec sleepid;</action>
</elseif>
</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>")'>
<action type="command" when="midcast">cancel 71</action>
<action type="midcastdelay" delay="2.1" />
</if>
<if spell="Utsusemi: Ichi" BuffActive="Copy Image">
<action type="midcastdelay" delay="3.0" />
<action type="Command" when="midcast">cancel 66</action>
</if>
<elseif Spell="Stoneskin" BuffActive="Stoneskin">
<action type="command" when="midcast">cancel 37</action>
<action type="midcastdelay" delay="4.8" />
</elseif>
<elseif Spell="Blink" BuffActive="Blink">
<action type="command" when="midcast">cancel 36</action>
<action type="midcastdelay" delay="4.5" />
</elseif>
<!-- finally, equip our staff! -->
<action type="equip" when="midcast">
<main>$%SpellElementStaff</main>
</action>
</else>
</rules>
</spellcast>