Mint's BLM

Updated: 5 Jan 2008

Spellcast xml handling all spell types. Notable features include:

  • Defensive/standing set: with a midcast delay such that it is only unequipped for resting and the few seconds a spell is landing. Provides refresh and much needed defense 99% of the time!
  • Sea Obi and AF2 legs for day and weather effects
  • Uggalepih Pendant and Sorcerer's Ring Latent
  • Elemental magic skill group: changes all elemental sets to minimise resists
  • Sleep (and manafont) wear-off timers: allowing the caster to know when a mob will wake
  • Stoneskin set for max dmg absorbed, and auto-cancelling to avoid “no effect” when Stoneskin is already active (requires plugin Cancel)
  • Resting set equipped upon resting using autosets
  • AfterRest set, using autosets, keeps MP high enough after resting to allow Stoneskin to be cast for free, using MP that would otherwise be lost when changing to the Standing set
  • Conserve MP for spells such as Warp II, where attributes and skill are unimportant
  • Cure tier reduction for insufficient MP
  • Salvage Mode: to prevent error message spam when Spellcast tries to modify unavailable slots

NOTES:

  • This xml was written for my Tarutaru, so take into account that RSE, stoneskin, and latent set for Sorc. ring may not work for other Tarutarus and will not work for other races. HP and MP values for each set include my 4 HP and 4 MP merits.
  • Modify gear in sets and staves/obis in variables to match your own.
  • Try to choose gear that can be used in multiple sets, space is limited!
  • Try to keep MP in the standing set close to the resting set, and the other sets as close to the standing set's MP as possible.
    • There is no point in resting to 1200MP when your standing set cuts that to 1000MP as soon as you get up. Equally, if you lead with an enfeeble such as sleep and your enfeebling set cuts you to 800MP, you lose 200MP more. Of course, stats are always going to be more important than MP, so you may want to invest in MP gear for unused slots.
  • Try to keep HP consistent, and as high as possible, between all sets.
    • At worst, a gear swap may put you from max hp into the blood-aggro range. Achieving high HP and the MP goal described above is no easy task, but every 10HP you manage not to lose in changing gear is like an HP merit. Black mages have poor defense and worse max hp, especially Tarutarus, so if you can possibly increase your HP… then do so.
  • Research the Sorcerer's Ring latent, it is not necessary to put your HP into the yellow zone for it to activate. Check Discussion on this item on FFXIclopedia and do some testing.
  • Research the Stoneskin formula, and work out how much +MND you need to cap your Stoneskin, this is also listed on FFXIclopedia.
  • Take advantage of sleep wear-off timers, but beware of possible resists.

Elements of this xml have been adapted from Aikar's and Oskilfai's BLM xml. Many thanks!

