Aikar's Master BLM Template

In my file you will find more the the bleeding edge new features. My file may not be the easiest to comprehend because It will go into the more advanced techniques of SpellCast. But if thats what your looking for, enjoy :)

<?xml version="1.0" ?>
<!-- 
===================================================
  ||
  ||       Aikar's BLM SpellCast Template
  ||
  || This file is designed to be easily used by others.
  || Simply editing in your own gear and modifying the variables up top
  || should be all that is needed to make use of this file.
  ||
  || Please be sure to configure the variables prior to use.
  ||
  || If you have any questions - Please post on the forums.
===================================================
 -->
<spellcast>
	<config RequireVersion="2.18" />
	<variables>
		<!-- Sleep timers, announces to chat when sleep is wearing off. Set to 0 to not use. -->
		<!-- (note: this is sort of very obvious usage of 3rd party programs, so turn off when around people you dont trust -->
		<var name="SleepTimers">1</var>
		<!-- use BLM AF2 pants or not? Set to 0 if you do not have it -->
		<var name="BLMAF2Pants">1</var>
		<!-- use Sorc ring or not? set to 0 if you do not have it or dangerous location -->
		<var name="Ring">1</var>
		<!-- use Ugg Pendant or not? set to 0 if you do not have it. -->
		<var name="UggPendant">1</var>
		<!-- Set HP Variables for what the maximum amount of HP you can have to trigger sorc ring is for each subjob -->
		<var name="RDMRingHP">597</var>
		<var name="WHMRingHP">583</var>
		<var name="NINRingHP">597</var>
		<!-- Elemental Grips, set to 1 for each you have -->
		<var name="LightGrip">1</var>
		<var name="DarkGrip">1</var>
		<var name="ThunderGrip">1</var>
		<var name="IceGrip">0</var>
		<var name="FireGrip">0</var>
		<var name="WindGrip">0</var>
		<var name="WaterGrip">0</var>
		<var name="EarthGrip">0</var>
		<!-- Elemental Staffs, input what staff to use for each element here -->
		<var name="IceStaff">Aquilo's Staff</var>
		<var name="DarkStaff">Pluto's Staff</var>
		<var name="ThunderStaff">Jupiter's Staff</var>
		<var name="LightStaff">Apollo's Staff</var>
		<var name="WindStaff">Auster's Staff</var>
		<var name="FireStaff">Vulcan's Staff</var>
		<var name="EarthStaff">Terra's Staff</var>
		<var name="LightStaff">Apollo's Staff</var>
		<var name="WaterStaff">Neptune's Staff</var>
		<!-- Elemental Obi's, set to 1 for the ones you have. -->
		<var name="DarkObi">0</var>
		<var name="LightObi">1</var>
		<var name="ThunderObi">1</var>
		<var name="IceObi">0</var>
		<var name="FireObi">0</var>
		<var name="WindObi">0</var>
		<var name="WaterObi">0</var>
		<var name="EarthObi">0</var>
	</variables>
	<sets>
		<group name="Main" default="yes">
			<set name="Standard">
				<main>$EarthStaff</main>
				<sub>Bugard Strap +1</sub>
				<ammo>Phantom Tathlum</ammo>
				<neck>Elemental Torque</neck>
				<lear>Moldavite Earring</lear>
				<rear>Magnetic Earring</rear>
				<body>Black Cloak</body>
				<hands>Zenith Mitts</hands>
				<lring>Omega Ring</lring>
				<rring>Tamas Ring</rring>
				<back>Ixion Cape</back>
				<waist>Penitent's Rope</waist>
				<legs>Mahatma Slops</legs>
				<feet>Herald's Gaiters</feet>
			</set>
			<set name="FastCast">
				<feet>Rostrum Pumps</feet>
				<rear>Loquac. Earring</rear>
			</set>
			<set name="Resting" BaseSet="Standard">
				<body>Errant Hpl.</body>
				<main>$DarkStaff</main>
				<sub>Raptor Strap +1</sub>
				<head>Oracle's Cap</head>
				<waist>Qiqirn Sash +1</waist>
				<feet>Numerist Pumps</feet>
				<hands>Oracle's Gloves</hands>
				<neck>Beak Necklace +1</neck>
				<lear>Relaxing Earring</lear>
				<rear>Magnetic Earring</rear>
				<legs>Baron's Slops</legs>
				<back>Invigorating Cape</back>
			</set>
			<set name="MinusHP">
				<head>Zenith Crown</head>
				<back>Ixion Cape</back>
				<hands>Zenith Mitts</hands>
				<neck>Morgana's Choker</neck>
				<feet>Rostrum Pumps</feet>
				<ammo>White Tathlum</ammo>
			</set>
			<set name="FullDamage" BaseSet="Standard">
				<sub>Bugard Strap +1</sub>
				<ammo>Phantom Tathlum</ammo>
				<neck>Elemental Torque</neck>
				<lear>Moldavite Earring</lear>
				<rear>Abyssal Earring</rear>
				<head>Wizard's Petasos</head>
				<body>Mrgn. Cotehardie</body>
				<hands>Zenith Mitts</hands>
				<lring>Omega Ring</lring>
				<rring>Tamas Ring</rring>
				<back>Ixion Cape</back>
				<waist>Penitent's Rope</waist>
				<legs>Mahatma Slops</legs>
				<feet>Cobra Crackows</feet>
			</set>
			<set name="HighResist" BaseSet="FullDamage">
				<hands>Wizard's Gloves +1</hands>
				<body>Igqira Weskit</body>
				<head>Sorcerer's Petas.</head>
				<feet>Numerist Pumps</feet>
			</set>
			<set name="MidResist" BaseSet="FullDamage">
				<body>Igqira Weskit</body>
				<head>Sorcerer's Petas.</head>
				<feet>Numerist Pumps</feet>
			</set>			
			<set name="LightResist" BaseSet="FullDamage">
				<body>Igqira Weskit</body>
			</set>					
			<set name="DarkMagic">
				<legs>Wizard's Tonban</legs>
				<lear>Dark Earring</lear>
				<rear>Abyssal Earring</rear>
				<neck>Dark Torque</neck>
			</set>
			<set name="EnfeeblingMagic">
				<body>Wizard's Coat</body>
				<head>Genie Tiara</head>
				<neck>Enfeebling Torque</neck>
				<hands>Oracle's Gloves</hands>
				<lear>Enfeebling Earring</lear>
				<legs>Igqira Lappa</legs>
				<lring>Omega Ring</lring>
			</set>
			<set name="HealingMagic" />
			<set name="DivineMagic" />
			<set name="EnhancingMagic">
				<main lock="yes">$WaterStaff</main>
				<sub>Raptor Strap +1</sub>
				<body>Errant Hpl.</body>
				<neck>Morgana's Choker</neck>
				<head>Zenith Crown</head>
				<feet>Rostrum Pumps</feet>
			</set>
		</group>
	</sets>
	<rules>
		<!-- utility: if you have no target currently, and casting a spell that can be cast on self, then cast on self (buffs). -->
		<if ValidTargets="*Self*" TargetType="None" SpellTarget="&lt;t&gt;">
			<action type="ChangeTarget" target="&lt;me&gt;" />
		</if>
		<!-- utility: if targetting a monster, but casting a spell that can not be cast on monsters, then cast on self (buffs). -->
		<if SpellTarget="&lt;t&gt;" TargetType="MONSTER" NotValidTarget="*Enemy*" ValidTarget="*Self*">
			<action type="changetarget" target="&lt;me&gt;" />
		</if>	
		<!-- dont parse this file if under level 73... ie capped areas -->
		<if MLVLLT="73"> <action type="return" /> </if>
		<!-- set of gear to equip when finished casting a spell or coming back from resting mp (idle set) -->
		<action type="equip" when="Idle|aftercast" set="Standard" />
		<!-- set of gear to equip when resting -->
		<action type="equip" when="Resting" set="Resting" />
 
		<if Spell="Stun">
			<!-- equip gear that helps stun, and nothing else -->
			<action type="equip" set="DarkMagic|FastCast">
				<main>$ThunderStaff</main>
			</action>
			<!-- these codes just print Stun in auto translate into chat. -->
			<action type="command">input /p \xFD\x07\x02\x12\xFC\xFD &gt;&gt; &lt;%SpellTarget&gt;</action>
		</if>
		<else>
			<!-- equip fast cast gear -->
			<action type="equip" Set="FastCast" />
			<!-- Elemental Grip checks. Are we casting an enfeeble, or are we casting on a resistant mob? -->
			<if mode="OR" NotSkill="ElementalMagic" target="Tiamat|Genbu|Suzaku|Seiryu|Byakko|Kirin|Jormungand|Ouryu|Vrtra|Cerberus|Khimaira|Fafnir|Nidhogg|Aspidochelone|King Behemoth|Tinnin|Sarameya|Tyger|Jailer of Love">
				<if Advanced='"$%SpellElementGrip" == "1"'>
					<action type="equip" when="midcast">
						<sub lock="true">%SpellElement Grip</sub>
					</action>
				</if>
			</if>
			<!-- if were handling spells -->
			<if Skill="*Magic">
				<!-- if this is elemental magic (nukes/dot's, then do special handling -->
				<if Skill="ElementalMagic">
					<if Spell="Frost|Drown|Rasp|Burn|Shock|Choke">
						<!-- equip elemental/INT gear for DoT's -->
						<action type="equip" when="precast|midcast" Set="HighResist" />	
					</if>
					<else>
						<!-- this is an actual nuke. Check target to be a known high resist mob (and that ES is not active) -->
						<if Target="Tiamat|Genbu|Suzaku|Seiryu|Byakko|Kirin|Jormungand|Ouryu|Vrtra|Cerberus|Khimaira|Sarameya|Tyger|Jailer of Love" NotBuffActive="Elemental Seal">
							<action type="equip" when="precast|midcast" Set="HighResist" />	
						</if>
						<else>
							<!-- if mob is not high resist, is it a mid resist mob? -->
							<if target="Fafnir|Nidhogg|Aspidochelone|King Behemoth|Tinnin" NotBuffActive="Elemental Seal">
								<action type="equip" when="precast|midcast" Set="MidResist" />	
							</if>
							<else>
								<!-- Normal mob, go full damage gear. -->
								<if mode="or" Area="Dynamis *|Hazhalm*">
									<action type="equip" when="precast|midcast" Set="LightResist" />
								</if>
								<else>
									<action type="equip" when="precast|midcast" Set="FullDamage" />	
								</else>
								<!-- only equip pendant in situations you would equip full damage gear -->
								<if MPPAfterCastLT="50" Advanced="$UggPendant==1">
									<action type="equip" when="midcast">
										<neck lock="yes">Uggalepih Pendant</neck>
									</action>
								</if>
							</else>
							<!-- check for Sorc Ring if mid or low resist mob. HP values to compare to are in variables above. -->
							<if advanced='$Ring == 1'>
								<!-- make sure we have an HP variable set for current subjob -->
								<if Advanced='"$%SubJobRingHP" !="\$%SubJobRingHP"'>
									<if Advanced='%HP &gt; $%SubJobRingHP'>
										<!-- if you have too much HP at the time of casting, equip minus hp -->
										<action type="equip" set="MinusHP" />
									</if>
								</if>
								<else>
									<!-- if no HP amount is specified for the current subjob, just always equip minushp as precast -->
									<action type="equip" set="MinusHP" />
								</else>
 
								<action type="equip" when="midcast">
										<lring>Sorcerer's Ring</lring>
								</action>
							</if>
						</else>
					</else>
				</if>
				<else>
					<!-- for any other type of spell, just equip matching set name. -->
					<action type="equip" when="precast|midcast" Set="Standard|%Skill" />	
				</else>
			</if>
			<else>
				<action type="equip" when="precast|midcast" Set="Standard" />
			</else>				
			<!-- so i can see in general how much my drain did. If Ring=0 then its a dangerous spot and shouldnt drop HP. -->
			<if Spell="Drain" Advanced="$Ring==1">
					<action type="equip" set="MinusHP" />
			</if>
			<!-- Handle Elemental Obi's -->
			<if Advanced='("%SpellElement" = "%WeatherElement" OR "%SpellElement" = "%DayElement") AND "$%SpellElementObi" = "1"'>
				<if     Element="Dark"><action type="equip" when="midcast"><waist lock="yes">Anrin Obi</waist></action></if>
				<elseif Element="Light"><action type="equip" when="midcast"><waist lock="yes">Korin Obi</waist></action></elseif>
				<elseif Element="Thunder"><action type="equip" when="midcast"><waist lock="yes">Rairin Obi</waist></action></elseif>
				<elseif Element="Ice"><action type="equip" when="midcast"><waist lock="yes">Hyorin Obi</waist></action></elseif>
				<elseif Element="Fire"><action type="equip" when="midcast"><waist lock="yes">Karin Obi</waist></action></elseif>
				<elseif Element="Wind"><action type="equip" when="midcast"><waist lock="yes">Furin Obi</waist></action></elseif>
				<elseif Element="Water"><action type="equip" when="midcast"><waist lock="yes">Suirin Obi</waist></action></elseif>
				<elseif Element="Earth"><action type="equip" when="midcast"><waist lock="yes">Dorin Obi</waist></action></elseif>
			</if>
			<!-- Handle AFv2 Pants, but do not equip pants if we already have Weather x2 and day bonuses from obi alone as obi alone hits the 35% damage cap. -->
			<if Advanced='(!((regex)%Weather=^.* x2$(/regex) AND "%WeatherElement" = "%SpellElement" AND "$%SpellElementObi" = "1") OR !("%WeatherElement" = "%spellElement")) AND ("%SpellElement" = "%DayElement" AND "$BLMAF2Pants" = "1") AND ("%skill"="ElementalMagic")'>
				<action type="equip" when="midcast">
					<legs lock="yes">Sorcerer's Tonban</legs>
				</action>
			</if>
			<!-- Timers for when sleep is wearing off. -->
			<if advanced='"$SleepTimers"="1"'>
				<if Spell="Sleep II|Sleepga II">
					<action type="command" when="aftercast">spellcast var inc sleepid;wait 45;input /p [$sleepid:%spell] &lt;%target&gt; Wearing off in 45s</action>
					<action type="command" when="aftercast">wait 75;input /p [$sleepid:%spell] &lt;%target&gt; Wearing off in 15s</action>
					<action type="command" when="aftercast">wait 85;input /p [$sleepid:%spell] &lt;%target&gt; Wearing off in 5s;spellcast var dec sleepid;</action>
				</if>
				<elseif Spell="Sleep|Sleepga">
					<action type="command" when="aftercast">spellcast var inc sleepid;wait 45;input /p [$sleepid:%spell] &lt;%target&gt; Wearing off in 15s</action>
					<action type="command" when="aftercast">wait 55;input /p [$sleepid:%spell] &lt;%target&gt; Wearing off in 5s;spellcast var dec sleepid;</action>
				</elseif>
			</if>
			<!-- auto cancel sneak/utsu/stoneskin/blink when recasting them. Requires Cancel Plugin -->
			<if Spell="Sneak" BuffActive="Sneak" advanced='"%SpellTarget"="%PlayerName" OR "%SpellTarget"="&lt;me&gt;" OR ("%target"="%PlayerName" AND "%SpellTarget"="&lt;t&gt;")'>
				<action type="command" when="midcast">cancel 71</action>
				<action type="midcastdelay" delay="2.1" />
			</if>
			<if spell="Utsusemi: Ichi" BuffActive="Copy Image">
				<action type="midcastdelay" delay="3.0" />
				<action type="Command" when="midcast">cancel 66</action>
			</if>
			<elseif Spell="Stoneskin" BuffActive="Stoneskin">
				<action type="command" when="midcast">cancel 37</action>
				<action type="midcastdelay" delay="4.8" />
			</elseif>
			<elseif Spell="Blink" BuffActive="Blink">
				<action type="command" when="midcast">cancel 36</action>
				<action type="midcastdelay" delay="4.5" />
			</elseif>
			<!-- finally, equip our staff! -->
			<action type="equip" when="midcast">
				<main>$%SpellElementStaff</main>
			</action>
		</else>
	</rules>
</spellcast>
plugins/spellcast/userxml/blm/aikar_blm.txt · Last modified: 2008/09/25 21:37 by aikar
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