Here's my SMN script I spent the better part of an evening working on with help from the IRC. Hope you can make use of it. It optimizes gear for BPs, Elemental Siphon, and auto-cancel script for sneak/shadows/stoneskin.
V2 - Added code to swap to the assigned light staff for “Cur*” and then it will swap back to your last equipped staff (based on what summon you have out/had out last).
V3 - Added code to equip sacrifice torque and other gear for physical only blood pacts.
V4 - Edited a bit of the siphon stuff as it wasn't working when weather was weak to day.
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>
<?xml version="1.0" ?>
<spellcast xmlns:xi = "http://www.w3.org/2001/XInclude">
<config />
<variables>
<var Name="ElementalSiphon">0</var>
<var name="horn">Evoker's Horn</var>
<var name="rhorn">Summoner's Horn</var>
<var name="summonerbody">Summoner's Doublet</var>
<var name="summonerhands">Summoner's bracers</var>
<var Name="ElementalStaff">$LightStaff</var>
<var Name="LastStaff">$LightStaff</var>
<var Name="LastHands">Carbuncle Mitts</var>
<var name="standardbody">Yinyang Robe</var>
<var name="pacthead">Evoker's Horn</var>
<var Name="LastHead">$rhorn</var>
<var Name="LightStaff">Apollo's Staff</var>
<var Name="DarkStaff">Pluto's Staff</var>
<var Name="FireStaff">Vulcan's 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">Neptune's Staff</var>
<var Name="Noneweakness">-1</var>
<var Name="Lightweakness">dark</var>
<var Name="Darkweakness">light</var>
<var Name="Fireweakness">water</var>
<var Name="Iceweakness">fire</var>
<var Name="Windweakness">ice</var>
<var Name="Earthweakness">wind</var>
<var Name="Thunderweakness">earth</var>
<var Name="Waterweakness">thunder</var>
</variables>
<sets>
<group name="MiscGear" Subjob="*">
<set name="MiscGearCollector" load ="yes">
<main store="locker">Vulcan's Staff</main>
<main store="locker">Aquilo's staff</main>
<main store="locker">Auster's Staff</main>
<main store="locker">Terra's Staff</main>
<main store="locker">Jupiter's Staff</main>
<main store="locker">Neptune's Staff</main>
<main store="locker">Apollo's Staff</main>
<main store="locker">Pluto's Staff</main>
<ammo store="locker">Hedgehog Bomb</ammo>
<sub store="locker">Staff Strap</sub>
<sub store="locker">Ariesian Grip</sub>
<head store="locker">Summoner's Horn</head>
<head store="locker">Walahra Turban</head>
<head store="locker">Karura Hachigane</head>
<head store="locker">Yigit Turban</head>
<head store="locker">Evoker's Horn</head>
<body store="locker">Royal Redingote</body>
<body store="locker">Summoner's Dblt.</body>
<body store="locker">Errant Hpl.</body>
<body store="locker">Yinyang Robe</body>
<hands store="locker">Nashira Gages</hands>
<hands store="locker">Oracle's Gloves</hands>
<hands store="locker">Summoner's Brcr.</hands>
<hands store="locker">Carbuncle Mitts</hands>
<legs store="locker">Summoner's Spats</legs>
<legs store="locker">Evoker's Spats</legs>
<legs store="locker">Austere Slops</legs>
<feet store="locker">Nashira Crackows</feet>
<feet store="locker">Evk. Pigaches +1</feet>
<feet store="locker">Goliard Clogs</feet>
<neck store="locker">Sacrifice Torque</neck>
<neck store="locker">Smn. Torque</neck>
<neck store="locker">Beak necklace +1</neck>
<waist store="locker">Hierarch Belt</waist>
<waist store="locker">Qiqirn Sash +1</waist>
<back store="locker">Blue Cape +1</back>
<lear store="locker">Loquac. Earring</lear>
<rear store="locker">Antivenom Earring</rear>
<rear store="locker">Relaxing Earring</rear>
<lring store="locker">Evoker's Ring</lring>
<rring store="locker">serket Ring</rring>
</set>
</group>
<group name="Main" default="yes">
<set Name="idle">
<ammo>hedgehog Bomb</ammo>
<neck>Beak Necklace +1</neck>
<lear>Antivenom Earring</lear>
<rear>Loquac. Earring</rear>
<head>$LastHead</head>
<body>$standardbody</body>
<hands>$LastHands</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>Evoker's Pigaches +1</feet>
<sub>Staff Strap</sub>
</set>
<set Name="BPdelay" baseset="idle">
<head>$rhorn</head> <!--3-->
<body>Yinyang Robe</body> <!--5-->
<hands>$summonerhands</hands> <!--2-->
<legs>Summoner's Spats</legs> <!--2-->
<feet>Summoner's Pgch.</feet> <!--2-->
</set>
<set Name="Physical" baseset="idle">
<head>$pacthead</head>
<body>Royal redingote</body>
<neck>Sacrifice Torque</neck>
<hands>$summonerhands</hands>
<legs>Evoker's spats</legs>
<feet>Summoner's Pgch.</feet>
</set>
<set Name="Magical" baseset="idle">
<head>Evoker's Horn</head>
<neck>Summoning Torque</neck>
<body>Royal redingote</body>
<hands>$summonerhands</hands>
<legs>Austere Slops</legs>
<feet>Nashira Crackows</feet>
</set>
<set Name="SummoningSkill" baseset="idle">
<head>Evoker's Horn</head>
<neck>Summoning Torque</neck>
<body>$summonerbody</body>
<hands>$summonerhands</hands>
<legs>Austere Slops</legs>
<feet>Nashira Crackows</feet>
</set>
<set Name="resting" baseset="idle">
<body>Errant Hpl.</body>
<main>$DarkStaff</main>
<sub>Ariesian grip</sub>
<hands>Oracle's Gloves</hands>
<head>Yigit Turban</head>
<waist>Qiqirn Sash +1</waist>
<neck>Beak Necklace +1</neck>
<lear>Antivenom Earring</lear>
<rear>Relaxing Earring</rear>
<feet>Goliard clogs</feet>
</set>
<set Name="WS" baseset="idle">
<body>Errant Houppelande</body>
<head>Yigit turban</head>
<legs>Austere slops</legs>
</set>
</group>
</sets>
<rules>
<!-- this area used to define the 'last' equipped pieces based on what avatar was last summoned -->
<if skill="SummoningMagic">
<action type="Var" cmd="set LastStaff $%SpellElementStaff" />
<if advanced='"%DayElement"="%SpellElement" AND "%Spell"!="Carbuncle"'>
<action type="var" cmd='set standardbody $summonerbody'/>
</if>
<else>
<action type="var" cmd='set standardbody "Yinyang Robe"'/>
</else>
<if advanced='"%WeatherElement"="$%SpellElementweakness"'>
<action type="var" cmd='set $LastHead "Walahra Turban"' />
</if>
<if spell="Carbuncle">
<action type="var" cmd='set LastHands "Carbuncle Mitts"' />
</if>
<else>
<action type="var" cmd='set LastHands "Nashira Gages"' />
</else>
<if spell="Garuda">
<if advanced='"%WeatherElement"="%SpellElement"'>
<action type="var" cmd='set $LastHead $rhorn' />
</if>
<else>
<action type="var" cmd='set LastHead "Karura Hachigane"' />
</else>
<action type="var" cmd='set pacthead "Karura Hachigane"' />
</if>
<else>
<action type="var" cmd='set LastHead "$rhorn"' />
</else>
</if>
<if Type="SummonerPact">
<action Type="Var" cmd='set ElementalStaff "$%SpellElementStaff"'/>
<action Type="CastDelay" delay=".5" />
<if Spell="*Spirit">
<action type="equip" set="summoningskill" />
<action Type="Var" cmd="set ElementalSiphon 0"/>
<if Advanced='("%WeatherElement"!="None" AND ("%Weather"="*x2" OR "%DayElement"!="$%WeatherElementWeakness"))'>
<if Advanced='"%WeatherElement"="Wind"'>
<action Type="ChangeSpell" Spell="Air Spirit" />
<action type="equip">
<main>$windstaff</main>
</action>
</if>
<else>
<action Type="ChangeSpell" Spell="%WeatherElement Spirit"/>
<action type="equip">
<main>$%weatherelementstaff</main>
</action>
</else>
</if>
<else>
<if Advanced='"%DayElement"="Wind"'>
<action Type="ChangeSpell" Spell="Air Spirit" />
<action type="equip">
<main>$windstaff</main>
</action>
</if>
<else>
<action Type="ChangeSpell" Spell="%DayElement Spirit"/>
<action type="equip">
<main>$%dayelementstaff</main>
</action>
</else>
</else>
</if>
<elseif spell="carbuncle">
<action type="equip" when="precast" set="idle">
<main>$LightStaff</main>
<hands>Carbuncle Mitts</hands>
</action>
</elseif>
<elseif spell="*spirit">
<action type="equip" when="midcast" set="SummoningSkill">
<main>$%SpellElementStaff</main>
</action>
</elseif>
<else>
<action type="equip" when="midcast" set="idle">
<main>$%SpellElementStaff</main>
</action>
</else>
</if>
<if spell="Cure*|Cura*">
<action type="equip" when="precast">
<main>$LightStaff</main>
</action>
<action type="equip" when="aftercast">
<main>$LastStaff</main>
</action>
</if>
<if type="Bloodpact*">
<action type="equip" when="precast" set="BPdelay" />
<action type="midcastdelay" delay="1" />
<if spell="Poison Nails|Moonlit Charge|Crescent Fang|Eclipse Bite|Punch|Burning Strike|Double Punch|Flaming Crush|Rock Throw|Megalith Throw|Mountain Buster|Barracuda Dive|Tail Whip|Spinning Dive|Claw|Predator Claws|Axe Kick|Double Slap|Rush|Shock Strike|Chaotic Strike|Camisado">
<action type="equip" when="midcast" set="physical"/>
</if>
<else>
<action type="equip" when="midcast" set="Magical" />
</else>
<action type="aftercastdelay" delay="5" />
<action type="equip" when="aftercast" set="idle" />
</if>
<if spell="Release">
<action type="var" cmd='set LastHead "$rhorn"' />
<action type="var" cmd='set pacthead "$horn"' />
<action type="var" cmd='set LastStaff $EarthStaff' />
<action type="var" cmd='set standardbody "yinyang robe"' />
<action type="equip" when="aftercast" set="idle" />
<action type="equip" when="aftercast">
<main>$earthstaff</main>
</action>
</if>
<!-- Auto cancel sneak/utsu/stoneskin/blink when recasting them. Requires Cancel Plugin -->
<if Spell="Sneak" BuffActive="Sneak" SpellTargetType="Self">
<action type="command" when="midcast">cancel 71</action>
<action type="midcastdelay" delay="1.8" />
</if>
<if Spell="Monomi: Ichi" BuffActive="Sneak" SpellTargetType="Self">
<action type="command" when="midcast">cancel 71</action>
<action type="midcastdelay" delay="3.0" />
</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>
<action type="equip" when="resting" set="resting" />
<action type="equip" when="idle" set="idle" />
</rules>
</spellcast>