<?xml version="1.0" encoding="UTF-8"?>
<spellcast>
  <config Debug="false" HideErrors="false" ShowGearSwaps="False"></config>
 
  <sets>
 
	<group default="yes" name="BLM|BLMele"> 
 
	  <!--Standard (Nuking): MAB, INT-->
 
	  <set name="Standard">
		<ranged lock="true"></ranged>
		<ammo>Phtm. Tathlum</ammo>
		<sub>Bugard Strap +1</sub>
		<head>Wizard's Petasos +1</head>
		<neck>Elemental Torque</neck>
		<body>Genie Weskit</body>
		<hands>Zenith Mitts</hands>
		<back>Merciful Cape</back>
		<waist>Sorcerer's Belt</waist>
		<legs>Jet Seraweels</legs>
		<feet>Yigit Crackows</feet>
		<lring>Tamas Ring</lring>
		<rring>Omega Ring</rring>
		<lear>Moldavite Earring</lear>
		<rear>Novio Earring</rear>
		<!--hp 782, mp 1068 -->
	  </set>
 
	  <!--Resting: hMP, MP-->
 
	  <set name="Resting" BaseSet="Standard">
		<main>Pluto's Staff</main>
		<neck>Grandiose Chain</neck>
		<body>Wizard's Coat +1</body>
		<hands>Oracle's Gloves</hands>
		<waist>Hierarch Belt</waist>
		<feet>Avocat Pigaches</feet>
		<rring>Ether Ring</rring>
		<lear>Relaxing Earring</lear>
		<rear>Insomnia Earring</rear>
		<!--hp 822, mp 1182-->
	  </set>
 
	  <!--Standing/Defensive setup: Refresh, Dmg-, HP-->
 
	  <set name="Standing" BaseSet="Standard">
		<main>Earth Staff</main>
		<head>Sorcerer's Petasos</head>
		<neck>Uggalepih Pendant</neck>
		<body>Sorcerer's Coat</body>
		<hands>Oracle's Gloves</hands>
		<back>Cheviot Cape</back>
		<waist>Hierarch Belt</waist>
		<legs>Jet Seraweels</legs>
		<feet>Herald's Gaiters</feet>
		<lear>Sorcerer's Earring</lear>
		<rear>Insomnia Earring</rear>
		<!--hp 842, mp 1118-->
	  </set>
 
	  <!--Cures: Light Staff, Conserve MP-->
 
	  <set name="Curing" BaseSet="Standing">
		<main>Light Staff</main>
		<body>Genie Weskit</body>
		<!--hp 842, mp 1106-->
	  </set>
 
	  <!--Enfeebling magic: Enfeebling skill, Magic acc., INT/MND as appropriate-->
 
	  <set name="Enfeebling" BaseSet="Standard">
		<main>Alkalurops</main>
		<head>Genie Tiara</head>
		<neck>Enfeebling Torque</neck>
		<body>Wizard's Coat +1</body>
		<hands>Oracle's Gloves</hands>
		<back>Altruistic Cape</back>
		<legs>Igqira Lappa</legs>
		<feet>Avocat Pigaches</feet>
		<rear>Enfeebling Earring</rear>
		<!--hp 837, mp 1034-->
	  </set>
 
	  <set name="Enfeebling-BlackMagic" BaseSet="Enfeebling">
		<lear>Abyssal Earring</lear>
	  </set>
 
 
	  <set name="Enfeebling-WhiteMagic" BaseSet="Enfeebling">
		<waist>Steppe Rope</waist>
	  </set>
 
	  <!--High elemental skill (HNMs and resistant mobs): Elemental skill, Magic acc., INT-->
 
	  <set name="Elemental" BaseSet="Standard">
		<head>Sorcerer's Petasos</head>
		<hands>Wizard's Gloves</hands>
		<feet>Nashira Crackows</feet>
	  </set>
 
	  <!--Dark magic: Dark skill, Magic acc., INT-->
 
	  <set name="Dark" BaseSet="Standard">
		<head>Nashira Turban</head>
		<neck>Dark Torque</neck>
		<hands>Sorcerer's Gloves</hands>
		<waist>Hierarch Belt</waist>
		<legs>Wizard's Tonban</legs>
		<feet>Nashira Crackows</feet>
		<rear>Abyssal Earring</rear>
		<!--hp 802, mp 1059 -->
	  </set>
 
	  <!--Stoneskin: MND gear, more mp than Standing set-->
 
	  <set name="Stoneskin" BaseSet="Standard">
		<main>Alkalurops</main>
		<head>Zenith Crown</head>
		<neck>Promise Badge</neck>		
		<body>Errant Hpl.</body>
		<hands>Sorcerer's Gloves</hands>
		<back>Prism Cape</back>
		<waist>Steppe Rope</waist>
		<feet>Rostrum Pumps</feet>
		<lear>Loquacious Earring</lear>
		<rear>Insomnia Earring</rear>
		<!--hp 757, mp 1122 -->
	  </set>
 
	  <set name="FastCast" BaseSet="Standing">
		<back>Warlock's Mantle</back>
		<feet>Rostrum Pumps</feet>
		<rear>Loquacious Earring</rear>
	  </set>
 
	<!--Sorc. Ring activation set: for interest, since it is not technically a Spellcast set. NB this
		is not the format for Windower macros.-->
 
	  <set name="LatentActivate">
		<head>Zenith Crown</head>
		<hands>Zenith Mitts</hands>
		<waist>Penitent's Rope</waist>
		<feet>Rostrum Pumps</feet>
		<rring>Ether Ring</rring>
		<rear>Moldavite Earring</rear> 
		<!--hp 632, mp 1155-->
	  </set>
 
	</group>
 
  </sets>
 
  <variables>
 
	<!--Variables are a neat way to link a game variable (e.g. Ice element) to a related name that
		isn't always the same (e.g. Aquilo's Staff). This is used for dynamic rules where a game
		variable such as current spell element is used to determine a gear change.-->
 
	<var name="FireStaff">Vulcan's Staff</var>
	<var name="EarthStaff">Earth Staff</var>
	<var name="WaterStaff">Water Staff</var>
	<var name="WindStaff">Auster's Staff</var>
	<var name="IceStaff">Aquilo's Staff</var>
	<var name="ThunderStaff">Jupiter's Staff</var>
	<var name="LightStaff">Light Staff</var>
	<var name="DarkStaff">Pluto's Staff</var>
 
	<var name="FireObi">Karin Obi</var>
	<var name="WindObi">Furin Obi</var>
	<var name="IceObi">Hyorin Obi</var>
	<var name="ThunderObi">Rairin Obi</var>
	<var name="DarkObi">Anrin Obi</var>
 
	<!--Misc. other variables-->
 
	<var name="PreLand"></var>
 
	<var name="lag">0</var>
 
	<var name="BLMAF2Pants">1</var>
 
	<var name="varSleepMessages">1</var>
 
	<var name="RegexResult"></var>
 
	<var name="SalvageMode">0</var>
	<var name="varWeapon">0</var>
	<var name="varHead">0</var>
	<var name="varRanged">0</var>
	<var name="varBody">0</var>
	<var name="varHands">0</var>
	<var name="varRing">0</var>
	<var name="varLegs">0</var>
	<var name="varBack">0</var>
 
  </variables>  
 
 
  <rules>
 
	<!--Autosets: Used to handle gear for and after resting-->
 
	<if spell="autoset">
	  <action type="equip" when="Resting" set="Resting"></action>
	  <action type="equip" when="Idle" set="Standing"></action>
	</if>
 
	<!--PreLand variable: Sets the midcast delay to change gear shortly before the spell lands.
		This keeps the standing set equipped 99% of the time. Takes into account /RDM Fast Cast.
		Since actual calculations on variables are not supported, the dec command is used on the
		cast time (decrement: remove decimal then subtract 1). Fast Cast is %-based, so decrements
		are tiered to keep the time between gear change and spell landing above 1.0s.-->
 
	<if NotSpell="Stun" NotGroup="BLMele">
	  <action type="Var" cmd="set PreLand %CastTime"></action>
	  <action type="Var" cmd="dec PreLand"></action>
	  <action type="Var" cmd="dec PreLand"></action>
	  <if SubJob="RDM">
		<if CastTimeGT="6.8">
		  <action type="Var" cmd="dec PreLand"></action>
		  <if CastTimeGT="12.8">
			<action type="Var" cmd="dec PreLand"></action>
		  </if>
		</if>
	  </if>
	  <if advanced='"$PreLand"&lt;"0"'>
		<action type="Var" cmd="set PreLand 0"></action>
	  </if>
 
	  <action type="midcastdelay" delay="$PreLand"></action>
 
	  <if CastTimeGT="2.75"> <!--Equips Fast Cast set if the spell is 3s or longer-->
		<action type="equip" when="precast" set="FastCast"></action>
	  </if>
	</if>
	<else>
	  <action type="midcastdelay" delay="1"></action>	
	</else>
 
	<!--Equips the Standing set after the spell casts-->
 
	<action type="equip" when="aftercast" set="Standing"></action>	
 
	<!--Elemental Spells: Equips Staff and Nuking set. Situational gear includes:
		*Sorc. Ring for HP latent (read up on this, the latent is not as simple as <75%)
			-NB activating the latent is done using Windower macros, so that it can be done at 
			 will (without requiring a special group).
		*Elemental skill gear where the "BLMele" group is active
		*Uggalepih pendant for MP latent (only used when BLMele is not active)-->
 
	<if Skill="ElementalMagic">
	  <action type="equip" when="midcast"><main>$%SpellElementStaff</main></action>
	  <action type="equip" when="midcast" set="Standard"></action>
	  <if HPLT="633">
		<action type="equip" when="midcast"><rring>Sorcerer's Ring</rring></action>
	  </if>
	  <if Group="BLMele">
		<action type="equip" when="midcast" set="Elemental"></action>
	  </if>
	  <elseif MPPAftercastlt="51">
		<action type="equip" when="midcast"><neck>Uggalepih Pendant</neck></action>
	  </elseif>
	  <if SpellElement="Thunder">
		<action type="equip" when="midcast"><sub>Thunder Grip</sub></action>
	  </if>
 
	</if>
 
	<!--Enfeebling Magic: Equips Staff and Enfeebling set. Allows different gear to be
		added according to alignment (MND for light, INT for dark).-->
 
	<elseif Skill="EnfeeblingMagic">
	  <action type="equip" when="midcast" set="Enfeebling-%Type"></action>
	  <if SpellElement="Dark">
		<action type="equip" when="midcast"><sub>Dark Grip</sub></action>
	  </if>
	  <if buffactive="Signet">
		<action type="equip" when="midcast"><hands>Master Caster's Bracelets</hands></action>
	  </if>
 
	</elseif>
 
	<!--Dark Magic: Equips Staff and Dark set. Stun is excluded due to the importance of
		casting it fast.-->
 
	<elseif Skill="DarkMagic" NotSpell="Stun">
	  <action type="equip" when="midcast"><main>$%SpellElementStaff</main></action>
	  <action type="equip" when="midcast" set="Dark"></action>
	  <if SpellElement="Dark">
		<action type="equip" when="midcast"><sub>Dark Grip</sub></action>
	  </if>
	</elseif>
 
	<!--Cures: Equips Curing set (Light Staff and Conserve MP). Reduces the tier if MP
		is too low for the selected tier. Displays a message for MP less than Cure I.-->
 
	<elseif Spell="Cur*" NotSpell="Cursna" NotBuffActive="Manafont">
	  <action type="equip" when="midcast" set="Curing"></action>
	  <if Spell="Cure III" MPLT="46">
		<action type="ChangeSpell" Spell="Cure II"></action>
	  </if>
	  <elseif Spell="Cure II" MPLT="24">
		<action type="ChangeSpell" Spell="Cure"></action>
	  </elseif>
	  <elseif Spell="Cure" MPLT="8">
		<action type="CancelSpell"></action>
		<action type="equip" set="Standing"></action>
		<action type="addtochat" color="56">### Not enough MP for Cure! ###</action>
	  </elseif>
	</elseif>
 
	<!--Stoneskin/Utsusemi:Ichi: Equips Stoneskin set for max. dmg absorbed. Cancels any existing Stoneskin/Copy Image.-->
 
	<elseif Spell="Stoneskin">
	  <action type="equip" when="midcast" set="Stoneskin"></action>
	  <if BuffActive="Stoneskin">
		<action type="command" when="midcast">cancel 37</action>
	  </if> 
	</elseif>
 
	<elseif spell="Utsusemi: Ichi">
		<action type="midcastdelay" delay="2" />
		<action type="Command" when="midcast">cancel 66</action> 
	</elseif>
 
	<!--Sneak/Invis.: Equips Skulker's Cape to enhance Sneak/Invis. duration-->
 
	<elseif Spell="Sneak|Invisible">
	  <action type="equip" when="midcast"><back>Skulker's Cape</back></action>
	</elseif>
 
	<!--Spells without modifiers: These spells are not improved by Skills or Attributes, 
		Conserve MP gear is equipped where possible, and other gear changes locked.-->
 
	<elseif Spell="Warp*|Retrace|Raise*|Reraise*|Teleport*|Escape|Tractor">
	  <action type="equip" when="precast|midcast|aftercast|autoset">
		<sub lock="true"></sub>
		<ranged lock="true"></ranged>
		<ammo lock="true"></ammo>
		<head lock="true"></head>
		<neck lock="true"></neck>
		<lear lock="true"></lear>
		<rear lock="true"></rear>
		<body lock="true"></body>
		<hands lock="true"></hands>
		<lring lock="true"></lring>
		<rring lock="true"></rring>
		<back lock="true"></back>
		<waist lock="true"></waist>
		<legs lock="true"></legs>
		<feet lock="true"></feet>
	  </action>
	</elseif>
 
	<!--Sea Obis and AF2 Pants: Equips the appropriate Obi when the spell matches, and is 
		affected by, current day and/or weather-->
 
	<if Advanced='("%Skill" != "EnhancingMagic") AND ("%SpellElement" = "%WeatherElement" OR 
				 "%SpellElement" = "%DayElement") AND "$%SpellElementObi" != "\$%SpellElementObi"'>
	  <action type="equip" when="midcast">
		<waist lock="yes">$%SpellElementObi</waist>
	  </action>
	</if>
 
	<if Advanced='(regex)%Weather=^.* x2$(/regex)'>
	  <action type="Var" cmd="set RegexResult TRUE"/>
	</if>
 
	<else>
	  <action type="Var" cmd="set RegexResult FALSE"/>
	</else>
 
	<if Advanced='!("$RegexResult" = "TRUE" AND "%WeatherElement" = "%SpellElement" 
				 AND "$%SpellElementObi" != "\$%SpellElementObi") AND ("%SpellElement" = "%DayElement" AND "$BLMAF2Pants" = 
				 "1") AND ("%Skill" = "ElementalMagic")'>
	  <action type="equip" when="midcast">
		<legs lock="yes">Sorcerer's Tonban</legs>
	  </action>
	</if>
 
	<!--Wear-off messages for Sleep and Manafont: These are -very- useful. You can turn them off 
		by setting the varSleepMessages variable to 0. These timers are for *unresisted* sleeps.
		Sleep is either unresisted or wears after half the normal duration.-->
 
	<if Spell="Manafont">
	  <if Advanced='"$varSleepMessages"="1"'>
		<action type="command" when="precast">wait 14;input /echo ==== Manafont off @ 0:45 ====</action>
		<action type="command" when="precast">wait 29;input /echo ==== Manafont off @ 0:30 ====</action>
		<action type="command" when="precast">wait 44;input /echo ==== Manafont off @ 0:15 ====</action>
		<action type="command" when="precast">wait 54;input /echo ==== Manafont off @ 0:05 ====</action>
	  </if>
	</if>
	<elseif Spell="Sleep|Sleepga">
	  <if Advanced='"$varSleepMessages"="1"'>	
		<action type="command" when="aftercast">wait 14;input /echo ==== %Spell off @ 0:45 ====</action>
		<action type="command" when="aftercast">wait 24;input /echo ==== %Spell off @ 0:35 [resists @ 5s] ====</action>
 
		<action type="command" when="aftercast">wait 29;input /echo ==== %Spell off @ 0:30 [resists over] ====</action>
		<action type="command" when="aftercast">wait 44;input /echo ==== %Spell off @ 0:15 ====</action>
		<action type="command" when="aftercast">wait 54;input /echo ==== %Spell off @ 0:05 ====</action>
	  </if>
	</elseif>
	<elseif Spell="Sleep II|Sleepga II">
	  <if Advanced='"$varSleepMessages"="1"'>
		<action type="command" when="aftercast">wait 14;input /echo ==== %Spell off @ 1:15 ====</action>
		<action type="command" when="aftercast">wait 29;input /echo ==== %Spell off @ 1:00 ====</action>
		<action type="command" when="aftercast">wait 39;input /echo ==== %Spell off @ 0:50 [resists @ 5s] ====</action>
		<action type="command" when="aftercast">wait 44;input /echo ==== %Spell off @ 0:45 [resists over] ====</action>
		<action type="command" when="aftercast">wait 59;input /echo ==== %Spell off @ 0:30 ====</action>
		<action type="command" when="aftercast">wait 74;input /echo ==== %Spell off @ 0:15 ====</action>
		<action type="command" when="aftercast">wait 84;input /echo ==== %Spell off @ 0:05 ====</action>
	  </if>
	</elseif>
 
	<!--Salvage Mode: Prevents Spellcast from attempting gear swaps on unavailable gear slots. 
		Set SalvageMode to 1 to activate, 0 to deactivate. Set gear variables to 1 as you get 
		the appropriate cells.-->
 
	<if advanced='"$SalvageMode"="1"'>
	  <if advanced='"$varWeapon"="0"' > 
		<action type="equip" when="precast|midcast|aftercast|autoset">
		  <main lock="true" />
		  <sub lock="true" />
		</action>
	  </if>
	  <if advanced='"$varHead"="0"' > 
		<action type="equip" when="precast|midcast|aftercast|autoset">
		  <head lock="true" />
		  <neck lock="true" />
		</action>
	  </if>
	  <if advanced='"$varRanged"="0"' > 
		<action type="equip" when="precast|midcast|aftercast|autoset">
		  <ranged lock="true" />
		  <ammo lock="true" />
		</action>
	  </if>
	  <if advanced='"$varBody"="0"' > 
		<action type="equip" when="precast|midcast|aftercast|autoset">
		  <body lock="true" />
		</action>
	  </if>
	  <if advanced='"$varHands"="0"' > 
		<action type="equip" when="precast|midcast|aftercast|autoset">
		  <hands lock="true" />
		</action>
	  </if>
	  <if advanced='"$varRing"="0"' > 
		<action type="equip" when="precast|midcast|aftercast|autoset">
		  <lear lock="true" />
		  <rear lock="true" />
		  <lring lock="true" />
		  <rring lock="true" />
		</action>
	  </if>
	  <if advanced='"$varBack"="0"' > 
		<action type="equip" when="precast|midcast|aftercast|autoset">
		  <back lock="true" />
		  <waist lock="true" />
		</action>
	  </if>
	  <if advanced='"$varLegs"="0"' > 
		<action type="equip" when="precast|midcast|aftercast|autoset">
		  <legs lock="true" />
		  <feet lock="true" />
		</action>
	  </if>
	</if>
 
  </rules>
 
</spellcast>
  
plugins/spellcast/userxml/blm/mints_blm.txt · Last modified: 2009/01/04 19:08 by mint
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0