|
SC for light obi on lights days/weather
サーバ: Phoenix
Game: FFXI
Posts: 1245
By Phoenix.Gaiarorshack 2012-01-19 06:57:38
sorry for a SC noob question
but how do i make it so i use light obi on lights day/weather in my cure set ?
サーバ: Fenrir
Game: FFXI
Posts: 3012
By Fenrir.Leoheart 2012-01-19 07:17:57
I'll send it to you in a pm later, at work :(
Necro Bump Detected!
[201 days between previous and next post]
サーバ: Phoenix
Game: FFXI
Posts: 1245
By Phoenix.Gaiarorshack 2012-08-07 12:18:45
Bumping my old thread cause i lost track on getting korin obi and now finaly got it.
im got this little help from leoheart
Code <if Advanced='"%SpellElement" = "%WeatherElement" OR "%SpellElement" = "%DayElement"'>
<action type="Equip" when="precast">
<waist lock="t">Light Obi</waist>
</action>
</if>
i might not understand it right but for me it looks like it will equip korin obi whenever the spell element fits the weather or day
so like casting slow on earthday will trigger korin obi as well
to my logic (and i might totaly be wrong) it should be something like if %Weatherelement% = light or %dayelement% = light
so it only chance whne its lights day or weather
thanks for all the help
Bismarck.Tragedie
サーバ: Bismarck
Game: FFXI
Posts: 322
By Bismarck.Tragedie 2012-08-07 13:55:54
You are correct. A simple fix would be to change as follows, assuming you are only ever going to use the Light Obi and that's it:
Code <if Advanced='"%SpellElement" = "%WeatherElement" OR "%SpellElement" = "%DayElement"'>
<if Element="Light">
<action type="Equip" when="precast">
<waist lock="t">Korin Obi</waist>
</action>
</if>
</if>
A more common way to accomplish this is here (I believe this is from Aikar's original blm xml):
At the top, define which Obi's you have (or add into your current variables section, which is where you could also put your elemental staff variables): Code <variables>
<var name="DarkObi">1</var>
<var name="LightObi">0</var>
<var name="ThunderObi">1</var>
<var name="IceObi">1</var>
<var name="FireObi">0</var>
<var name="WindObi">0</var>
<var name="WaterObi">0</var>
<var name="EarthObi">0</var>
</variables>
Then in the rules section, add the rules to process all of the obis for the correct elements. At the bottom I've also added a check for the Twilight Cape:
Code <if Advanced="("%SpellElement" = "%WeatherElement" OR "%SpellElement" = "%DayElement") AND "$%SpellElementObi" = "1"">
<if Element="Dark">
<action when="midcast" type="equip">
<waist lock="yes">Anrin Obi</waist>
</action>
</if>
<elseif Element="Light">
<action when="midcast" type="equip">
<waist lock="yes">Korin Obi</waist>
</action>
</elseif>
<elseif Element="Thunder">
<action when="midcast" type="equip">
<waist lock="yes">Rairin Obi</waist>
</action>
</elseif>
<elseif Element="Ice">
<action when="midcast" type="equip">
<waist lock="yes">Hyorin Obi</waist>
</action>
</elseif>
<elseif Element="Fire">
<action when="midcast" type="equip">
<waist lock="yes">Karin Obi</waist>
</action>
</elseif>
<elseif Element="Wind">
<action when="midcast" type="equip">
<waist lock="yes">Furin Obi</waist>
</action>
</elseif>
<elseif Element="Water">
<action when="midcast" type="equip">
<waist lock="yes">Suirin Obi</waist>
</action>
</elseif>
<elseif Element="Earth">
<action when="midcast" type="equip">
<waist lock="yes">Dorin Obi</waist>
</action>
</elseif>
</if>
<if Advanced=""%SpellElement" = "%WeatherElement" OR "%SpellElement" = "%DayElement"">
<equip when="midcast">
<back lock="yes">Twilight Cape</back>
</equip>
</if>
I should note that my xml has been modified a bit, as needed, over the years. I'm not sure which syntax to use in some cases, and I've been too lazy to at least make it all consistent. It works, but it's not clean and that bothers me sometimes (just not enough to fix it.)
Hope this helps.
サーバ: Sylph
Game: FFXI
Posts: 529
By Sylph.Binckry 2012-08-07 13:56:08
Code
<if Advanced='("%SpellElement" = "%WeatherElement" OR "%SpellElement" = "%DayElement") AND "$%SpellElementObi" = "1"'>
<if Element="Light">
<equip when="midcast">
<waist lock="yes">Korin Obi</waist>
<back lock="yes">Twilight Cape</back>
</equip>
</if>
</if>
Is my rule to get korin obi on, but i also have Code
<var name="LightObi">1</var>
in my vars
Bismarck.Tragedie
サーバ: Bismarck
Game: FFXI
Posts: 322
By Bismarck.Tragedie 2012-08-07 14:00:19
I think I like your handling of the Twilight Cape better.
Now I just have to edit all of my XMLs for my jobs and my alt's jobs. ... I need to start using includes...
サーバ: Sylph
Game: FFXI
Posts: 529
By Sylph.Binckry 2012-08-07 14:01:12
Bismarck.Tragedie said: »I think I like your handling of the Twilight Cape better.
Now I just have to edit all of my XMLs for my jobs and my alt's jobs. ... I need to start using includes... Thanks. :D
Edit: I think you could also make your rules like this: Code
<var name="IceObi">Hyorin Obi</var>
<var name="ThunderObi">Rairin Obi</var>
<var name="LightObi">Korin Obi</var>
<var name="WaterObi">Suirin Obi</var>
<var name="DarkObi">Anrin Obi</var>
<var name="EarthObi">Dorin Obi</var>
<var name="WindObi">Fuirin Obi</var>
<var name="FireObi">Karin Obi</var>
In your vars, then in your rules.
First of all, I'm not sure if it has to go in some magic category, or it can just be a rule in itself, so I'll pretend this is a rule for my elemental magics. Code
<if skill="Elemental Magic">
<equip when="precast" set="nuking" />
<if Advanced='"%DayElement" = "%SpellElement" OR "%WeatherElement" = "%SpellElement"'>
<equip when="precast">
<back lock="yes">Twilight Cape</back>
<waist lock="yes">$%SpellElementObi</waist>
</equip>
</if>
</if>
the If advanced rule probably works on its own, but I wasn't sure so I just stuck it in the elemental magic rules.
[+]
サーバ: Fenrir
Game: FFXI
Posts: 3012
By Fenrir.Leoheart 2012-08-07 14:18:50
I never actually noticed that in the code I sent, I only used it for Twilight cape though lol, my bad!
Bismarck.Tragedie
サーバ: Bismarck
Game: FFXI
Posts: 322
By Bismarck.Tragedie 2012-08-07 14:39:17
I think you could also make your rules like this: Code
<var name="IceObi">Hyorin Obi</var>
<var name="ThunderObi">Rairin Obi</var>
<var name="LightObi">Korin Obi</var>
<var name="WaterObi">Suirin Obi</var>
<var name="DarkObi">Anrin Obi</var>
<var name="EarthObi">Dorin Obi</var>
<var name="WindObi">Fuirin Obi</var>
<var name="FireObi">Karin Obi</var>
In your vars, then in your rules.
First of all, I'm not sure if it has to go in some magic category, or it can just be a rule in itself, so I'll pretend this is a rule for my elemental magics. Code
<if skill="Elemental Magic">
<equip when="precast" set="nuking" />
<if Advanced='"%DayElement" = "%SpellElement" OR "%WeatherElement" = "%SpellElement"'>
<equip when="precast">
<back lock="yes">Twilight Cape</back>
<waist lock="yes">$%SpellElementObi</waist>
</equip>
</if>
</if>
the If advanced rule probably works on its own, but I wasn't sure so I just stuck it in the elemental magic rules.
You know I don't know why I never thought of that, as that's how my magic damage and magic acc staves are handled.
The advanced rule does work on its own... in my xml they fall after the magic type rules. That said, I'll probably fine tune it now so I'm not using obi's/cape on enhancing magic, and start using the zodiac ring.
You will probably want to include obi processing on healing magic.
On a side note, any idea if the obis affect magic accuracy as well? I assume it would, as in the past Sleep was easier to land/less often resisted on darksday and harder on lightsday (granted this is from eyeballing/assuming and not from formal testing, but I believe it's generally accepted...)
サーバ: Sylph
Game: FFXI
Posts: 529
By Sylph.Binckry 2012-08-07 15:12:20
Bismarck.Tragedie said: »The advanced rule does work on its own... in my xml they fall after the magic type rules. That said, I'll probably fine tune it now so I'm not using obi's/cape on enhancing magic, and start using the zodiac ring.
You will probably want to include obi processing on healing magic. I do have the obi/cape process in my healing magic, that was just an example on some random category. :p.
サーバ: Phoenix
Game: FFXI
Posts: 1245
By Phoenix.Gaiarorshack 2012-08-07 15:24:32
wait
Does obi have to be on in precast ? i thought it should just be on in midtcast like cure potency.
and will this work ?
Code <if Advanced='"%WeatherElement" = "Light OR "%DayElement" = "Light"'>
<action type="Equip" when="midtcast">
<waist lock="t">Korin Obi</waist>
</action>
</if>
VIP
サーバ: Fenrir
Game: FFXI
Posts: 764
By Fenrir.Motenten 2012-08-07 15:37:53
Here's how I handle it in my code. I break down the obi/ring/cape rules by magic type (elemental, healing, divine, dark, blue, ninjutsu, corsair), since how you want to approach each variant isn't always the same. Only showing the one for Healing Magic below, which doesn't make use of the Zodiac Ring.
Code xml
<!-- Sch weather constants are required for the rules that equip elemental gear.
If you import ElementalGear, you MUST import SchWeatherConstants as well. -->
<include name="ElementalGear">
<!-- Replace 0 with obi name when acquired -->
<var name="Obi-Fire">0</var>
<var name="Obi-Ice">0</var>
<var name="Obi-Wind">0</var>
<var name="Obi-Earth">0</var>
<var name="Obi-Thunder">0</var>
<var name="Obi-Water">0</var>
<var name="Obi-Light">Korin Obi</var>
<var name="Obi-Dark">0</var>
<!-- Replace 0 with gear name when acquired -->
<var name="TwilightCape">Twilight Cape</var>
<var name="ZodiacRing">Zodiac Ring</var>
</include>
<include name="SchWeatherConstants">
<var name="Storm-Fire">Firestorm</var>
<var name="Storm-Ice">Hailstorm</var>
<var name="Storm-Wind">Windstorm</var>
<var name="Storm-Earth">Sandstorm</var>
<var name="Storm-Thunder">Thunderstorm</var>
<var name="Storm-Water">Rainstorm</var>
<var name="Storm-Light">Aurorastorm</var>
<var name="Storm-Dark">Voidstorm</var>
</include>
<!-- Swapping in Obi/Zodiac Ring/Twilight Cape when using Healing Magic.
Assumed to be imported in after check for skill="HealingMagic" has
already been done. -->
<include name="ObiRingCape-HealingMagic">
<if Element="%DayElement">
<if Spell="Cure*|Cura*">
<if Advanced='"$Obi-%SpellElement"!="0"'>
<equip when="midcast">
<waist>$Obi-%SpellElement</waist>
</equip>
</if>
<if Advanced='"$TwilightCape"!="0"'>
<equip when="midcast">
<back>Twilight Cape</back>
</equip>
</if>
</if>
</if>
<elseif mode="OR" element="%WeatherElement" BuffActive="$Storm-%SpellElement">
<if Advanced='"$Obi-%SpellElement"!="0"'>
<if Spell="Cure*|Cura*">
<equip when="midcast">
<waist>$Obi-%SpellElement</waist>
</equip>
<if Advanced='"$TwilightCape"!="0"'>
<equip when="midcast">
<back>Twilight Cape</back>
</equip>
</if>
</if>
</if>
</elseif>
</include>
And then include it as:
Code xml
<if Skill="HealingMagic">
~~ various rules
<xi:include href="Mote-Include.xml" xpointer="//include[@name='ObiRingCape-HealingMagic']/*" />
</if>
Bismarck.Tragedie
サーバ: Bismarck
Game: FFXI
Posts: 322
By Bismarck.Tragedie 2012-08-07 16:01:35
Here's how I handle it in my code. I break down the obi/ring/cape rules by magic type (elemental, healing, divine, dark, blue, ninjutsu, corsair), since how you want to approach each variant isn't always the same. Only showing the one for Healing Magic below, which doesn't make use of the Zodiac Ring.
Code xml
<!-- Sch weather constants are required for the rules that equip elemental gear.
If you import ElementalGear, you MUST import SchWeatherConstants as well. -->
<include name="ElementalGear">
<!-- Replace 0 with obi name when acquired -->
<var name="Obi-Fire">0</var>
<var name="Obi-Ice">0</var>
<var name="Obi-Wind">0</var>
<var name="Obi-Earth">0</var>
<var name="Obi-Thunder">0</var>
<var name="Obi-Water">0</var>
<var name="Obi-Light">Korin Obi</var>
<var name="Obi-Dark">0</var>
<!-- Replace 0 with gear name when acquired -->
<var name="TwilightCape">Twilight Cape</var>
<var name="ZodiacRing">Zodiac Ring</var>
</include>
<include name="SchWeatherConstants">
<var name="Storm-Fire">Firestorm</var>
<var name="Storm-Ice">Hailstorm</var>
<var name="Storm-Wind">Windstorm</var>
<var name="Storm-Earth">Sandstorm</var>
<var name="Storm-Thunder">Thunderstorm</var>
<var name="Storm-Water">Rainstorm</var>
<var name="Storm-Light">Aurorastorm</var>
<var name="Storm-Dark">Voidstorm</var>
</include>
<!-- Swapping in Obi/Zodiac Ring/Twilight Cape when using Healing Magic.
Assumed to be imported in after check for skill="HealingMagic" has
already been done. -->
<include name="ObiRingCape-HealingMagic">
<if Element="%DayElement">
<if Spell="Cure*|Cura*">
<if Advanced='"$Obi-%SpellElement"!="0"'>
<equip when="midcast">
<waist>$Obi-%SpellElement</waist>
</equip>
</if>
<if Advanced='"$TwilightCape"!="0"'>
<equip when="midcast">
<back>Twilight Cape</back>
</equip>
</if>
</if>
</if>
<elseif mode="OR" element="%WeatherElement" BuffActive="$Storm-%SpellElement">
<if Advanced='"$Obi-%SpellElement"!="0"'>
<if Spell="Cure*|Cura*">
<equip when="midcast">
<waist>$Obi-%SpellElement</waist>
</equip>
<if Advanced='"$TwilightCape"!="0"'>
<equip when="midcast">
<back>Twilight Cape</back>
</equip>
</if>
</if>
</if>
</elseif>
</include>
And then include it as:
Code xml
<if Skill="HealingMagic">
~~ various rules
<xi:include href="Mote-Include.xml" xpointer="//include[@name='ObiRingCape-HealingMagic']/*" />
</if>
Crap, I never added anything to check for storms... I've been doing it wrong for a while now then ><
Not that I didn't know this already, I've had Motenten's SCH xml and include downloaded for a while now, just haven't sat down and configured it... I swear Spellcast exploits my laziness.
Anyway, kind of an edit except that I didn't hit 'submit' in the first place yet, but it seems Spellcast does treat storm buffs as relevant weather for the code I originally posted... just verified that the obi/cape does equip for ice spells under hailstorm (tested on lightsday in Jeuno with no weather).
I'm still lazy though :(
sorry for a SC noob question
but how do i make it so i use light obi on lights day/weather in my cure set ?
|
|