Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?xml version="1.0" encoding="utf-8"?>
- <!-- Last modified: 9/15/2012 11:26:23 AM -->
- <!-- IMPORTANT -->
- <!--
- This include, and the xmls based on it, make use of new custom trigger spells
- from the "radsources" resources. Current updated resources should include these
- in the standard client. If things don't appear to be working, check that first.
- -->
- <!-- REQUIRED -->
- <!-- The following include entries must be imported for this include to be properly functional. -->
- <!-- Vars section:
- ConfigurationVars (required)
- UtilityVars (required)
- RecastDurations (if using RecastWarnings)
- ElementalStaves (if using ElementalStaffRules or FastCastCalculations)
- FastCastVars (if using FastCastCalculations)
- ElementalGear (if using ObiRingCape-*)
- SchWeatherConstants (if using ObiRingCape-*)
- -->
- <!-- Sets section:
- Base-Group (recommended as base for inheritance)
- Outside-Group (group required for normal outside areas; inherit from Base-Group)
- Abyssea-Group (group for inside Abyssea) [Visitant status]
- Campaign-Group (group for when in Campaign) [Allied Tags status]
- Voidwatch-Group (group for when in Voidwatch) [Voidwatcher status]
- Salvage-Group (group for when in Salvage) [*Remnants zone]
- Legion-Group (group for when in Legion) [??? status]
- These groups are only required if using the AreaRules include, which automatically switches
- based on where you currently are. Most of the time, only the Outside-Group needs to
- have sets defined, and the remainder can be empty groups that inherit from that one.
- -->
- <!-- Rules section:
- UniversalTriggerRules - The fundamental include that this Include file is based around.
- -->
- <!-- Notes:
- <addtochat color="12"></addtochat> -- This color triggers the /tell chime.
- -->
- <includes>
- <!-- ***************** Variables ***************** -->
- <!-- This is a REQUIRED include. -->
- <include name="ConfigurationVars">
- <!-- This include is for variables that allow you to customize the configuration
- of the behavior of this include file. You can change the values here to
- have them affect all job xmls globally, or change them in each job xml
- where you want them to be different.
- The values of these vars should only ever be set in the Vars section.
- They should not be modified in code.
- -->
- <!-- Set Debug to 1 to allow certain debug info to be printed. -->
- <var name="Debug">0</var>
- <!-- Use UpdateCommand to initiate an update from within the code. -->
- <var name="UpdateCommand">input //Update .auto</var>
- <!-- UpdateAftercast is used only for triggering the equipping after
- the action has completed, to reduce lag. -->
- <var name="UpdateAftercast">input //Update .Aftercast</var>
- <!-- HasCounter/HasShield/HasEvasion/HasPDT/HasDefense: [Yes|No]. Set to Yes in job XMLs for each
- valid tanking option, or No if the option is not valid. -->
- <var name="HasEvasion">Yes</var>
- <var name="HasCounter">No</var>
- <var name="HasShield">No</var>
- <var name="HasPDT">Yes</var>
- <var name="HasDefense">No</var>
- <!-- Job xml's should define these weaponskills. -->
- <!-- Only crit weaponskills can use CapCrit WSMode. -->
- <var name="CritWS">0</var>
- <!-- Single hit weaponskills don't use acc WSMode. -->
- <var name="SingleHitWS">0</var>
- <!-- Magical weaponskills ignore WSMode. -->
- <var name="MagicalWS">0</var>
- <!-- TrialWeapon can be set so that the weapon (primarily staves) is never swapped out. -->
- <var name="TrialWeapon">None</var>
- <!-- PullWeapons is any ranged weapon that a job has access to that we don't want
- to swap out. This allows gear sets to mostly be configured around ammo
- items (which are safe to change around without losing TP), but to be
- overridden when you need to have a weapon to pull with.
- It's locked in the EquipmentLockRules include. The Soulgauger
- camera is locked without needing to set this variable. -->
- <var name="PullWeapons">Mamoolbane</var>
- <!-- Misc enchantment items that are cumbersome to include individually in the
- EquipmentLockRules. Used for locking gear slots. Kept here for easy reference. -->
- <var name="TeleportEarrings">Duchy Earring|Empire Earring|Federation Earring|Republic Earring|Kingdom Earring|Nashmau Earring|Mhaura Earring|Selbina Earring|Norg Earring|Rabao Earring</var>
- <var name="TeleportRings">Tavnazian Ring|Olduum Ring|Mea Ring|Dem Ring|Holla Ring|Vahzl Ring|Yhoat Ring</var>
- <var name="TeleportHeads">Maat's Cap|Star Cap|Moogle Cap|Nomad Cap|Laurel Crown</var>
- <var name="TeleportNecks">Federation Stable Scarf|Kingdom Stable Collar|Republic Stable Medal</var>
- <var name="ReraiseEarrings">Reraise Earring|Raising Earring|Kocco's Earring|Mamool Ja Earring</var>
- </include>
- <!-- This is a REQUIRED include. -->
- <include name="UtilityVars">
- <!-- These are vars that are expected to be used in the course of the code.
- They are defined here to provide defaults, and to be sure that the var
- actually exists before use. -->
- <!-- Flag for an initial update immediately after the job xml is (re)loaded.
- This allows various status vars to be properly set. -->
- <var name="FirstUpdate">No</var>
- <!-- ******************************************* -->
- <!-- Vars for various modes used. -->
- <!-- Rest mode: Normal, PetFighting, etc. -->
- <var name="RestMode">Normal</var>
- <!-- Idle mode: Normal, Refresh, PDT, PetFighting, etc. -->
- <var name="IdleMode">Normal</var>
- <!-- Idle area: Field, Town -->
- <var name="LastKnownArea">None</var>
- <var name="IdleArea">Town</var>
- <!-- Movement = Kite, Move, None -->
- <var name="Movement">Move</var>
- <!-- Specifically for whether or not in kite mode. -->
- <var name="KiteMode">None</var>
- <!-- TP set to use: TP-$TPWeapon-$OffenseMode-$DefenseMode -->
- <!-- TPWeapon should be set as needed in each job xml. -->
- <var name="TPWeapon">Default</var>
- <!-- OffenseMode = Normal|Acc|MaxAcc|Att|Crit|Str|2HR|LowDmg -->
- <var name="OffenseMode">Normal</var>
- <!-- DefenseMode = Normal|PDT|Evasion|Shield|Counter -->
- <var name="DefenseMode">Normal</var>
- <!-- Use-OffenseMode can be set to a value other than "None" in order
- to override the current OffenseMode value without changing OffenseMode.
- Useful for temporary effects such as 2hrs, as well as adjusting
- which accuracy layer to use based on current buffs, etc. -->
- <var name="Use-OffenseMode">None</var>
- <!-- Temporary holding var. -->
- <var name="OMode">None</var>
- <!-- For activating +dmg gear options -->
- <var name="AggressiveMode">Off</var>
- <!-- Aggressive layer can be defined by each job XML. It does not need
- to be changed, but can be if there are multiple possible layers. -->
- <var name="AggressiveLayer">None</var>
- <!-- Temporary variable -->
- <var name="PTankMode">Normal</var>
- <!-- WS set to use: WS-%Spell-$WSMode (Default auto-selects one of the other modes) -->
- <!-- WSMode = Default, Acc, Att, Mod, Crit, 2HR -->
- <var name="WSMode">Default</var>
- <!-- Same as Use-OffenseMode, but for weaponskills. -->
- <var name="Use-WSMode">None</var>
- <!-- Temporary holding var. -->
- <var name="WMode">None</var>
- <!-- Set the max distance a weaponskill can be performed from -->
- <var name="WSDistance">5.0</var>
- <!-- Abstract mode. -->
- <var name="CastingMode">Normal</var>
- <!-- PhysicalDef = PhysDef-$PhysicalDefMode, None -->
- <var name="PhysicalDefense">None</var>
- <!-- PhysicalDefMode = PDT, Evasion, Shield, Counter (depending HasEvasion/HasShield/HasCounter/HasPDT/HasDefense) -->
- <var name="PhysicalDefMode">PDT</var>
- <!-- MagicalDef = $MagicalDefMode-$MagicalDefElement, None -->
- <var name="MagicalDefense">None</var>
- <!-- MagicalDef mode: MDT or Resist -->
- <var name="MagicalDefMode">MDT</var>
- <!-- MagicalDefElement = Fire, Earth, Water, Wind, Ice, Thunder, Light, Dark, Any, All, None -->
- <var name="MagicalDefElement">Any</var>
- <!-- ******************************************* -->
- <!-- Vars for constructing sets. -->
- <!-- Group identifier -->
- <var name="Area">Outside</var>
- <var name="BaseLayer">None</var>
- <var name="CurrentSet">None</var>
- <var name="WSSet">None</var>
- <var name="WeaknessArmor">None</var>
- <var name="ConvertSet">None</var>
- <var name="LockMain">No</var>
- <var name="PerpFlag">No</var>
- </include>
- <!-- Required when including RecastWarnings. This sets the
- durations for all tracked spells. -->
- <include name="RecastDurations">
- <var name="WarnTime">15</var>
- <var name="Refresh-Duration">150</var>
- <var name="Refresh II-Duration">150</var>
- <var name="Haste-Duration">180</var>
- <var name="Phalanx-Duration">180</var>
- <var name="Phalanx II-Duration">180</var>
- <var name="Reprisal-Duration">180</var>
- <var name="Sleep-Duration">60</var>
- <var name="Sleep II-Duration">90</var>
- <var name="Repose-Duration">90</var>
- <var name="Sleepga-Duration">90</var>
- <var name="Sleepga II-Duration">90</var>
- <var name="Break-Duration">30</var>
- <var name="Sheep Song-Duration">60</var>
- <var name="Yawn-Duration">90</var>
- <var name="Soporific-Duration">90</var>
- <var name="Dream Flower-Duration">90</var>
- <var name="Foe Lullaby-Duration">36</var>
- <var name="Foe Lullaby II-Duration">72</var>
- <var name="Horde Lullaby-Duration">36</var>
- <var name="Horde Lullaby II-Duration">72</var>
- <var name="Light Shot-Duration">60</var>
- <var name="Enspell-Duration">180</var>
- <var name="Spikes-Duration">150</var>
- <var name="Enlight-Duration">120</var>
- <var name="SleepOrder">0</var>
- <!-- Count: Set bonus gained for the number of +2 AF3 pieces being worn.
- 10 for 2 pieces, 20 for 3 pieces, 30 for 4 pieces, 50 for 5 pieces. -->
- <var name="EstoqueurSetBonus">50</var>
- <!-- Cape: 0 for don't have; 1 for have. -->
- <var name="EstoqueurCape">1</var>
- <!-- Feet: 0 for don't have; 1 for +1; 2 for +2 -->
- <var name="EstoqueurFeet">2</var>
- <var name="Buff-Duration">0</var>
- <var name="Warn-Duration">0</var>
- <var name="BuffDurationMult">100</var>
- <var name="Respawn1Min">0</var>
- </include>
- <include name="ElementalStaves">
- <!-- <xi:include href="Staff-Include.xml" xpointer="//include[@name='ElementalStaves']/*" /> -->
- <!-- Variables can't contain variable values. Must define each explicitly. -->
- <!-- Define these according to which staves you have (primarily for reference). -->
- <var name="EleStaff-Fire">Chatoyant Staff</var>
- <var name="EleStaff-Ice">Chatoyant Staff</var>
- <var name="EleStaff-Wind">Chatoyant Staff</var>
- <var name="EleStaff-Earth">Chatoyant Staff</var>
- <var name="EleStaff-Thunder">Chatoyant Staff</var>
- <var name="EleStaff-Water">Chatoyant Staff</var>
- <var name="EleStaff-Light">Chatoyant Staff</var>
- <var name="EleStaff-Dark">Chatoyant Staff</var>
- <!-- Generally shouldn't need to modify this set (for reference only) -->
- <var name="MagianStaff-Fire">Agni's Staff</var>
- <var name="MagianStaff-Ice">Vourukasha I</var>
- <var name="MagianStaff-Wind">Vayu's Staff</var>
- <var name="MagianStaff-Earth">Kubera's Staff</var>
- <var name="MagianStaff-Thunder">Indra's Staff</var>
- <var name="MagianStaff-Water">Soma's Staff</var>
- <var name="MagianStaff-Light">Surya's Staff</var>
- <var name="MagianStaff-Dark">Yama's Staff</var>
- <!-- Magian staves with -cast time; otherwise whatever staff you want in precast. -->
- <var name="Staff-FastCast-Fire">Chatoyant Staff</var>
- <var name="Staff-FastCast-Ice">Vourukasha I</var>
- <var name="Staff-FastCast-Wind">Chatoyant Staff</var>
- <var name="Staff-FastCast-Earth">Chatoyant Staff</var>
- <var name="Staff-FastCast-Thunder">Chatoyant Staff</var>
- <var name="Staff-FastCast-Water">Chatoyant Staff</var>
- <var name="Staff-FastCast-Light">Arka IV</var>
- <var name="Staff-FastCast-Dark">Chatoyant Staff</var>
- <!-- Magian staves with -recast time; manually apply when you want recast instead of m.acc or dmg. -->
- <var name="Staff-Recast-Fire">Chatoyant Staff</var>
- <var name="Staff-Recast-Ice">Chatoyant Staff</var>
- <var name="Staff-Recast-Wind">Chatoyant Staff</var>
- <var name="Staff-Recast-Earth">Chatoyant Staff</var>
- <var name="Staff-Recast-Thunder">Chatoyant Staff</var>
- <var name="Staff-Recast-Water">Chatoyant Staff</var>
- <var name="Staff-Recast-Light">Chatoyant Staff</var>
- <var name="Staff-Recast-Dark">Chatoyant Staff</var>
- <!-- If you have a magian staff with cast time reduction, list the value here. -->
- <var name="Staff-FastCastAmt-Fire">0</var>
- <var name="Staff-FastCastAmt-Ice">12</var>
- <var name="Staff-FastCastAmt-Wind">0</var>
- <var name="Staff-FastCastAmt-Earth">0</var>
- <var name="Staff-FastCastAmt-Thunder">0</var>
- <var name="Staff-FastCastAmt-Water">0</var>
- <var name="Staff-FastCastAmt-Light">0</var>
- <var name="Staff-FastCastAmt-Dark">0</var>
- <!-- What staff to equip when going for nuke damage. -->
- <var name="Staff-Dmg-Fire">Chatoyant Staff</var>
- <var name="Staff-Dmg-Ice">Vourukasha I</var>
- <var name="Staff-Dmg-Wind">Chatoyant Staff</var>
- <var name="Staff-Dmg-Earth">Chatoyant Staff</var>
- <var name="Staff-Dmg-Thunder">Chatoyant Staff</var>
- <var name="Staff-Dmg-Water">Chatoyant Staff</var>
- <var name="Staff-Dmg-Light">Chatoyant Staff</var>
- <var name="Staff-Dmg-Dark">Chatoyant Staff</var>
- <!-- What staff to equip when going for spell accuracy (eg: debuffs). -->
- <var name="Staff-Acc-Fire">Chatoyant Staff</var>
- <var name="Staff-Acc-Ice">Chatoyant Staff</var>
- <var name="Staff-Acc-Wind">Chatoyant Staff</var>
- <var name="Staff-Acc-Earth">Chatoyant Staff</var>
- <var name="Staff-Acc-Thunder">Chatoyant Staff</var>
- <var name="Staff-Acc-Water">Chatoyant Staff</var>
- <var name="Staff-Acc-Light">Chatoyant Staff</var>
- <var name="Staff-Acc-Dark">Chatoyant Staff</var>
- <!-- This set takes advantage of the negative elemental properties
- of the lvl 51 staves to reduce acc and damage. Used for procs. -->
- <var name="Staff-Proc-Fire">Earth Staff</var>
- <var name="Staff-Proc-Ice">Earth Staff</var>
- <var name="Staff-Proc-Wind">Earth Staff</var>
- <var name="Staff-Proc-Earth">Arka IV</var>
- <var name="Staff-Proc-Thunder">Earth Staff</var>
- <var name="Staff-Proc-Water">Earth Staff</var>
- <var name="Staff-Proc-Light">Earth Staff</var>
- <var name="Staff-Proc-Dark">Earth Staff</var>
- <!-- Vars for specific types of staves that may vary from any of the above categories. -->
- <var name="Staff-Cures">Arka IV</var>
- <var name="Staff-PDT">Earth Staff</var>
- <var name="Staff-HMP">Chatoyant Staff</var>
- </include>
- <!-- Sch weather constants are required for the rules that equip elemental gear.
- If you import ElementalGear, you MUST import SchWeatherConstants as well. -->
- <include name="ElementalGear">
- <!-- Replace 0 with obi name when acquired -->
- <var name="Obi-Fire">0</var>
- <var name="Obi-Ice">0</var>
- <var name="Obi-Wind">0</var>
- <var name="Obi-Earth">0</var>
- <var name="Obi-Thunder">0</var>
- <var name="Obi-Water">0</var>
- <var name="Obi-Light">0</var>
- <var name="Obi-Dark">0</var>
- <!-- Replace 0 with gear name when acquired -->
- <var name="TwilightCape">Twilight Cape</var>
- <var name="ZodiacRing">Zodiac Ring</var>
- </include>
- <include name="SchWeatherConstants">
- <var name="Storm-Fire">Firestorm</var>
- <var name="Storm-Ice">Hailstorm</var>
- <var name="Storm-Wind">Windstorm</var>
- <var name="Storm-Earth">Sandstorm</var>
- <var name="Storm-Thunder">Thunderstorm</var>
- <var name="Storm-Water">Rainstorm</var>
- <var name="Storm-Light">Aurorastorm</var>
- <var name="Storm-Dark">Voidstorm</var>
- </include>
- <include name="SmnSpiritConstants">
- <var name="Spirit-Fire">Fire Spirit</var>
- <var name="Spirit-Ice">Ice Spirit</var>
- <var name="Spirit-Wind">Air Spirit</var>
- <var name="Spirit-Earth">Earth Spirit</var>
- <var name="Spirit-Thunder">Thunder Spirit</var>
- <var name="Spirit-Water">Water Spirit</var>
- <var name="Spirit-Light">Light Spirit</var>
- <var name="Spirit-Dark">Dark Spirit</var>
- </include>
- <include name="EnspellConstants">
- <var name="En-Fire">Enfire</var>
- <var name="En-Ice">Enblizzard</var>
- <var name="En-Wind">Enaero</var>
- <var name="En-Earth">Enstone</var>
- <var name="En-Thunder">Enthunder</var>
- <var name="En-Water">Enwater</var>
- <var name="En-Light">Enlight</var>
- <var name="En-Dark">Endark</var>
- </include>
- <include name="FastCastVars">
- <!-- Override these with actual amounts available in gear for the given job.
- Include merits (eg: whm Cure Cast Time), but not Fast Cast traits (eg: rdm). -->
- <var name="CureFastCast">0</var>
- <var name="HealFastCast">0</var>
- <var name="EnhancingFastCast">0</var>
- <var name="ElementalFastCast">0</var>
- <var name="GeneralFastCast">0</var>
- <!-- Internal variable -->
- <var name="FastCastAmt">0</var>
- <var name="FCCastTime">0</var>
- <!-- FastCastMode can take a value of Normal, Moderate or Quick
- Moderate indicates that the spell may not swap gear properly
- if using full Fast Cast gear, but will probably work with a
- lesser amount. Quick indicates that the spell will almost
- certainly not swap gear properly, and full midcast gear
- selections should be applied at precast.
- This is set by the include code, and can be used in the
- job xml. -->
- <var name="FastCastMode">Normal</var>
- </include>
- <!-- Variables for handling manipulating proc spells. -->
- <include name="TestProcVars">
- <var name="ProcElement">Ice</var>
- <var name="ProcSpell">None</var>
- <var name="T3-Fire">Fire III</var>
- <var name="T3-Ice">Blizzard III</var>
- <var name="T3-Wind">Aero III</var>
- <var name="T3-Earth">Stone III</var>
- <var name="T3-Thunder">Thunder III</var>
- <var name="T3-Water">Water III</var>
- <var name="T3-Light">Banish II</var>
- <var name="T3-Dark">Bio II</var>
- <var name="T4-Fire">Fire IV</var>
- <var name="T4-Ice">Blizzard IV</var>
- <var name="T4-Wind">Aero IV</var>
- <var name="T4-Earth">Stone IV</var>
- <var name="T4-Thunder">Thunder IV</var>
- <var name="T4-Water">Water IV</var>
- <var name="T4-Light">Banish III</var>
- <var name="T4-Dark">Aspir</var>
- <var name="T-G3-Fire">Firaga III</var>
- <var name="T-G3-Ice">Blizzaga III</var>
- <var name="T-G3-Wind">Aeroga III</var>
- <var name="T-G3-Earth">Stonega III</var>
- <var name="T-G3-Thunder">Thundaga III</var>
- <var name="T-G3-Water">Waterga III</var>
- <var name="T-G3-Light">Banishga II</var>
- <var name="T-G3-Dark">Drain</var>
- <var name="T-AM-Fire">Flare</var>
- <var name="T-AM-Ice">Freeze</var>
- <var name="T-AM-Wind">Tornado</var>
- <var name="T-AM-Earth">Quake</var>
- <var name="T-AM-Thunder">Burst</var>
- <var name="T-AM-Water">Flood</var>
- <var name="T-AM-Light">Holy</var>
- <var name="T-AM-Dark">Dispel</var>
- <var name="T-Brd-Fire">Ice Threnody</var>
- <var name="T-Brd-Ice">Wind Threnody</var>
- <var name="T-Brd-Wind">Earth Threnody</var>
- <var name="T-Brd-Earth">Ltng. Threnody</var>
- <var name="T-Brd-Thunder">Water Threnody</var>
- <var name="T-Brd-Water">Fire Threnody</var>
- <var name="T-Brd-Light">Dark Threnody</var>
- <var name="T-Brd-Dark">Light Threnody</var>
- </include>
- <!-- ******************* Sets ******************* -->
- <!-- Import this group, and inherit it in the default Outside-Group
- group. Other groups inherit from Outside-Group.
- This should ensure that these sets exist in each group,
- even if their contents aren't revised. -->
- <include name="Base-Group">
- <group name="Base-Group">
- <set name="None">
- </set>
- <set name="Resting-Normal">
- </set>
- <set name="Kite|Move">
- </set>
- <set name="PhysDef-PDT">
- </set>
- <set name="PhysDef-Evasion">
- </set>
- <set name="PhysDef-Defense">
- </set>
- <set name="PhysDef-Shield">
- </set>
- <set name="MDT-*">
- </set>
- <set name="Resist-*">
- </set>
- <set name="Convert">
- </set>
- <!-- Weakness set is the gear set to wear while weak (usually +HP/MP and PDT).
- It overrides most other armor sets. -->
- <set name="WeakSet">
- </set>
- </group>
- </include>
- <include name="SetTemplate">
- <!-- Template listing of all possible sets for combinations of offense
- and defense for a given weapon type, except Shield.
- Can replace Counter with Shield.
- Use wildcard matches to trap for sets with nothing unique, to
- simplify the list in actual use. -->
- <!-- Do not import this include -->
- <set name="TP-H2H-Normal-Normal">
- </set>
- <set name="TP-H2H-Acc-Normal" BaseSet="TP-H2H-Normal-Normal">
- </set>
- <set name="TP-H2H-MaxAcc-Normal" BaseSet="TP-H2H-Normal-Normal">
- </set>
- <set name="TP-H2H-Str-Normal" BaseSet="TP-H2H-Normal-Normal">
- </set>
- <set name="TP-H2H-Att-Normal" BaseSet="TP-H2H-Normal-Normal">
- </set>
- <set name="TP-H2H-Crit-Normal" BaseSet="TP-H2H-Normal-Normal">
- </set>
- <set name="TP-H2H-2HR-Normal" BaseSet="TP-H2H-Normal-Normal">
- </set>
- <set name="TP-H2H-LowDmg-Normal" BaseSet="TP-H2H-Normal-Normal">
- </set>
- <set name="TP-H2H-Normal-Evasion">
- </set>
- <set name="TP-H2H-Acc-Evasion" BaseSet="TP-H2H-Normal-Evasion">
- </set>
- <set name="TP-H2H-MaxAcc-Evasion" BaseSet="TP-H2H-Normal-Evasion">
- </set>
- <set name="TP-H2H-Str-Evasion" BaseSet="TP-H2H-Normal-Evasion">
- </set>
- <set name="TP-H2H-Att-Evasion" BaseSet="TP-H2H-Normal-Evasion">
- </set>
- <set name="TP-H2H-Crit-Evasion" BaseSet="TP-H2H-Normal-Evasion">
- </set>
- <set name="TP-H2H-2HR-Evasion" BaseSet="TP-H2H-Normal-Evasion">
- </set>
- <set name="TP-H2H-LowDmg-Evasion" BaseSet="TP-H2H-Normal-Evasion">
- </set>
- <set name="TP-H2H-Normal-PDT">
- </set>
- <set name="TP-H2H-Acc-PDT" BaseSet="TP-H2H-Normal-PDT">
- </set>
- <set name="TP-H2H-MaxAcc-PDT" BaseSet="TP-H2H-Normal-PDT">
- </set>
- <set name="TP-H2H-Str-PDT" BaseSet="TP-H2H-Normal-PDT">
- </set>
- <set name="TP-H2H-Att-PDT" BaseSet="TP-H2H-Normal-PDT">
- </set>
- <set name="TP-H2H-Crit-PDT" BaseSet="TP-H2H-Normal-PDT">
- </set>
- <set name="TP-H2H-2HR-PDT" BaseSet="TP-H2H-Normal-PDT">
- </set>
- <set name="TP-H2H-LowDmg-PDT" BaseSet="TP-H2H-Normal-PDT">
- </set>
- <set name="TP-H2H-Normal-Counter">
- </set>
- <set name="TP-H2H-Acc-Counter" BaseSet="TP-H2H-Normal-Counter">
- </set>
- <set name="TP-H2H-MaxAcc-Counter" BaseSet="TP-H2H-Normal-Counter">
- </set>
- <set name="TP-H2H-Str-Counter" BaseSet="TP-H2H-Normal-Counter">
- </set>
- <set name="TP-H2H-Att-Counter" BaseSet="TP-H2H-Normal-Counter">
- </set>
- <set name="TP-H2H-Crit-Counter" BaseSet="TP-H2H-Normal-Counter">
- </set>
- <set name="TP-H2H-2HR-Counter" BaseSet="TP-H2H-Normal-Counter">
- </set>
- <set name="TP-H2H-LowDmg-Counter" BaseSet="TP-H2H-Normal-Counter">
- </set>
- </include>
- <!-- ******************* Rules ******************* -->
- <!-- Make sure things like basic area and status are set as soon as possible. -->
- <include name="RunFirstUpdate">
- <if advanced='"$FirstUpdate"="No"'>
- <var cmd="set FirstUpdate Yes" />
- <addtochat>Ran first update.</addtochat>
- <if CommandPrefix="/trigger">
- <command>$UpdateCommand;wait 0.5;input /ma %Spell %SpellTargetRaw</command>
- </if>
- <else>
- <command>$UpdateCommand;wait 0.5;input %CommandPrefix %Spell %SpellTargetRaw</command>
- </else>
- <cancelspell />
- <return />
- </if>
- </include>
- <!-- Do not use rules if level 50 or lower. -->
- <include name="LevelRequirement">
- <if notMLvlGT="50">
- <return />
- </if>
- </include>
- <!-- These stop any gear changes if you're unable to take particular actions. -->
- <include name="ReturnRules">
- <!-- The bug that required this should be fixed -->
- <if SpellTargetRaw="<st*">
- <return />
- </if>
- <!-- Allow manipulation of equipment sets while under adverse effects.
- Do not perform restriction checks on any trigger actions. -->
- <if NotType="Trigger">
- <if status="dead">
- <!-- Can't do anything if you're dead -->
- <addtochat>DEAD!</addtochat>
- <return />
- </if>
- <elseif BuffActive="Sleep|Petrification|Stun|Terror|Charm">
- <!-- Ignoring Illusion|Egg|Costume -->
- <addtochat color="28">Cannot act.</addtochat>
- <return />
- </elseif>
- <elseif spell="Ranged">
- <if advanced='%SpellTargetDistance > 24.9'>
- <addtochat color="28">Out of range.</addtochat>
- <return />
- </if>
- </elseif>
- <elseif BuffActive="Silence|Mute|Omerta">
- <if Type="*Magic|BardSong|Ninjutsu">
- <addtochat color="28">Silenced.</addtochat>
- <return />
- </if>
- </elseif>
- <elseif BuffActive="Amnesia|Impairment">
- <if Type="Weaponskill|JobAbility|Scholar|PetCommand|BloodPact*|CorsairRoll|CorsairShot">
- <addtochat color="28">Amnesiad.</addtochat>
- <return />
- </if>
- </elseif>
- <elseif Type="PetCommand|BloodPact*" PetIsValid="FALSE">
- <addtochat color="28">No valid pet.</addtochat>
- <return />
- </elseif>
- <!-- <elseif type="Weaponskill">
- <if mode="OR" TPLT="80" advanced='%SpellTargetDistance > $WSDistance'>
- <cancelspell />
- <addtochat color="28">%Spell cancelled: TP or distance.</addtochat>
- <return />
- </if>
- </elseif> -->
- </if>
- </include>
- <!-- Do not change gear if spell is a transport spell used on self (Warp II/Retrace on others is fine). -->
- <include name="CleanTransportation">
- <if Spell="Warp*|Teleport*|Recall*|Retrace" SpellTargetType="SELF">
- <return />
- </if>
- </include>
- <!-- Area variable rule -->
- <include name="AreaRules">
- <!-- Determine general area, as some give access to special gear, or differences in approach to gearing. -->
- <if BuffActive="Voidwatcher">
- <var cmd="set Area Voidwatch" />
- </if>
- <elseif BuffActive="Allied Tags">
- <var cmd="set Area Campaign" />
- </elseif>
- <elseif advanced='"%Area"!="$LastKnownArea"'>
- <if BuffActive="Visitant">
- <var cmd="set Area Abyssea" />
- </if>
- <elseif Area="*Remnants">
- <var cmd="set Area Salvage" />
- </elseif>
- <elseif Area="Nyzul Isle|Ilrusi Atoll|Leujaoam Sanctum|Mamool Ja Training Grounds|Lebros Cavern|Periqia">
- <var cmd="set Area Assault" />
- </elseif>
- <elseif Area="*Legion">
- <var cmd="set Area Legion" />
- </elseif>
- <else>
- <var cmd="set Area Outside" />
- </else>
- <!-- Define idle set based on town or elsewhere -->
- <if Area="Ru'Lude Gardens|Nashmau|Port*|Bastok*|Windurst*|*San d'Oria|*Jeuno|*Whitegate" NotArea="Dynamis*|*[S]">
- <var cmd="set IdleArea Town" />
- </if>
- <else>
- <var cmd="set IdleArea Field" />
- </else>
- </elseif>
- <var cmd="set LastKnownArea %Area" />
- <!-- Change group based on area -->
- <if NotGroup="$Area-Group">
- <command>sc group $Area-Group</command>
- </if>
- </include>
- <!-- Spell Cancel Rules -->
- <include name="SpellCancel">
- <if Spell="Sneak" BuffActive="Sneak" TargetType="SELF">
- <midcastdelay delay="1" />
- <command when="midcast">cancel 71</command>
- </if>
- <elseif spell="Spectral Jig" BuffActive="Sneak">
- <command when="precast">cancel 71</command>
- </elseif>
- <elseif Spell="Monomi*" BuffActive="Sneak">
- <midcastdelay delay="2.5" />
- <command when="midcast">cancel 71</command>
- </elseif>
- <elseif spell="Utsusemi: Ichi" buffactive="Copy Image*" NotBuffActive="Silence|Mute|Omerta|Obliviscence">
- <if notbuffactive="Copy Image (3)|Copy Image (4)">
- <midcastdelay delay="2.5" />
- <command when="midcast">cancel 66</command>
- <command when="midcast">cancel 446</command>
- </if>
- <else>
- <cancelspell />
- <return />
- </else>
- </elseif>
- <elseif Spell="Stoneskin" BuffActive="Stoneskin">
- <midcastdelay delay="2.8" />
- <command when="midcast">cancel 37</command>
- </elseif>
- </include>
- <!-- Lock various slots when using particular gear. -->
- <include name="EquipmentLockRules">
- <if mode="OR" advanced='"$LockMain"=="Yes"' EquipMain="$TrialWeapon">
- <lock slot="main|sub|ranged" when="All" lock="yes" />
- </if>
- <if EquipRange="$PullWeapons|Soulgauger*">
- <lock slot="ranged|ammo" when="All" lock="yes" />
- </if>
- <if EquipFeet="Powder Boots|Sprint Shoes">
- <lock slot="feet" when="All" lock="yes" />
- </if>
- <if EquipHead="Reraise Hairpin">
- <lock slot="head" when="All" lock="yes" />
- </if>
- <if EquipNeck="Sanctus Rosary|Reraise Gorget|Lavalier +1">
- <lock slot="neck" when="All" lock="yes" />
- </if>
- <if EquipLEar="$ReraiseEarrings">
- <lock slot="lear" when="All" lock="yes" />
- </if>
- <if EquipREar="$ReraiseEarrings">
- <lock slot="rear" when="All" lock="yes" />
- </if>
- <if EquipLRing="Emperor Band|Decennial Ring">
- <lock slot="lring" when="All" lock="yes" />
- </if>
- <if EquipRRing="Emperor Band|Decennial Ring">
- <lock slot="rring" when="All" lock="yes" />
- </if>
- <!-- Only test for teleport stuff in town to avoid tons of unneeded checks. -->
- <if advanced='"$IdleArea"="Town"'>
- <if EquipHead="$TeleportHeads">
- <lock slot="head" when="All" lock="yes" />
- </if>
- <if EquipNeck="$TeleportNecks">
- <lock slot="neck" when="All" lock="yes" />
- </if>
- <if EquipLEar="$TeleportEarrings">
- <lock slot="lear" when="All" lock="yes" />
- </if>
- <if EquipREar="$TeleportEarrings">
- <lock slot="rear" when="All" lock="yes" />
- </if>
- <if EquipLRing="$TeleportRings">
- <lock slot="lring" when="All" lock="yes" />
- </if>
- <if EquipRRing="$TeleportRings">
- <lock slot="rring" when="All" lock="yes" />
- </if>
- <if EquipBody="Tidal Talisman">
- <lock slot="body" when="All" lock="yes" />
- </if>
- </if>
- </include>
- <!-- Change to Convert gear and set the $Convert variable, which should be
- part of the CurrentSet construction.
- $Convert variable will be reset to 'None' after 10 seconds, if
- it hadn't already been reset in the job rules. -->
- <include name="ConvertRule">
- <if Spell="Convert">
- <equip when="precast" set="%Spell" />
- <var cmd="set ConvertSet Convert" />
- <command when="Aftercast">wait 15;$UpdateCommand</command>
- </if>
- </include>
- <!-- Handle universal toggle and cycle triggers -->
- <!-- This is a REQUIRED include. -->
- <include name="UniversalTriggerRules">
- <if type="Trigger">
- <if skill="ControlTrigger">
- <cancelspell />
- <!-- Handle various types of resets. -->
- <if Spell="Reset">
- <if SpellTargetRaw="Defense">
- <var cmd="set MagicalDefense None" />
- <var cmd="set PhysicalDefense None" />
- <if status="Engaged">
- <var cmd="set Movement None" />
- </if>
- <addtochat>PDT/MDT reset.</addtochat>
- </if>
- <elseif SpellTargetRaw="SteppedDefense">
- <if advanced='"$MagicalDefense" != "None"'>
- <var cmd="set MagicalDefense None" />
- <addtochat>Magical Defense reset.</addtochat>
- </if>
- <elseif advanced='"$PhysicalDefense" != "None"'>
- <var cmd="set PhysicalDefense None" />
- <addtochat>Physical Defense reset.</addtochat>
- </elseif>
- </elseif>
- <elseif SpellTargetRaw="All|Full">
- <var cmd="set Movement None" />
- <var cmd="set MagicalDefense None" />
- <var cmd="set PhysicalDefense None" />
- <var cmd="set FightingMode Offense" />
- <var cmd="set AttackMode Normal" />
- <var cmd="set FightingFocus Normal" />
- <var cmd="set WSMode Default" />
- <var cmd="set AggressiveMode Off" />
- <var cmd="set CastingMode Normal" />
- <addtochat>All modes reset.</addtochat>
- </elseif>
- <elseif SpellTargetRaw="Physical*">
- <var cmd="set PhysicalDefense None" />
- <addtochat>Physical Defense reset.</addtochat>
- </elseif>
- <elseif SpellTargetRaw="Casting*">
- <var cmd="set CastingMode Normal" />
- <addtochat>Casting Mode reset.</addtochat>
- </elseif>
- <elseif SpellTargetRaw="Magical*">
- <var cmd="set MagicalDefense None" />
- <addtochat>Magical Defense reset.</addtochat>
- </elseif>
- <elseif SpellTargetRaw="Debug">
- <var cmd="set Debug 0" />
- <addtochat>Debug off.</addtochat>
- </elseif>
- </if>
- <elseif Spell="Update">
- <if SpellTargetRaw="WSDistance">
- <if TargetType="MOB">
- <var cmd="set WSDistance %TargetDistance" />
- <addtochat>Distance Variable: $WSDistance</addtochat>
- </if>
- <else>
- <addtochat>Invalid target for weaponskill distance.</addtochat>
- </else>
- </if>
- <elseif SpellTargetRaw="Debug">
- <var cmd="set Debug 1" />
- <addtochat>Debug active.</addtochat>
- </elseif>
- </elseif>
- </if>
- <elseif skill="ElementalTrigger">
- <!-- MDT elemental triggers. Other elemental triggers handled per job. -->
- <if SpellTargetRaw="MDT|Resist">
- <cancelspell />
- <var cmd="set MagicalDefElement %SpellElement" />
- <if advanced='"$MagicalDefense" != "None"'>
- <var cmd="set MagicalDefense $MagicalDefMode-$MagicalDefElement" />
- </if>
- <addtochat>Magical Defense Element: $MagicalDefElement ($MagicalDefMode)</addtochat>
- </if>
- </elseif>
- <elseif skill="CombatTrigger">
- <cancelspell />
- <!-- Physical and magical defense modes -->
- <if spell="PhysicalDefense">
- <!-- Handle changes in physical defense -->
- <if SpellTargetRaw=".Off">
- <var cmd="set PhysicalDefense None" />
- <addtochat>Physical Defense: $PhysicalDefense</addtochat>
- </if>
- <elseif SpellTargetRaw=".On">
- <var cmd="set PhysicalDefense PhysDef-$PhysicalDefMode" />
- <addtochat>Physical Defense: $PhysicalDefense</addtochat>
- </elseif>
- <elseif SpellTargetRaw=".Toggle">
- <if advanced='"$PhysicalDefense" = "None"'>
- <var cmd="set PhysicalDefense PhysDef-$PhysicalDefMode" />
- </if>
- <else>
- <var cmd="set PhysicalDefense None" />
- </else>
- <addtochat>Physical Defense: $PhysicalDefense</addtochat>
- </elseif>
- <elseif SpellTargetRaw="Mode:*|PDT|Evasion|Shield|Defense">
- <if SpellTargetRaw="PDT|*:PDT" advanced='"$HasPDT" = "Yes"'>
- <var cmd="set PhysicalDefMode PDT" />
- </if>
- <elseif SpellTargetRaw="Evasion|*:Evasion" advanced='"$HasEvasion" = "Yes"'>
- <var cmd="set PhysicalDefMode Evasion" />
- </elseif>
- <elseif SpellTargetRaw="Shield|*:Shield" advanced='"$HasShield" = "Yes"'>
- <var cmd="set PhysicalDefMode Shield" />
- </elseif>
- <elseif SpellTargetRaw="Defense|*:Defense" advanced='"$HasDefense" = "Yes"'>
- <var cmd="set PhysicalDefMode Defense" />
- </elseif>
- <else>
- <addtochat>Unknown or invalid mode: [%SpellTargetRaw]</addtochat>
- <return />
- </else>
- <if advanced='"$PhysicalDefense" != "None"'>
- <var cmd="set PhysicalDefense PhysDef-$PhysicalDefMode" />
- </if>
- <addtochat>Physical Defense Mode: $PhysicalDefMode</addtochat>
- </elseif>
- <elseif SpellTargetRaw=".Cycle">
- <!-- Order: PDT > Evasion > Defense > Shield [Counter not used] -->
- <if advanced='"$PhysicalDefMode" = "PDT"'>
- <if advanced='"$HasEvasion" = "Yes"'>
- <var cmd="set PhysicalDefMode Evasion" />
- </if>
- <elseif advanced='"$HasDefense" = "Yes"'>
- <var cmd="set PhysicalDefMode Defense" />
- </elseif>
- <elseif advanced='"$HasShield" = "Yes"'>
- <var cmd="set PhysicalDefMode Shield" />
- </elseif>
- </if>
- <elseif advanced='"$PhysicalDefMode" = "Evasion"'>
- <if advanced='"$HasDefense" = "Yes"'>
- <var cmd="set PhysicalDefMode Defense" />
- </if>
- <elseif advanced='"$HasShield" = "Yes"'>
- <var cmd="set PhysicalDefMode Shield" />
- </elseif>
- <elseif advanced='"$HasPDT" = "Yes"'>
- <var cmd="set PhysicalDefMode PDT" />
- </elseif>
- </elseif>
- <elseif advanced='"$PhysicalDefMode" = "Defense"'>
- <if advanced='"$HasShield" = "Yes"'>
- <var cmd="set PhysicalDefMode Shield" />
- </if>
- <elseif advanced='"$HasPDT" = "Yes"'>
- <var cmd="set PhysicalDefMode PDT" />
- </elseif>
- <elseif advanced='"$HasEvasion" = "Yes"'>
- <var cmd="set PhysicalDefMode Evasion" />
- </elseif>
- </elseif>
- <elseif advanced='"$PhysicalDefMode" = "Shield"'>
- <if advanced='"$HasPDT" = "Yes"'>
- <var cmd="set PhysicalDefMode PDT" />
- </if>
- <elseif advanced='"$HasEvasion" = "Yes"'>
- <var cmd="set PhysicalDefMode Evasion" />
- </elseif>
- <elseif advanced='"$HasDefense" = "Yes"'>
- <var cmd="set PhysicalDefMode Defense" />
- </elseif>
- </elseif>
- <else>
- <if advanced='"$HasPDT" = "Yes"'>
- <var cmd="set PhysicalDefMode PDT" />
- </if>
- <elseif advanced='"$HasEvasion" = "Yes"'>
- <var cmd="set PhysicalDefMode Evasion" />
- </elseif>
- <elseif advanced='"$HasDefense" = "Yes"'>
- <var cmd="set PhysicalDefMode Defense" />
- </elseif>
- <elseif advanced='"$HasShield" = "Yes"'>
- <var cmd="set PhysicalDefMode Shield" />
- </elseif>
- <else>
- <addtochat>No valid defense type available.</addtochat>
- <return />
- </else>
- </else>
- <if advanced='"$PhysicalDefense" != "None"'>
- <var cmd="set PhysicalDefense PhysDef-$PhysicalDefMode" />
- </if>
- <addtochat>Physical Defense Type: $PhysicalDefMode</addtochat>
- </elseif>
- <elseif SpellTargetRaw=".Reverse">
- <!-- Order: PDT < Evasion < Defense < Shield [Counter not used] -->
- <if advanced='"$PhysicalDefMode" = "PDT"'>
- <if advanced='"$HasShield" = "Yes"'>
- <var cmd="set PhysicalDefMode Shield" />
- </if>
- <elseif advanced='"$HasDefense" = "Yes"'>
- <var cmd="set PhysicalDefMode Defense" />
- </elseif>
- <elseif advanced='"$HasEvasion" = "Yes"'>
- <var cmd="set PhysicalDefMode Evasion" />
- </elseif>
- </if>
- <elseif advanced='"$PhysicalDefMode" = "Evasion"'>
- <if advanced='"$HasPDT" = "Yes"'>
- <var cmd="set PhysicalDefMode PDT" />
- </if>
- <elseif advanced='"$HasShield" = "Yes"'>
- <var cmd="set PhysicalDefMode Shield" />
- </elseif>
- <elseif advanced='"$HasDefense" = "Yes"'>
- <var cmd="set PhysicalDefMode Defense" />
- </elseif>
- </elseif>
- <elseif advanced='"$PhysicalDefMode" = "Defense"'>
- <if advanced='"$HasEvasion" = "Yes"'>
- <var cmd="set PhysicalDefMode Evasion" />
- </if>
- <elseif advanced='"$HasPDT" = "Yes"'>
- <var cmd="set PhysicalDefMode PDT" />
- </elseif>
- <elseif advanced='"$HasShield" = "Yes"'>
- <var cmd="set PhysicalDefMode Shield" />
- </elseif>
- </elseif>
- <elseif advanced='"$PhysicalDefMode" = "Shield"'>
- <if advanced='"$HasDefense" = "Yes"'>
- <var cmd="set PhysicalDefMode Defense" />
- </if>
- <elseif advanced='"$HasEvasion" = "Yes"'>
- <var cmd="set PhysicalDefMode Evasion" />
- </elseif>
- <elseif advanced='"$HasPDT" = "Yes"'>
- <var cmd="set PhysicalDefMode PDT" />
- </elseif>
- </elseif>
- <else>
- <if advanced='"$HasShield" = "Yes"'>
- <var cmd="set PhysicalDefMode Shield" />
- </if>
- <elseif advanced='"$HasDefense" = "Yes"'>
- <var cmd="set PhysicalDefMode Defense" />
- </elseif>
- <elseif advanced='"$HasEvasion" = "Yes"'>
- <var cmd="set PhysicalDefMode Evasion" />
- </elseif>
- <elseif advanced='"$HasPDT" = "Yes"'>
- <var cmd="set PhysicalDefMode PDT" />
- </elseif>
- <else>
- <addtochat>No valid defense type available.</addtochat>
- <return />
- </else>
- </else>
- <if advanced='"$PhysicalDefense" != "None"'>
- <var cmd="set PhysicalDefense PhysDef-$PhysicalDefMode" />
- </if>
- <addtochat>Physical Defense Type: $PhysicalDefMode</addtochat>
- </elseif>
- <else>
- <!-- Default: Turn on -->
- <var cmd="set PhysicalDefense PhysDef-$PhysicalDefMode" />
- <addtochat>Physical Defense: $PhysicalDefense</addtochat>
- </else>
- </if>
- <elseif spell="MagicalDefense">
- <!-- Turn Magical Defense on and off -->
- <if SpellTargetRaw=".On">
- <var cmd="set MagicalDefense $MagicalDefMode-$MagicalDefElement" />
- <addtochat>Magical Defense: $MagicalDefense</addtochat>
- </if>
- <elseif SpellTargetRaw=".Off">
- <var cmd="set MagicalDefense None" />
- <addtochat>Magical Defense: $MagicalDefense</addtochat>
- </elseif>
- <elseif SpellTargetRaw=".Toggle">
- <if advanced='"$MagicalDefense" = "None"'>
- <var cmd="set MagicalDefense $MagicalDefMode-$MagicalDefElement" />
- </if>
- <else>
- <var cmd="set MagicalDefense None" />
- </else>
- <addtochat>Magical Defense: $MagicalDefense</addtochat>
- </elseif>
- <elseif SpellTargetRaw="Mode:*|MDT|Resist">
- <if SpellTargetRaw="MDT|*:MDT">
- <var cmd="set MagicalDefMode MDT" />
- </if>
- <elseif SpellTargetRaw="Resist|*:Resist">
- <var cmd="set MagicalDefMode Resist" />
- </elseif>
- <addtochat>Magical Defense Mode: $MagicalDefMode ($MagicalDefElement)</addtochat>
- </elseif>
- <elseif SpellTargetRaw=".Cycle|.Reverse">
- <if advanced='"$MagicalDefMode" = "MDT"'>
- <var cmd="set MagicalDefMode Resist" />
- </if>
- <else>
- <var cmd="set MagicalDefMode MDT" />
- </else>
- <addtochat>Magical Defense Mode: $MagicalDefMode ($MagicalDefElement)</addtochat>
- </elseif>
- <elseif SpellTargetRaw="Element:*">
- <if SpellTargetRaw="*:Fire">
- <var cmd="set MagicalDefElement Fire" />
- </if>
- <elseif SpellTargetRaw="*:Earth|*:Stone">
- <var cmd="set MagicalDefElement Earth" />
- </elseif>
- <elseif SpellTargetRaw="*:Water">
- <var cmd="set MagicalDefElement Water" />
- </elseif>
- <elseif SpellTargetRaw="*:Air|*:Aero|*:Wind">
- <var cmd="set MagicalDefElement Wind" />
- </elseif>
- <elseif SpellTargetRaw="*:Ice">
- <var cmd="set MagicalDefElement Ice" />
- </elseif>
- <elseif SpellTargetRaw="*:Lightning|*:Thunder">
- <var cmd="set MagicalDefElement Thunder" />
- </elseif>
- <elseif SpellTargetRaw="*:Light">
- <var cmd="set MagicalDefElement Light" />
- </elseif>
- <elseif SpellTargetRaw="*:Dark">
- <var cmd="set MagicalDefElement Dark" />
- </elseif>
- <elseif SpellTargetRaw="*:Any|*:None">
- <var cmd="set MagicalDefElement Any" />
- </elseif>
- <elseif SpellTargetRaw="*:All">
- <var cmd="set MagicalDefElement All" />
- </elseif>
- <else>
- <addtochat>Unknown Magical Defense element: [%SpellTargetRaw]</addtochat>
- <return />
- </else>
- <addtochat>Magical Defense Element: $MagicalDefElement</addtochat>
- </elseif>
- <else>
- <!-- Default: Turn on -->
- <var cmd="set MagicalDefense $MagicalDefMode-$MagicalDefElement" />
- <addtochat>Magical Defense: $MagicalDefense</addtochat>
- </else>
- </elseif>
- <!-- Idle/Resting modes -->
- <elseif Spell="IdleMode|CycleIdleMode">
- <!-- Customize these in job xml. -->
- </elseif>
- <elseif Spell="RestingMode|CycleRestingMode">
- <!-- Customize these in job xml. -->
- </elseif>
- <!-- Offensive and Defensive modes -->
- <!-- SpellTargetRaw will be analyzed to determine which aspect of combat is being set,
- and how.
- Modes:
- Aggressive [on|off]
- Offense (general fighting mode)
- Defense (general fighting mode)
- WS (focus for weaponskills separate from standard focus)
- -->
- <elseif Spell="CombatMode">
- <if SpellTargetRaw="Aggressive|Aggressive:*">
- <if SpellTargetRaw="*:Off">
- <var cmd="set AggressiveMode Off" />
- </if>
- <else>
- <var cmd="set AggressiveMode On" />
- </else>
- <addtochat>Aggressive Mode: $AggressiveMode</addtochat>
- </if>
- <elseif SpellTargetRaw="Kite|Kite:*">
- <if SpellTargetRaw="*:Off">
- <var cmd="set KiteMode None" />
- </if>
- <elseif SpellTargetRaw="*:Toggle">
- <if advanced='"$KiteMode"="Kite"'>
- <var cmd="set KiteMode None" />
- </if>
- <else>
- <var cmd="set KiteMode Kite" />
- </else>
- </elseif>
- <else>
- <var cmd="set KiteMode Kite" />
- </else>
- <addtochat>Kiting: $KiteMode</addtochat>
- </elseif>
- <elseif SpellTargetRaw="Offense:*">
- <if SpellTargetRaw="*:Normal">
- <var cmd="set OffenseMode Normal" />
- </if>
- <elseif SpellTargetRaw="*:Att|*:Attack">
- <var cmd="set OffenseMode Att" />
- </elseif>
- <elseif SpellTargetRaw="*:Acc|*:Accuracy">
- <var cmd="set OffenseMode Acc" />
- </elseif>
- <elseif SpellTargetRaw="*:MaxAcc|*:MaxAccuracy">
- <var cmd="set OffenseMode MaxAcc" />
- </elseif>
- <elseif SpellTargetRaw="*:Str">
- <var cmd="set OffenseMode Str" />
- </elseif>
- <elseif SpellTargetRaw="*:Crit">
- <var cmd="set OffenseMode Crit" />
- </elseif>
- <elseif SpellTargetRaw="*:LowDmg">
- <var cmd="set OffenseMode LowDmg" />
- </elseif>
- <else>
- <var cmd="set OffenseMode Normal" />
- </else>
- <addtochat>Offense Mode: $OffenseMode</addtochat>
- </elseif>
- <elseif SpellTargetRaw="Defense:*">
- <if SpellTargetRaw="*:Eva|*:Evasion">
- <var cmd="set PTankMode Evasion" />
- </if>
- <elseif SpellTargetRaw="*:Shield">
- <var cmd="set PTankMode Shield" />
- </elseif>
- <elseif SpellTargetRaw="*:Counter">
- <var cmd="set PTankMode Counter" />
- </elseif>
- <elseif SpellTargetRaw="*:PDT">
- <var cmd="set PTankMode PDT" />
- </elseif>
- <else>
- <var cmd="set PTankMode Normal" />
- </else>
- <if advanced='"$PTankMode"="Normal" OR "$Has$PTankMode"="Yes"'>
- <var cmd="set DefenseMode $PTankMode" />
- </if>
- <else>
- <addtochat>$PTankMode is unavailable.</addtochat>
- </else>
- <addtochat>Defense Mode: $DefenseMode</addtochat>
- </elseif>
- <elseif SpellTargetRaw="WS:*|Weaponskill:*">
- <if SpellTargetRaw="*:Acc|*:Accuracy">
- <var cmd="set WSMode Accuracy" />
- </if>
- <elseif SpellTargetRaw="*:Att|*:Attack">
- <var cmd="set WSMode Attack" />
- </elseif>
- <elseif SpellTargetRaw="*:Mod">
- <var cmd="set WSMode Mod" />
- </elseif>
- <elseif SpellTargetRaw="*:Crit">
- <var cmd="set WSMode Crit" />
- </elseif>
- <else>
- <var cmd="set WSMode Default" />
- </else>
- <addtochat>Weaponskill Focus: $WSMode</addtochat>
- </elseif>
- <elseif SpellTargetRaw="Cycle(*)">
- <if SpellTargetRaw="*(Offense)">
- <if advanced='"$OffenseMode"="Normal"'>
- <var cmd="set OffenseMode Att" />
- </if>
- <elseif advanced='"$OffenseMode"="Att"'>
- <var cmd="set OffenseMode Acc" />
- </elseif>
- <elseif advanced='"$OffenseMode"="Acc"'>
- <var cmd="set OffenseMode MaxAcc" />
- </elseif>
- <elseif advanced='"$OffenseMode"="MaxAcc"'>
- <var cmd="set OffenseMode Str" />
- </elseif>
- <elseif advanced='"$OffenseMode"="Str"'>
- <var cmd="set OffenseMode Crit" />
- </elseif>
- <elseif advanced='"$OffenseMode"="Crit"'>
- <var cmd="set OffenseMode LowDmg" />
- </elseif>
- <elseif advanced='"$OffenseMode"="LowDmg"'>
- <var cmd="set OffenseMode Normal" />
- </elseif>
- <else>
- <var cmd="set OffenseMode Normal" />
- </else>
- <addtochat>Offense Mode: $OffenseMode</addtochat>
- </if>
- <elseif SpellTargetRaw="*(Defense)">
- <!-- Order: Normal > Evasion > PDT > Shield > Counter -->
- <if advanced='"$DefenseMode" = "Normal"'>
- <if advanced='"$HasEvasion" = "Yes"'>
- <var cmd="set DefenseMode Evasion" />
- </if>
- <elseif advanced='"$HasPDT" = "Yes"'>
- <var cmd="set DefenseMode PDT" />
- </elseif>
- <elseif advanced='"$HasShield" = "Yes"'>
- <var cmd="set DefenseMode Shield" />
- </elseif>
- <elseif advanced='"$HasCounter" = "Yes"'>
- <var cmd="set DefenseMode Counter" />
- </elseif>
- </if>
- <elseif advanced='"$DefenseMode" = "Evasion"'>
- <if advanced='"$HasPDT" = "Yes"'>
- <var cmd="set DefenseMode PDT" />
- </if>
- <elseif advanced='"$HasShield" = "Yes"'>
- <var cmd="set DefenseMode Shield" />
- </elseif>
- <elseif advanced='"$HasCounter" = "Yes"'>
- <var cmd="set DefenseMode Counter" />
- </elseif>
- <else>
- <var cmd="set DefenseMode Normal" />
- </else>
- </elseif>
- <elseif advanced='"$DefenseMode" = "PDT"'>
- <if advanced='"$HasShield" = "Yes"'>
- <var cmd="set DefenseMode Shield" />
- </if>
- <elseif advanced='"$HasCounter" = "Yes"'>
- <var cmd="set DefenseMode Counter" />
- </elseif>
- <else>
- <var cmd="set DefenseMode Normal" />
- </else>
- </elseif>
- <elseif advanced='"$DefenseMode" = "Shield"'>
- <if advanced='"$HasCounter" = "Yes"'>
- <var cmd="set DefenseMode Counter" />
- </if>
- <else>
- <var cmd="set DefenseMode Normal" />
- </else>
- </elseif>
- <else>
- <var cmd="set DefenseMode Normal" />
- </else>
- <addtochat>Defense Mode: $DefenseMode</addtochat>
- </elseif>
- <elseif SpellTargetRaw="*(WS)|*(Weaponskill)">
- <if advanced='"$WSMode"="Default"'>
- <var cmd="set WSMode Accuracy" />
- </if>
- <elseif advanced='"$WSMode"="Accuracy"'>
- <var cmd="set WSMode Attack" />
- </elseif>
- <elseif advanced='"$WSMode"="Attack"'>
- <var cmd="set WSMode Mod" />
- </elseif>
- <elseif advanced='"$WSMode"="Mod"'>
- <var cmd="set WSMode Crit" />
- </elseif>
- <else>
- <var cmd="set WSMode Default" />
- </else>
- <addtochat>Weaponskill Focus: $WSMode</addtochat>
- </elseif>
- </elseif>
- <elseif SpellTargetRaw="Reverse(*)">
- <if SpellTargetRaw="*(Offense)">
- <if advanced='"$OffenseMode"="Normal"'>
- <var cmd="set OffenseMode LowDmg" />
- </if>
- <elseif advanced='"$OffenseMode"="LowDmg"'>
- <var cmd="set OffenseMode Crit" />
- </elseif>
- <elseif advanced='"$OffenseMode"="Crit"'>
- <var cmd="set OffenseMode Str" />
- </elseif>
- <elseif advanced='"$OffenseMode"="Str"'>
- <var cmd="set OffenseMode MaxAcc" />
- </elseif>
- <elseif advanced='"$OffenseMode"="MaxAcc"'>
- <var cmd="set OffenseMode Acc" />
- </elseif>
- <elseif advanced='"$OffenseMode"="Acc"'>
- <var cmd="set OffenseMode Att" />
- </elseif>
- <elseif advanced='"$OffenseMode"="Att"'>
- <var cmd="set OffenseMode Normal" />
- </elseif>
- <else>
- <var cmd="set OffenseMode Normal" />
- </else>
- <addtochat>Offense Mode: $OffenseMode</addtochat>
- </if>
- <elseif SpellTargetRaw="*(Defense)">
- <!-- Order: Normal < Evasion < PDT < Shield < Counter -->
- <if advanced='"$DefenseMode" = "Normal"'>
- <if advanced='"$HasCounter" = "Yes"'>
- <var cmd="set DefenseMode Counter" />
- </if>
- <elseif advanced='"$HasShield" = "Yes"'>
- <var cmd="set DefenseMode Shield" />
- </elseif>
- <elseif advanced='"$HasPDT" = "Yes"'>
- <var cmd="set DefenseMode PDT" />
- </elseif>
- <elseif advanced='"$HasEvasion" = "Yes"'>
- <var cmd="set DefenseMode Evasion" />
- </elseif>
- </if>
- <elseif advanced='"$DefenseMode" = "Counter"'>
- <if advanced='"$HasShield" = "Yes"'>
- <var cmd="set DefenseMode Shield" />
- </if>
- <elseif advanced='"$HasPDT" = "Yes"'>
- <var cmd="set DefenseMode PDT" />
- </elseif>
- <elseif advanced='"$HasEvasion" = "Yes"'>
- <var cmd="set DefenseMode Evasion" />
- </elseif>
- <else>
- <var cmd="set DefenseMode Normal" />
- </else>
- </elseif>
- <elseif advanced='"$DefenseMode" = "Shield"'>
- <if advanced='"$HasPDT" = "Yes"'>
- <var cmd="set DefenseMode PDT" />
- </if>
- <elseif advanced='"$HasEvasion" = "Yes"'>
- <var cmd="set DefenseMode Evasion" />
- </elseif>
- <else>
- <var cmd="set DefenseMode Normal" />
- </else>
- </elseif>
- <elseif advanced='"$DefenseMode" = "PDT"'>
- <if advanced='"$HasEvasion" = "Yes"'>
- <var cmd="set DefenseMode Evasion" />
- </if>
- <else>
- <var cmd="set DefenseMode Normal" />
- </else>
- </elseif>
- <else>
- <var cmd="set DefenseMode Normal" />
- </else>
- <addtochat>Defense Mode: $DefenseMode</addtochat>
- </elseif>
- <elseif SpellTargetRaw="*(WS)|*(Weaponskill)">
- <if advanced='"$WSMode"="Default"'>
- <var cmd="set WSMode Crit" />
- </if>
- <elseif advanced='"$WSMode"="Crit"'>
- <var cmd="set WSMode Mod" />
- </elseif>
- <elseif advanced='"$WSMode"="Mod"'>
- <var cmd="set WSMode Attack" />
- </elseif>
- <elseif advanced='"$WSMode"="Attack"'>
- <var cmd="set WSMode Accuracy" />
- </elseif>
- <else>
- <var cmd="set WSMode Default" />
- </else>
- <addtochat>Weaponskill Focus: $WSMode</addtochat>
- </elseif>
- </elseif>
- <elseif SpellTargetRaw="Toggle(*)">
- <if SpellTargetRaw="*(Aggressive)">
- <if advanced='"$AggressiveMode"="On"'>
- <var cmd="set AggressiveMode Off" />
- </if>
- <else>
- <var cmd="set AggressiveMode On" />
- </else>
- <addtochat>Aggressive Mode: $AggressiveMode</addtochat>
- </if>
- <elseif SpellTargetRaw="*(Kite)">
- <if advanced='"$KiteMode"="Kite"'>
- <var cmd="set KiteMode None" />
- </if>
- <else>
- <var cmd="set KiteMode Kite" />
- </else>
- <addtochat>Kite Mode: $KiteMode</addtochat>
- </elseif>
- </elseif>
- </elseif>
- <!-- Casting modes (abstract concepts, not explicit sets) -->
- <elseif Spell="CastingMode">
- <if SpellTargetRaw="NM|Resistant">
- <var cmd="set CastingMode Resistant" />
- </if>
- <elseif SpellTargetRaw="AOEBurn">
- <var cmd="set CastingMode AOEBurn" />
- </elseif>
- <elseif SpellTargetRaw="Dire">
- <var cmd="set CastingMode Dire" />
- </elseif>
- <elseif SpellTargetRaw="Normal|Reset">
- <var cmd="set CastingMode Normal" />
- </elseif>
- <addtochat>Casting Mode: $CastingMode</addtochat>
- </elseif>
- <elseif Spell="CycleCastingMode">
- <if SpellTargetRaw="Reverse">
- <if advanced='"$CastingMode"="Normal"'>
- <var cmd="set CastingMode Dire" />
- </if>
- <elseif advanced='"$CastingMode"="Dire"'>
- <var cmd="set CastingMode AOEBurn" />
- </elseif>
- <elseif advanced='"$CastingMode"="AOEBurn"'>
- <var cmd="set CastingMode ToughNM" />
- </elseif>
- <else>
- <!-- Default: Normal -->
- <var cmd="set CastingMode Normal" />
- </else>
- </if>
- <else>
- <if advanced='"$CastingMode"="Normal"'>
- <var cmd="set CastingMode ToughNM" />
- </if>
- <elseif advanced='"$CastingMode"="ToughNM"'>
- <var cmd="set CastingMode AOEBurn" />
- </elseif>
- <elseif advanced='"$CastingMode"="AOEBurn"'>
- <var cmd="set CastingMode Dire" />
- </elseif>
- <else>
- <!-- Default: Normal -->
- <var cmd="set CastingMode Normal" />
- </else>
- </else>
- <addtochat>Casting Mode: $CastingMode</addtochat>
- </elseif>
- </elseif>
- <elseif Skill="GenericTrigger">
- <if SpellTargetRaw="Test">
- </if>
- <elseif SpellTargetRaw="Check">
- <cancelspell />
- <addtochat>Current base TP set: TP-$TPWeapon-$OffenseMode-$DefenseMode</addtochat>
- </elseif>
- </elseif>
- </if>
- </include>
- <!-- Define the base layer for the $CurrentSet variable to use. -->
- <include name="DefineBaseLayer">
- <if status="Engaged">
- <if advanced='"$Use-OffenseMode"!="None"'>
- <var cmd="set OMode $Use-OffenseMode" />
- </if>
- <else>
- <var cmd="set OMode $OffenseMode" />
- </else>
- <if advanced='"$AggressiveMode"="On"'>
- <var cmd="set BaseLayer TP-$TPWeapon-$OMode-$DefenseMode|$AggressiveLayer" />
- </if>
- <else>
- <var cmd="set BaseLayer TP-$TPWeapon-$OMode-$DefenseMode" />
- </else>
- </if>
- <else>
- <var cmd="set BaseLayer Idle-$IdleArea-$IdleMode" />
- </else>
- </include>
- <!-- Define the general weaponskill set based on certain vars. -->
- <!-- Define which weaponskill mode to use. -->
- <include name="DefineWeaponskillSet">
- <if Spell="$MagicalWS">
- <var cmd="set WSSet WS-%Spell" />
- </if>
- <else>
- <if advanced='"$Use-WSMode" != "None"'>
- <var cmd="set TmpWSMode $Use-WSMode" />
- </if>
- <else>
- <if advanced='"$WSMode"="default"'>
- <if advanced='"$OffenseMode"="Acc" OR "$OffenseMode"="MaxAcc"' NotSpell="$SingleHitWS">
- <var cmd="set TmpWSMode Acc" />
- </if>
- <elseif Spell="$CritWS" BuffActive="Blood Rage">
- <var cmd="set TmpWSMode Crit" />
- </elseif>
- <elseif mode="OR" advanced='"$OffenseMode"="Str" OR "$OffenseMode"="Crit"'
- BuffActive="Berserk|Last Resort|Attack Boost|Building Flourish|Chaos Roll">
- <var cmd="set TmpWSMode Mod" />
- </elseif>
- <elseif BuffActive="Voidwatcher">
- <var cmd="set TmpWSMode Att" />
- </elseif>
- <else>
- <var cmd="set TmpWSMode Normal" />
- </else>
- </if>
- <else>
- <var cmd="set TmpWSMode $WSMode" />
- </else>
- </else>
- <var cmd="set WSSet WS-%Spell-$TmpWSMode" />
- </else>
- <if advanced='$Debug=1'>
- <addtochat>WS Set: $WSSet</addtochat>
- </if>
- </include>
- <!-- Change to appropriate gear set at proper times. -->
- <include name="HandleEquippingGear">
- <!-- INCLUDE ONLY AFTER [CurrentSet] HAS BEEN DEFINED BY YOUR JOB RULES. -->
- <if advanced='$Debug=1'>
- <addtochat>Current Set: $CurrentSet</addtochat>
- </if>
- <!-- After all calculations are done, if the spellcast was run due to a Trigger action,
- just equip the specified gear and return. -->
- <if type="Trigger">
- <equip set="$CurrentSet" />
- <return />
- </if>
- <if type="JobAbility|WeaponSkill|Step|Waltz|Flourish*">
- <AfterCastDelay Delay="0.5" />
- </if>
- <!-- Aftercast equipment resolution deferred. Avoid up-front lag
- from doing these calculations now. -->
- <if status="resting">
- <equip when="all" set="Resting-$RestMode" />
- </if>
- <elseif Spell="Autoset">
- <equip when="idle|engaged" set="$CurrentSet" />
- </elseif>
- <else>
- <!-- Change to <equip> line if you want to test current direct lag. -->
- <equip when="aftercast" set="$CurrentSet" />
- <!-- <command when="aftercast">$UpdateAftercast</command> -->
- </else>
- </include>
- <!-- Handle evaluation of sets and equipping gear at aftercast time slot
- instead of doing all the work before the requested action. Helps
- reduce lag effects. -->
- <include name="ChangeGearAftercast">
- <if type="Trigger" Spell="Update" SpellTargetRaw=".Aftercast">
- <cancelspell />
- <if NotStatus="Dead|Zoning">
- <equip set="$CurrentSet" />
- </if>
- <return />
- </if>
- </include>
- <!-- Elemental Staff Rules -->
- <include name="ElementalStaffRules">
- <if Skill="ElementalMagic">
- <if Spell="Burn|Frost|Choke|Rasp|Shock|Drown">
- <equip when="precast|midcast">
- <main>$Staff-Acc-%SpellElement</main>
- </equip>
- </if>
- <else>
- <if advanced='"$CastingMode" = "Proc"'>
- <equip when="precast|midcast">
- <main>$Staff-Proc-%SpellElement</main>
- </equip>
- </if>
- <else>
- <equip when="precast">
- <main>$Staff-FastCast-%SpellElement</main>
- <sub>Wise Strap</sub>
- </equip>
- <equip when="midcast">
- <main>$Staff-Dmg-%SpellElement</main>
- <sub>Wise Strap</sub>
- </equip>
- </else>
- </else>
- </if>
- <elseif skill="HealingMagic" Spell="Cure*|Cura*">
- <equip when="precast|midcast">
- <main>$Staff-Cures</main>
- </equip>
- </elseif>
- <elseif skill="EnfeeblingMagic">
- <equip when="precast|midcast">
- <main>$Staff-Acc-%SpellElement</main>
- </equip>
- </elseif>
- <elseif type="BardSong">
- <if advanced='$Staff-FastCastAmt-%SpellElement > 0'>
- <equip when="precast">
- <main>$Staff-FastCast-%SpellElement</main>
- </equip>
- </if>
- <if SpellTargetType="MONSTER|NPC">
- <equip when="midcast">
- <main>$Staff-Acc-%SpellElement</main>
- </equip>
- </if>
- </elseif>
- <elseif skill="DivineMagic">
- <if Spell="Banish*|Holy*">
- <equip when="precast|midcast">
- <main>$Staff-Dmg-%SpellElement</main>
- </equip>
- </if>
- <else>
- <equip when="precast|midcast">
- <main>$Staff-Acc-%SpellElement</main>
- </equip>
- </else>
- </elseif>
- <elseif skill="DarkMagic">
- <equip when="precast|midcast">
- <main>$Staff-Acc-%SpellElement</main>
- </equip>
- </elseif>
- </include>
- <!-- Swapping in Obi/Zodiac Ring/Twilight Cape when using Elemental Magic.
- Assumed to be imported in after check for skill="ElementalMagic" has
- already been done. -->
- <include name="ObiRingCape-ElementalMagic">
- <if Element="%DayElement">
- <if skill="ElementalMagic" NotSpell="Burn|Frost|Choke|Rasp|Shock|Drown">
- <if Advanced='"ZodiacRing"!="0"' NotElement="Light|Dark">
- <equip when="midcast">
- <rring>Zodiac Ring</rring>
- </equip>
- </if>
- <if Advanced='"$TwilightCape"!="0"'>
- <equip when="midcast">
- <back>Twilight Cape</back>
- </equip>
- </if>
- <if Advanced='"$Obi-%SpellElement"!="0"'>
- <equip when="midcast">
- <waist>$Obi-%SpellElement</waist>
- </equip>
- </if>
- </if>
- </if>
- <elseif mode="OR" element="%WeatherElement" BuffActive="$Storm-%SpellElement">
- <if Advanced='"$Obi-%SpellElement"!="0"'>
- <if skill="ElementalMagic" NotSpell="Burn|Frost|Choke|Rasp|Shock|Drown">
- <equip when="midcast">
- <waist>$Obi-%SpellElement</waist>
- </equip>
- <if Advanced='"$TwilightCape"!="0"'>
- <equip when="midcast">
- <back>Twilight Cape</back>
- </equip>
- </if>
- </if>
- </if>
- </elseif>
- </include>
- <!-- Swapping in Obi/Zodiac Ring/Twilight Cape when using Healing Magic.
- Assumed to be imported in after check for skill="HealingMagic" has
- already been done. -->
- <include name="ObiRingCape-HealingMagic">
- <if Element="%DayElement">
- <if Spell="Cure*|Cura*">
- <if Advanced='"$Obi-%SpellElement"!="0"'>
- <equip when="midcast">
- <waist>$Obi-%SpellElement</waist>
- </equip>
- </if>
- <if Advanced='"$TwilightCape"!="0"'>
- <equip when="midcast">
- <back>Twilight Cape</back>
- </equip>
- </if>
- </if>
- </if>
- <elseif mode="OR" element="%WeatherElement" BuffActive="$Storm-%SpellElement">
- <if Advanced='"$Obi-%SpellElement"!="0"'>
- <if Spell="Cure*|Cura*">
- <equip when="midcast">
- <waist>$Obi-%SpellElement</waist>
- </equip>
- <if Advanced='"$TwilightCape"!="0"'>
- <equip when="midcast">
- <back>Twilight Cape</back>
- </equip>
- </if>
- </if>
- </if>
- </elseif>
- </include>
- <!-- Swapping in Obi/Zodiac Ring/Twilight Cape when using Divine Magic.
- Assumed to be imported in after check for skill="DivineMagic" has
- already been done. -->
- <include name="ObiRingCape-DivineMagic">
- <if Element="%DayElement">
- <if Spell="Banish*|Holy*">
- <if Advanced='"$TwilightCape"!="0"'>
- <equip when="midcast">
- <back>Twilight Cape</back>
- </equip>
- </if>
- <if Advanced='"$Obi-%SpellElement"!="0"'>
- <equip when="midcast">
- <waist>$Obi-%SpellElement</waist>
- </equip>
- </if>
- </if>
- </if>
- <elseif mode="OR" element="%WeatherElement" BuffActive="$Storm-%SpellElement">
- <if Advanced='"$Obi-%SpellElement"!="0"'>
- <if Spell="Banish*|Holy*">
- <equip when="midcast">
- <waist>$Obi-%SpellElement</waist>
- </equip>
- <if Advanced='"$TwilightCape"!="0"'>
- <equip when="midcast">
- <back>Twilight Cape</back>
- </equip>
- </if>
- </if>
- </if>
- </elseif>
- </include>
- <!-- Swapping in Obi/Zodiac Ring/Twilight Cape when using Quick Draw.
- Assumed to be imported in after check for type="CorsairShot" has
- already been done. -->
- <include name="ObiRingCape-CorsairShot">
- <if NotElement="Light|Dark">
- <if Element="%DayElement">
- <if Advanced='"ZodiacRing"!="0"'>
- <equip when="precast">
- <rring>Zodiac Ring</rring>
- </equip>
- </if>
- <if Advanced='"$TwilightCape"!="0"'>
- <equip when="precast">
- <back>Twilight Cape</back>
- </equip>
- </if>
- <if Advanced='"$Obi-%SpellElement"!="0"'>
- <equip when="precast">
- <waist>$Obi-%SpellElement</waist>
- </equip>
- </if>
- </if>
- <elseif mode="OR" element="%WeatherElement" BuffActive="$Storm-%SpellElement">
- <if Advanced='"$Obi-%SpellElement"!="0"'>
- <equip when="precast">
- <waist>$Obi-%SpellElement</waist>
- </equip>
- <if Advanced='"$TwilightCape"!="0"'>
- <equip when="precast">
- <back>Twilight Cape</back>
- </equip>
- </if>
- </if>
- </elseif>
- </if>
- </include>
- <!-- Swapping in Obi/Zodiac Ring/Twilight Cape when using Ninjutsu.
- Assumed to be imported in after check for type="Ninjutsu" has
- already been done. -->
- <include name="ObiRingCape-Ninjutsu">
- <if Element="%DayElement">
- <if Spell="Katon*|Hyoton*|Huton*|Doton*|Suiton*|Raiton*">
- <if Advanced='"ZodiacRing"!="0"'>
- <equip when="midcast">
- <rring>Zodiac Ring</rring>
- </equip>
- </if>
- <if Advanced='"$TwilightCape"!="0"'>
- <equip when="midcast">
- <back>Twilight Cape</back>
- </equip>
- </if>
- <if Advanced='"$Obi-%SpellElement"!="0"'>
- <equip when="midcast">
- <waist>$Obi-%SpellElement</waist>
- </equip>
- </if>
- </if>
- </if>
- <elseif mode="OR" element="%WeatherElement" BuffActive="$Storm-%SpellElement">
- <if Advanced='"$Obi-%SpellElement"!="0"'>
- <if Spell="Katon*|Hyoton*|Huton*|Doton*|Suiton*|Raiton*">
- <equip when="midcast">
- <waist>$Obi-%SpellElement</waist>
- </equip>
- <if Advanced='"$TwilightCape"!="0"'>
- <equip when="midcast">
- <back>Twilight Cape</back>
- </equip>
- </if>
- </if>
- </if>
- </elseif>
- </include>
- <!-- Swapping in Obi/Zodiac Ring/Twilight Cape when using Blue Magic.
- Assumed to be imported in after check for skill="BlueMagic" has
- already been done. -->
- <include name="ObiRingCape-BlueMagic">
- <if Element="%DayElement">
- <if Spell="*Whisker|*Grudge|Thermal*|Mind Blast|Regurg*|Ice Break|Leaf*|Thunderbolt|Dark Orb">
- <if Advanced='"ZodiacRing"!="0"'>
- <equip when="midcast">
- <rring>Zodiac Ring</rring>
- </equip>
- </if>
- <if Advanced='"$TwilightCape"!="0"'>
- <equip when="midcast">
- <back>Twilight Cape</back>
- </equip>
- </if>
- <if Advanced='"$Obi-%SpellElement"!="0"'>
- <equip when="midcast">
- <waist>$Obi-%SpellElement</waist>
- </equip>
- </if>
- </if>
- </if>
- <elseif mode="OR" element="%WeatherElement" BuffActive="$Storm-%SpellElement">
- <if Advanced='"$Obi-%SpellElement"!="0"'>
- <if Spell="*Whisker|*Grudge|Thermal*|Mind Blast|Regurg*|Ice Break|Leaf*|Thunderbolt|Dark Orb">
- <equip when="midcast">
- <waist>$Obi-%SpellElement</waist>
- </equip>
- <if Advanced='"$TwilightCape"!="0"'>
- <equip when="midcast">
- <back>Twilight Cape</back>
- </equip>
- </if>
- </if>
- </if>
- </elseif>
- </include>
- <!-- Swapping in Obi/Zodiac Ring/Twilight Cape when using Dark Magic.
- Assumed to be imported in after check for skill="DarkMagic" has
- already been done. -->
- <include name="ObiRingCape-DarkMagic">
- <if Element="%DayElement">
- <if Spell="Drain*|Aspir*">
- <if Advanced='"$TwilightCape"!="0"'>
- <equip when="midcast">
- <back>Twilight Cape</back>
- </equip>
- </if>
- <if Advanced='"$Obi-%SpellElement"!="0"'>
- <equip when="midcast">
- <waist>$Obi-%SpellElement</waist>
- </equip>
- </if>
- </if>
- </if>
- <elseif mode="OR" element="%WeatherElement" BuffActive="$Storm-%SpellElement">
- <if Advanced='"$Obi-%SpellElement"!="0"'>
- <if Spell="Drain*|Aspir*">
- <equip when="midcast">
- <waist>$Obi-%SpellElement</waist>
- </equip>
- <if Advanced='"$TwilightCape"!="0"'>
- <equip when="midcast">
- <back>Twilight Cape</back>
- </equip>
- </if>
- </if>
- </if>
- </elseif>
- </include>
- <!-- Automatically generate notifications when buffs are about to wear off. -->
- <!-- MUST include RecastDurations in vars section. -->
- <include name="RecastWarnings">
- <if skill="EnhancingMagic">
- <if Spell="Haste|Refresh*|Phalanx*|Reprisal">
- <var cmd="set Buff-Duration $%Spell-Duration" />
- </if>
- <elseif Spell="Enlight">
- <var cmd="set Buff-Duration $Enlight-Duration" />
- </elseif>
- <elseif Spell="En*">
- <var cmd="set Buff-Duration $Enspell-Duration" />
- </elseif>
- <elseif Spell="*Spikes">
- <var cmd="set Buff-Duration $Spikes-Duration" />
- </elseif>
- <else>
- <!-- Anything else we don't want to give warnings for. -->
- <var cmd="set Buff-Duration 0" />
- </else>
- <if advanced='$Buff-Duration > 0'>
- <!-- Account for rdm stuff that extends durations -->
- <if MainJob="Rdm">
- <var cmd="setcalc BuffDurationMult 100 + ($EstoqueurCape*10) + ($EstoqueurFeet*10)" />
- <if BuffActive="Composure">
- <if SpellTargetType="SELF">
- <var cmd="setcalc BuffDurationMult $BuffDurationMult * 3" />
- </if>
- <elseif SpellTargetType="PLAYER">
- <var cmd="setcalc BuffDurationMult $BuffDurationMult + $EstoqueurSetBonus" />
- </elseif>
- </if>
- <var cmd="setcalc Buff-Duration $Buff-Duration * $BuffDurationMult / 100" />
- </if>
- <elseif MainJob="Sch">
- <if mode="OR" BuffActive="Perpetuance" advanced='"$PerpFlag"="Yes"'>
- <!-- 2.5x duration for Perpetuance with AF3+2 hands. -->
- <var cmd="setcalc BuffDurationMult (int)($BuffDurationMult * 2.5)" />
- </if>
- </elseif>
- <!-- Determine when we want the warning message to happen. -->
- <var cmd="setcalc Warn-Duration $Buff-Duration - $WarnTime" />
- <command when="Aftercast">wait $Warn-Duration;input /echo ~~~~~~~~~~ [%spell] <%SpellTargetName> wearing off in $WarnTime sec. ~~~~~~~~~~</command>
- </if>
- </if>
- <elseif skill="EnfeeblingMagic|DivineMagic|BlueMagic|CorsairShot">
- <if Spell="Sleep*|Repose|Break|Sheep Song|Yawn|Soporific|Dream Flower|Light Shot">
- <var cmd="inc SleepOrder" />
- <var cmd="set Buff-Duration $%Spell-Duration" />
- <var cmd="setcalc Warn-Duration $Buff-Duration - 30" />
- <command when="Aftercast">wait $Warn-Duration;input /echo [%spell] <%SpellTargetName> ($SleepOrder) wearing off in 30 sec.</command>
- <var cmd="setcalc Warn-Duration $Buff-Duration - 10" />
- <command when="Aftercast">wait $Warn-Duration;input /echo [%spell] <%SpellTargetName> ($SleepOrder) wearing off in 10 sec.;spellcast var dec SleepOrder</command>
- </if>
- </elseif>
- <elseif skill="BardSong">
- <if Spell="*Lullaby*">
- <var cmd="set Buff-Duration $%Spell-Duration" />
- <var cmd="setcalc Warn-Duration $Buff-Duration - 10" />
- <command when="Aftercast">wait $Warn-Duration;input /echo [%spell] <%SpellTargetName> ($SleepOrder) wearing off in 10 sec.</command>
- </if>
- </elseif>
- <elseif type="Samba">
- <if MainJob="Dnc">
- <var cmd="set Buff-Duration 120" />
- </if>
- <else>
- <var cmd="set Buff-Duration 90" />
- </else>
- <var cmd="setcalc Warn-Duration $Buff-Duration - $WarnTime" />
- <command when="Aftercast">wait $Warn-Duration;input /echo [%spell] ~~~~~~~~~ Wearing off in $WarnTime sec.</command>
- </elseif>
- </include>
- <!-- Include for calculating expected cast time for a given spell, to use in
- determining which gear swaps are feasible. -->
- <include name="FastCastCalculations">
- <if CastTimeGT="1">
- <if skill="HealingMagic">
- <if Spell="Cure*|Cura*">
- <var cmd="set FastCastAmt $CureFastCast" />
- </if>
- <else>
- <var cmd="set FastCastAmt $HealFastCast" />
- </else>
- </if>
- <elseif skill="EnhancingMagic">
- <var cmd="set FastCastAmt $EnhancingFastCast" />
- </elseif>
- <elseif skill="ElementalMagic">
- <var cmd="set FastCastAmt $ElementalFastCast" />
- <if MainJob="BLM">
- <if MLvlGT="89">
- <var cmd="setcalc FastCastAmt $FastCastAmt + 25" />
- </if>
- <else>
- <var cmd="setcalc FastCastAmt $FastCastAmt + 15" />
- </else>
- </if>
- </elseif>
- <var cmd="setcalc FastCastAmt $FastCastAmt + $GeneralFastCast + $Staff-FastCastAmt-%SpellElement" />
- <if MainJob="RDM">
- <var cmd="setcalc FastCastAmt $FastCastAmt + 30" />
- </if>
- <elseif SubJob="RDM">
- <var cmd="setcalc FastCastAmt $FastCastAmt + 15" />
- </elseif>
- <if BuffActive="Light Arts|Addendum: White">
- <if type="WhiteMagic">
- <var cmd="setcalc FastCastAmt $FastCastAmt + ((100-$FastCastAmt)* 0.1)" />
- </if>
- <elseif type="BlackMagic">
- <var cmd="setcalc FastCastAmt $FastCastAmt - ((100-$FastCastAmt)* 0.2)" />
- </elseif>
- </if>
- <elseif BuffActive="Dark Arts|Addendum: Black">
- <if type="BlackMagic">
- <var cmd="setcalc FastCastAmt $FastCastAmt + ((100-$FastCastAmt)* 0.1)" />
- </if>
- <elseif type="WhiteMagic">
- <var cmd="setcalc FastCastAmt $FastCastAmt - ((100-$FastCastAmt)* 0.2)" />
- </elseif>
- </elseif>
- <if advanced='$FastCastAmt > 80'>
- <var cmd="setcalc FastCastAmt 80" />
- </if>
- <var cmd="setcalc FCCastTime (%CastTime * (100-$FastCastAmt)) / 100" />
- <if advanced='$FCCastTime > 1'>
- <var cmd="set FastCastMode Normal" />
- </if>
- <elseif advanced='$FCCastTime > 0.7'>
- <var cmd="set FastCastMode Moderate" />
- </elseif>
- <else>
- <var cmd="set FastCastMode Quick" />
- </else>
- </if>
- <else>
- <var cmd="set FastCastMode Quick" />
- </else>
- </include>
- <!-- Proc rules exclusive to blm for testing spell procs. -->
- <!-- Staff choice is already handled in Staffs include. -->
- <include name="TestProcRules">
- <!-- Turn on: //castingmode proc
- Turn off: //castingmode proc.off
- Set element: //firetrigger proc (or whichever element~trigger)
- Cast spell: //anyelementtrigger proc-t3
- //anyelementtrigger proc-t4
- //anyelementtrigger proc-ga3
- //anyelementtrigger proc-AM
- //anyelementtrigger proc-brd
- -->
- <if Spell="CastingMode" SpellTargetRaw="Proc*">
- <cancelspell />
- <if BuffActive="Visitant|Voidwatcher">
- <if SpellTargetRaw="*.off|*:off">
- <var cmd="set CastingMode Normal" />
- </if>
- <elseif SpellTargetRaw="*.toggle|*:toggle">
- <if advanced='"$CastingMode"="Proc"'>
- <var cmd="set CastingMode Normal" />
- </if>
- <else>
- <var cmd="set CastingMode Proc" />
- </else>
- </elseif>
- <else>
- <var cmd="set CastingMode Proc" />
- </else>
- </if>
- <else>
- <var cmd="set CastingMode Normal" />
- </else>
- <addtochat>CastingMode=$CastingMode, ProcElement=$ProcElement</addtochat>
- <return />
- </if>
- <!-- In Abyssea, do spell conversion -->
- <elseif BuffActive="Visitant">
- <if type="Trigger" Skill="ElementalTrigger">
- <if NotElement="None|Any|All" SpellTargetRaw="Proc">
- <var cmd="set ProcElement %SpellElement" />
- <addtochat>CastingMode=$CastingMode, ProcElement=$ProcElement</addtochat>
- <cancelspell />
- <return />
- </if>
- <elseif Spell="AnyElementTrigger" advanced='"$CastingMode"="Proc"'>
- <var cmd="set ProcSpell None" />
- <if SpellTargetRaw="Proc-T3">
- <var cmd="set ProcSpell $T3-$ProcElement" />
- </if>
- <elseif SpellTargetRaw="Proc-T4">
- <var cmd="set ProcSpell $T4-$ProcElement" />
- </elseif>
- <elseif SpellTargetRaw="Proc-Ga3">
- <var cmd="set ProcSpell $T-G3-$ProcElement" />
- </elseif>
- <elseif SpellTargetRaw="Proc-AM">
- <var cmd="set ProcSpell $T-AM-$ProcElement" />
- </elseif>
- <elseif SpellTargetRaw="Proc-Brd">
- <var cmd="set ProcSpell $T-Brd-$ProcElement" />
- </elseif>
- <else>
- <addtochat>Unknown Proc: [%SpellTargetRaw]</addtochat>
- </else>
- <if advanced='"$ProcSpell" != "None"'>
- <changespell Spell="$ProcSpell" />
- <changetarget target="<t>" />
- </if>
- <addtochat>Test Spell ($ProcSpell): %Spell > %SpellTarget</addtochat>
- </elseif>
- </if>
- </elseif>
- </include>
- <!-- Experimental code for a universal trigger to activate a job's 2HR. -->
- <include name="Use2HR">
- <if type="Trigger" Spell="ClassTrigger" SpellTargetRaw="2HR">
- <if MainJob="War">
- <changespell spell="Mighty Strikes" />
- <changetarget target="<me>" />
- </if>
- <elseif MainJob="Mnk">
- </elseif>
- <elseif MainJob="Whm">
- </elseif>
- <elseif MainJob="Blm">
- </elseif>
- <elseif MainJob="Rdm">
- </elseif>
- <elseif MainJob="Thf">
- </elseif>
- <elseif MainJob="Pld">
- </elseif>
- <elseif MainJob="Brd">
- </elseif>
- <elseif MainJob="Bst">
- </elseif>
- <elseif MainJob="Rng">
- </elseif>
- <elseif MainJob="Drk">
- </elseif>
- <elseif MainJob="Sam">
- </elseif>
- <elseif MainJob="Nin">
- </elseif>
- <elseif MainJob="Drg">
- </elseif>
- <elseif MainJob="Smn">
- </elseif>
- <elseif MainJob="Blu">
- </elseif>
- <elseif MainJob="Pup">
- </elseif>
- <elseif MainJob="Cor">
- </elseif>
- <elseif MainJob="Sch">
- </elseif>
- <elseif MainJob="Dnc">
- </elseif>
- </if>
- </include>
- <!-- Trigger to notify the user at a user-specified interval from the
- time the trigger is used.
- Use trigger77 for public /party notifications.
- Use trigger78 for private notifications that include the /tell chime.
- Syntax (for a 5 minute/300 second timer):
- /ma trigger77 300
- -->
- <include name="RespawnTimer">
- <if type="Trigger">
- <!-- Trigger 77 for /party notifications -->
- <if spell="Trigger77">
- <!-- Validate input duration -->
- <if advanced='Regex("%SpellTargetRaw", "^\d+$")'>
- <!-- Basic warning at full duration -->
- <addtochat color="6">~~~~ Starting public respawn timer: %SpellTargetRaw seconds.</addtochat>
- <command>wait %SpellTargetRaw;input /p Respawn time <call12></command>
- <!-- Additional warning when one minute remaining -->
- <var cmd="setcalc Respawn1Min %SpellTargetRaw - 60" />
- <if advanced='$Respawn1Min > 0'>
- <command>wait $Respawn1Min;input /p One minute warning <call14></command>
- </if>
- </if>
- <else>
- <addtochat>Invalid timer duration: %SpellTargetRaw</addtochat>
- </else>
- </if>
- <!-- Trigger 78 for private notifications -->
- <elseif spell="Trigger78">
- <!-- Validate input duration -->
- <if advanced='Regex("%SpellTargetRaw", "^\d+$")'>
- <!-- Basic warning at full duration -->
- <addtochat color="6">~~~~ Starting private respawn timer: %SpellTargetRaw seconds.</addtochat>
- <command>wait %SpellTargetRaw;input /ma Trigger80 0</command>
- <!-- Additional warning when one minute remaining -->
- <var cmd="setcalc Respawn1Min %SpellTargetRaw - 60" />
- <if advanced='$Respawn1Min > 0'>
- <command>wait $Respawn1Min;input /ma Trigger80 60</command>
- </if>
- </if>
- <else>
- <addtochat>Invalid timer duration: %SpellTargetRaw</addtochat>
- </else>
- </elseif>
- <!-- Custom notification code for /tell chime messages. -->
- <elseif spell="Trigger80">
- <if SpellTargetRaw="0">
- <addtochat color="12">~~~~ Respawn timer is up.</addtochat>
- </if>
- <else>
- <addtochat color="12">~~~~ One minute warning for respawn timer.</addtochat>
- </else>
- </elseif>
- </if>
- </include>
- </includes>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement