
Originally Posted by
Suljin
Came back from a long break and replaced most staves with chatoyant, but for some reason its not working on my blm. Any suggestion? I didn't write this so I'm not familiar with conditionals like these, just if/then ones.
http://pastebin.com/1sEHXuAW
Basically no weapons are changing either for spells or idle
Or, conversely, if someone has an xml I could use that essentially is better and all I'd need to do is fill in the equipment I'd be all for that as well. Thanks!
I'll try to assist you assuming you're using the latest version of spellcast. Spellcast XMLs went through an adjustment from version 2.3+ onwards, and you have an older format.
As someone previously said, you have no information for $IdleMain and $IdleSub. You also don't have it listed under your variables. Your fix for that is:
Adjust your variables like so:
Code:
<var name="IdleMain">Owleyes</var>
<var name="IdleSub">Genbu's Shield</var>
And adjust the rules involving it:
Code:
<!--Idle condition for owleyes-->
<if MPPLT="85">
<var cmd="set IdleMain Owleyes" />
<var cmd="set IdleSub Genbu's Shield" />
</if>
<else>
<var cmd="set IdleMain Chthonic Staff" />
<var cmd="set IdleSub Buggard Leather Strap" />
</else>
Also, I too encountered similar issues with changing staves properly upon the switch to Spellcast 2.3+. Your fixes for that:
Change the following from:
Code:
<!-- Elemental Staffs, input what staff to use for each element here -->
<var name="IceStaff">Teiwaz</var>
<var name="DarkStaff">Chatoyant Staff</var>
<var name="ThunderStaff">Chatoyant Staff</var>
<var name="WindStaff">Chatoyant Staff</var>
<var name="FireStaff">Chatoyant Staff</var>
<var name="EarthStaff">Chatoyant Staff</var>
<var name="LightStaff">Chatoyant Staff</var>
<var name="WaterStaff">Chatoyant Staff</var>
<!-- Elemental Obi's, set to 1 for the ones you have. -->
<var name="DarkObi">0</var>
<var name="LightObi">0</var>
<var name="ThunderObi">1</var>
<var name="IceObi">1</var>
<var name="FireObi">0</var>
<var name="WindObi">1</var>
<var name="WaterObi">0</var>
<var name="EarthObi">0</var>
To:
Code:
<var name="Staff-Ice">Vourukasha I</var>
<var name="Staff-Dark">Pluto's Staff</var>
<var name="Staff-Thunder">Apamajas I</var>
<var name="Staff-Light">Arka IV</var>
<var name="Staff-Wind">Auster's Staff</var>
<var name="Staff-Fire">Vulcan's Staff</var>
<var name="Staff-Earth">Terra's Staff</var>
<var name="Staff-Water">Neptune's Staff</var>
<!-- Obis, name them if you have, otherwise leave at 0 -->
<var name="Obi-Ice">Hyorin Obi</var>
<var name="Obi-Dark">Anrin Obi</var>
<var name="Obi-Thunder">Rairin Obi</var>
<var name="Obi-Light">Korin Obi</var>
<var name="Obi-Wind">Furin Obi</var>
<var name="Obi-Fire">Karin Obi</var>
<var name="Obi-Earth">Dorin Obi</var>
<var name="Obi-Water">Suirin Obi</var>
In any case where you have anything like $DarkStaff or $ThunderStaff, I'd adjust those sections appropriately and just make it say <main>Chatoyant Staff</main> or something for simplicity.
For obis, since my code differs a bit from yours, you can also simplify it significantly and have it take less lines.
Change:
Code:
<!-- Handle Elemental Obi's -->
<if Advanced='("%SpellElement" = "%WeatherElement" OR "%SpellElement" = "%DayElement") AND "$%SpellElementObi" = "1"'>
<if Element="Dark">
<equip when="midcast">
<waist lock="yes">Anrin Obi</waist>
</equip>
</if>
<elseif Element="Light">
<equip when="midcast">
<waist lock="yes">Korin Obi</waist>
</equip>
</elseif>
<elseif Element="Thunder">
<equip when="midcast">
<waist lock="yes">Rairin Obi</waist>
</equip>
</elseif>
<elseif Element="Ice">
<equip when="midcast">
<waist lock="yes">Hyorin Obi</waist>
</equip>
</elseif>
<elseif Element="Fire">
<equip when="midcast">
<waist lock="yes">Karin Obi</waist>
</equip>
</elseif>
<elseif Element="Wind">
<equip when="midcast">
<waist lock="yes">Furin Obi</waist>
</equip>
</elseif>
<elseif Element="Water">
<equip when="midcast">
<waist lock="yes">Suirin Obi</waist>
</equip>
</elseif>
<elseif Element="Earth">
<equip when="midcast">
<waist lock="yes">Dorin Obi</waist>
</equip>
</elseif>
</if>
To:
Code:
<!-- Handle Elemental Obi's -->
<if Element="%DayElement|%WeatherElement" advanced='"$Obi-%spellelement"!="0"' notspell="*helix">
<equip when="midcast">
<waist>$Obi-%Spellelement</waist>
<back>Twilight Cape</back>
</equip>
</if>
Sorcerer's Tonban code also varies from 2.3+.
Change the following:
Code:
<if Advanced='(!((bool)regex("%Weather","^.* x2$") AND "%WeatherElement" = "%SpellElement" AND "$%SpellElementObi" = "1") OR !("%WeatherElement" = "%spellElement")) AND ("%SpellElement" = "%DayElement" AND "$BLMAF2Pants" = "1") AND ("%skill"="ElementalMagic")'>
<equip when="midcast">
<legs lock="yes">Sorcerer's Tonban</legs>
</equip>
</if>
To:
Code:
<if Advanced='(!((bool)strmatch("* x2","%Weather") AND "%WeatherElement" = "%SpellElement" AND "$%SpellElementObi" = "1") OR !("%WeatherElement" = "%spellElement")) AND ("%SpellElement" = "%DayElement" AND "$BLMAF2Pants" = "1") AND ("%skill"="ElementalMagic")'>
<equip when="midcast">
<legs lock="yes">Sorcerer's Tonban</legs>
</equip>
</if>
You can also remove the following code if you wish as the adjusted obi code has the cape included; I tend to always use both cape and obi at the same time so it worked for me.
Code:
<if advanced='("%SpellElement"=="%DayElement")||("%SpellElement"=="%WeatherElement")'>
<action type="equip" when="midcast">
<back>Twilight Cape</back>
</action>
</if>
Also, to change the staff properly:
Change the following:
Code:
<!-- finally, equip our staff! -->
<equip when="precast|midcast">
<main>$%SpellElementStaff</main>
</equip>
To:
Code:
<equip when="precast|midcast">
<main>$Staff-%SpellElement</main>
</equip>
Hope that helps.