Read comments before changing anything. If you have any questions or comments I'm on IRC 24/7.
Features
Easy editing. Fill in the sets with your equipment and use variables for conditional equipment.
Equipment management for Summoning Magic, Blood Pacts, and White Magic.
Weapon locking to prevent TP loss.
Elemental Staves, Relic Armor, Conjurer's Ring, and Avatar specific equipment are fully support.
Equipment changes for all Avatar for lowest perpetuation cost possible.
Equipment changes for Blood Pacts for lowest recast timer, and highest attack and accuracy.
Logic for Elemental Siphon that considers elemental strengths to ensure you always get the highest amount of MP.
Elemental Siphon for FFXI Macros
//sc var set ElementalSiphon 1
/ma "Air Spirit" <me>
/wait 5
/ja "Elemental Siphon" <me>
/wait 2
/pet "Release" <me>
PlayerName_SMN.xml
<?xml version="1.0" standalone='yes'?>
<!--Created by ddaydj
Last Updated 2009/05/01
Download macros at http://ddaydj.googlepages.com/smn_scripts.zip
Read comments before changing anything, ESPECIALLY in the rules section. You should only need to make changes to the variables and sets.
-->
<spellcast>
<config RequireVersion="2.22"/>
<variables Clear="True">
<!--Do not change these-->
<var Name="ElementalSiphon">0</var>
<var Name="ElementalStaff">$LightStaff</var>
<var Name="EquipmentReset">0</var>
<var Name="PetName">None</var>
<var Name="NoneStrength">-1</var>
<var Name="FireStrength">6</var>
<var Name="IceStrength">5</var>
<var Name="WindStrength">4</var>
<var Name="EarthStrength">3</var>
<var Name="ThunderStrength">2</var>
<var Name="WaterStrength">1</var>
<var Name="LightStrength">-1</var>
<var Name="DarkStrength">-1</var>
<!--Set this to your HP before Convert HP to MP equipment and after HP+ equipment-->
<var Name="LatentHP">675</var>
<!--Set this to the percentage of TP you want to start locking weapons at-->
<var Name="LockTP">50</var>
<!--Set this to amount of time in seconds you want Physical Blood Pact: Rage to be delayed (5 Recommended, 0 Disabled)-->
<var Name="CastDelay">0</var>
<!--Set these to the Elemental Staves you use, even if you don't use them with Avatars-->
<var Name="FireStaff">Fire Staff</var>
<var Name="IceStaff">Aquilo's Staff</var>
<var Name="WindStaff">Auster's Staff</var>
<var Name="EarthStaff">Terra's Staff</var>
<var Name="ThunderStaff">Jupiter's Staff</var>
<var Name="WaterStaff">Water Staff</var>
<var Name="LightStaff">Apollo's Staff</var>
<var Name="DarkStaff">Pluto's Staff</var>
<!--Set these to 1 if you want to use that piece of equipment, otherwise set to 0-->
<var Name="CarbuncleMitts">1</var>
<var Name="ConjurersRing">1</var><!--Will be equipped in "rring" slot-->
<var Name="ElementalStaves">1</var>
<var Name="EvokersGages">0</var>
<var Name="KaruraHachigane">1</var>
<var Name="SummonersDoublet">1</var>
<var Name="SummonersHorn">1</var>
<var Name="SummonersSpats">1</var>
<!--Set this to 1 if you only want to use Evoker's Gages during Blood Pacts-->
<var Name="EGagesBPOnly">0</var>
<!--Set this to 1 if you want to use Karura Hachigane during Wind weather instead of Summoner's Horn, otherwise set to 0-->
<var Name="KHachiPriority">0</var>
</variables>
<sets>
<group Name="Default" Default="Yes">
<!--This will be the BaseSet for all Pets. Recommened Perpetuation down, Enhance Avatar attributes, and MP equipment-->
<set Name="NormalSet|None">
<main>$DarkStaff</main>
<sub>Light Grip</sub>
<ammo>Hedgehog Bomb</ammo>
<head>Zenith Crown</head>
<neck>Beak Necklace +1</neck>
<lear>Loquac. Earring</lear>
<rear>Astral Earring</rear>
<body>Yinyang Robe</body>
<hands>Nashira Gages</hands>
<lring>Evoker's Ring</lring>
<rring>Serket Ring</rring>
<back>Blue Cape +1</back>
<waist>Hierarch Belt</waist>
<legs>Evoker's Spats</legs>
<feet>Evk. Pigaches +1</feet>
</set>
<!--MP Recovered while healing equipment-->
<set Name="RestingSet" BaseSet="NormalSet">
<main>$DarkStaff</main>
<head>Yigit Turban</head>
<neck>Beack Necklace +1</neck>
<rear>Relaxing Earring</rear>
<body>Yigit Gomlek</body>
<hands>Yigit Gages</hands>
<waist>Hierarch Belt</waist>
<legs>Yigit Seraweels</legs>
<feet>Yigit Crackows</feet>
</set>
<!--Blood Pact ability delay equipment-->
<set Name="BloodPactDelay">
<head>Summoner's Horn</head>
<body>Yinyang Robe</body>
<hands>Summoner's Brcr.</hands>
<legs>Summoner's Spats</legs>
<feet>Summoner's Pgch.</feet>
</set>
<!--Summoning magic skill equipment-->
<set Name="BloodPactWard">
<head>Evoker's Horn</head>
<neck>Summoning Torque</neck>
<rear>Summoning Earring</rear>
<hands>Summoner's Brcr.</hands>
<lring>Evoker's Ring</lring>
<legs>Austere Slops</legs>
<feet>Austere Sabots</feet>
</set>
<!--Enhances Avatar attributes equipment-->
<set Name="BloodPactRage">
<neck>Sacrifice Torque</neck>
<body>Summoner's Dblt.</body>
<hands>Summoner's Brcr.</hands>
<legs>Evoker's Spats</legs>
<feet>Summoner's Pgch.</feet>
</set>
<!--Equipment to be used if Astral Flow is active-->
<set Name="AstralFlow">
<hands>Summoner's Brcr.</hands>
<legs>Evoker's Spats</legs>
<feet>Summoner's Pgch.</feet>
</set>
<!--Mind and Enhancing Magic Skill equipment for Stoneskin-->
<set Name="Stoneskin">
<main>$WaterStaff</main>
<head>Yigit Turban</head>
<hands>Yigit Gages</hands>
<legs>Summoner's Spats</legs>
<feet>Yigit Crackows</feet>
</set>
</group>
</sets>
<!--!!ATTENTION!!
You shouldn't need to change anything from here on-->
<rules>
<!--Disables equipment switching that would cause loss of TP. Lock does not work because of changes with $ElementalStaff-->
<if TPGT="$LockTP">
<action Type="Disable" Slot="Main|Sub|Range"/>
</if>
<else>
<action Type="Enable" Slot="Main|Sub|Range"/>
</else>
<!--Equips Conjurer's Ring if Latent effect is active and enabled-->
<if Advanced='$ConjurersRing=1 AND %HP<$LatentHP AND %TP<100'>
<action Type="Equip" When="PreCast|MidCast|AfterCast"><rring Lock="True">Conjurer's Ring</rring></action>
</if>
<if Type="SummonerPact">
<if Spell="*Spirit" Advanced="$ElementalSiphon=1">
<action Type="Var" cmd="set ElementalSiphon 0"/>
<!--Checks if Air Spirit is best to use for Elemental Siphon-->
<if Spell="Air Spirit" Advanced='"%Weather"="Wind x2" OR "%DayElement"!="Ice" AND "%WeatherElement"="Wind" OR "%DayElement"="Wind" AND "%WeatherElement"="None"'/>
<else>
<!--Checks if Weather Element is stronger than Day Element-->
<if Advanced='"%WeatherElement"!="None" AND ("%Weather"="%WeatherElement x2" OR $%WeatherElementStrength!=$%DayElementStrength-1 OR "%WeatherElement"="Fire" AND "%DayElement"!="Water")'>
<action Type="ChangeSpell" Spell="%WeatherElement Spirit"/>
</if>
<else>
<action Type="ChangeSpell" Spell="%DayElement Spirit"/>
</else>
</else>
</if>
<action Type="Equip" Set="NormalSet"/>
<!--Equips matching Elemental Staff if enabled-->
<if Advanced="$ElementalStaves=1">
<action Type="Var" cmd='set ElementalStaff "$%SpellElementStaff"'/>
<action Type="Equip"><main>$ElementalStaff</main></action>
</if>
<!--Equips Karura Hachigane for Garuda if enabled-->
<if Spell="Garuda" Advanced='$KaruraHachigane=1 AND ("%WeatherElement"!="Wind" OR ("%WeatherElement"="Wind" AND $KHachiPriority=1))'>
<action Type="Equip"><head>Karura Hachigane</head></action>
</if>
<!--Equips Summoner's Horn on matching weather if enabled-->
<elseif Advanced='$SummonersHorn=1 AND "%WeatherElement"="%SpellElement"'>
<action Type="Equip"><head>Summoner's Horn</head></action>
</elseif>
<!--Equips Carbuncle Mitts for Carbuncle if enabled-->
<if Spell="Carbuncle" Advanced="$CarbuncleMitts=1">
<action Type="Equip"><hands>Carbuncle Mitts</hands></action>
</if>
<!--Equips Evoker's Gages for Leviathan if enabled-->
<elseif Spell="Leviathan" Advanced='$EvokersGages=1 AND $EGagesBPOnly=0'>
<action Type="Equip"><hands Lock="True">Evoker's Gages</hands></action>
</elseif>
<!--Equips Summoner's Doublet on matching day if enabled-->
<if Advanced='$SummonersDoublet=1 AND "%DayElement"="%SpellElement" AND "%Spell"!="Carbuncle"'>
<action Type="Equip"><body>Summoner's Dblt.</body></action>
</if>
<!--Equips Summoner's Spats for Spirits if enabled-->
<if Spell="*Spirit" Advanced="$SummonersSpats=1">
<action Type="Equip"><legs>Summoner's Spats</legs></action>
</if>
<elseif Spell="*Spirit">
<action Type="Equip" Set="BloodPactWard"/>
</elseif>
<if BuffActive="Astral Flow" NotSpell="*Spirit">
<action Type="Equip" Set="AstralFlow"/>
</if>
<!--Stops casting spell if only resetting equipment-->
<if Advanced='$EquipmentReset=1'>
<action Type="Var" cmd="set EquipmentReset 0"/>
<action Type="CancelSpell"/>
</if>
<action Type="Var" cmd='set PetName "%Spell"'/>
</if>
<if Type="BloodPact*">
<!--Equips Avatar Enhancing equipment for Physical Blood Pact: Rage-->
<if Spell="Axe Kick|Barracuda Dive|Burning Strike|Camisado|Chaotic Strike|Claw|Cresent Fang|Double Punch|Double Slap|Eclipse Bite|Flaming Crush|Megalith Throw|Moonlt Charge|Mountain Buster|Poison Nails|Predator Claws|Punch|Rock Buster|Rock Throw|Rush|Shock Strike|Spinning Dive|Tail Whip">
<!--If there's no delay to allow Avatar Enhancing equipment to take effec then uses lower delay equipment-->
<if Advanced="$CastDelay=0">
<action Type="Equip" Set="BloodPactDelay"/>
</if>
<else>
<action Type="Equip" When="PreCast" Set="BloodPactDelay|BloodPactRage"/>
<!--Equips specific Enhance Avatar attributes equipment-->
<if Advanced='$EvokersGages=1 AND "$PetName"="Leviathan"'>
<action Type="Equip" When="PreCast"><hands>Evoker's Gages</hands></action>
</if>
<if Advanced='$KaruraHachigane=1 AND "$PetName"="Garuda"'>
<action Type="Equip" When="PreCast"><head>Karura Hachigane</head></action>
</if>
<action Type="CastDelay" Delay="$CastDelay"/>
</else>
<action Type="Equip" When="MidCast" Set="BloodPactWard|BloodPactRage"/>
<if Advanced='$EvokersGages=1 AND "$PetName"="Leviathan"'>
<action Type="Equip" When="MidCast"><hands>Evoker's Gages</hands></action>
</if>
<if Advanced='$KaruraHachigane=1 AND "$PetName"="Garuda"'>
<action Type="Equip" When="MidCast"><head>Karura Hachigane</head></action>
</if>
</if>
<!--Only uses Blood Pact delay gear if Summoning magic skill and Enhance Avatar attributes equipment aren't need-->
<elseif Spell="Aerial Armor|Dream Shroud|Earthen Ward|Ecliptic Growl|Ecliptic Howl|Glittering Ruby|Healing Ruby*|Noctoshield|Shining Ruby|Spring Water|Whispering Wind">
<action Type="Equip" When="PreCast" Set="BloodPactDelay"/>
<action Type="Command" When="MidCast">$PetName</action>
<action Type="Return"/>
</elseif>
<else>
<action Type="Equip" When="PreCast" Set="BloodPactDelay"/>
<action Type="Equip" When="MidCast" Set="BloodPactWard"/>
</else>
<action Type="AfterCastDelay" Delay="2"/>
<action Type="Var" cmd="set EquipmentReset 1"/>
<action Type="Command" When="AfterCast">$PetName</action>
</if>
<!--Equips Summoning magic skill equipment for Elemental Siphon-->
<if Spell="Elemental Siphon">
<action Type="Equip" When="PreCast" Set="BloodPactWard"/>
</if>
<!--Adds a message to the chat log to show Pet Actions, helpful when reviewing a battle-->
<if Spell="Assault" Advanced='"%TargetType"="Monster" AND "$PetName"!="None"'>
<action Type="AddtoChat" Color="56">%PlayerName uses %Spell on the %Target.</action>
</if>
<if Spell="Retreat|Release" Advanced='"$PetName"!="None"'>
<action Type="AddtoChat" Color="56">%PlayerName uses %Spell.</action>
<if Spell="Release">
<action Type="Var" cmd="set PetName None"/>
<action Type="Var" cmd='set ElementalStaff "$DarkStaff"'/>
<action Type="Equip" Set="NormalSet"/>
</if>
</if>
<!--White Magic Rules-->
<if Spell="Cure*|Curaga*">
<action Type="Equip" When="MidCast"><main>$LightStaff</main></action>
<if Advanced='"$PetName"="None"'>
<action Type="Equip" When="AfterCast" Set="NormalSet"/>
</if>
<else>
<action Type="Var" cmd="set EquipmentReset 1"/>
<action Type="Command" When="AfterCast">$PetName</action>
</else>
</if>
<if Spell="Stoneskin">
<action Type="MidCastDelay" Delay="6"/>
<action Type="Equip" When="MidCast" Set="Stoneskin"/>
<if Advanced='"$PetName"="None"'>
<action Type="Equip" When="AfterCast" Set="NormalSet"/>
</if>
<else>
<action Type="Var" cmd="set EquipmentReset 1"/>
<action Type="Command" When="AfterCast">$PetName</action>
</else>
</if>
</rules>
</spellcast>