Use addtochat with spellcast.
<addtochat>TP: $VAR-TP</addtochat>
Use addtochat with spellcast.
<addtochat>TP: $VAR-TP</addtochat>
Is there a way to get it to do it on an event like gaining a buff like embrava or mightystrikes through autoexec?
I mainly wanted to use it in conjunction with my registers to test and make sure all my variables are updating correctly.
I'm trying to figure out why idle/engaged status isn't working for me correctly. I've been attempting to hammer this down (and even have resorted to a baby XML for troubleshooting).
Basically, when I'm idle it'll swap out gearsets upon abilities/ninjutsu just fine. When I enter combat, it equips the engaged gearset just fine. The problem becomes that once I'm in combat it refuses to swap to any other gearset for any abilities, spell, or weaponskill. The whole reason for doing this was actually for my other box's WHM account and the need for TP/Idle gear in case of procs and I'm out of wings. I first noticed the behavior there and found out that *all* of my spellcasts for any job exhibit this behavior.
The XMLs load fine, show no errors in Firefox, and with the exception of trying to implement this (apparently basic) set of rules it's never given me any issues. I was under the assumption that SpellCast handles this innately. Is that not so? Is there something within AutoExec I need to have registered?
http://pastebin.com/N37esD2W
(I've placed the engaged/idle rules at the bottom on that attempt but I've also place them at the top and it doesn't make a difference. I've attempted to have config define a default resting, engaged, and idle set but that prevented *ANY* gear swapping).
If need be, I can go back to just using my TP set as my idle and do away with the whole status="----" rules as it's what I've been doing ever since I came back a few months ago. It isn't something huge, but it would still be nice to have an idle set for regen/etc. without having to hit a macro everytime.
tnx again, that works
Just got Nares feet, but assume SCH AF3+2 feet still better if klimaform up with weather, so want to make a rule for that. Would this work? Mainly focused on this line:
<if Advanced='("%SpellElement" = "%WeatherElement" OR "%SpellElement" ="%DayElement")' BuffActive="Klimaform" Mode="AND">
As a follow up, if that is the correct way then I'd have to put another <if><else> stage in there for ebullience/no ebullience. And later I'll have to change it again for adding obis...Code:<if spell="Fire|Fire II|Fire III|Fire IV|Fire V|Thunder|Thunder II|Thunder III|Thunder IV|Thunder V|Blizzard*|Aero*|Stone|Stone II|Stone III|Stone IV|Stone V|Water*|Stonega*|Waterga*|Aeroga*|Firaga*|Blizzaga*|Thundaga*"> <if Advanced='("%SpellElement" = "%WeatherElement" OR "%SpellElement" ="%DayElement")' BuffActive="Klimaform" Mode="AND"> <if BuffActive="Ebullience"> <equip when="midcast" set="Klima" /> <equip when="midcast"> <main>$%SpellElementStaff</main> </equip> </if> <else> <equip when="midcast" set="Nuke" /> <equip when="midcast"> <main>$%SpellElementStaff</main> </equip> </else> </if>
At that point it's probably going to look something like this:
And I guess I'd put "$%SpellElementObi" in the <waist> slot for the Weather set. Would there be a simpler way to do that? I'm not so hot with advanced rules or variables yet.Code:<if Spell="Nuke"> <if Advanced Spell/Weather/Day Stuff> <if Ebullience> <If Klimaform> <equip set Ebul-Klima> </if> <else> <equip set Ebul> </else> </if> <elseif Klimaform> <equip set Klima> </elseif> <else> <equip set Weather> </else> </if> <else> <equip Nuke> </else> </if>
@noodles355:
Can be simplified toCode:<equip when="midcast" set="Klima" /> <equip when="midcast"> <main>$%SpellElementStaff</main> </equip>
Though the staff equip is common to both conditions, so might as well lift it out of the <if> block entirely.Code:<equip when="midcast" set="Klima"> <main>$%SpellElementStaff</main> </equip>
Could probably be done with:Code:<if Advanced='("%SpellElement" = "%WeatherElement" OR "%SpellElement" ="%DayElement")' BuffActive="Klimaform" Mode="AND">
It also looks like you have an extra <if> in that code block, for Ebullience.Code:<if BuffActive="Klimaform" Element="%WeatherElement|%DayElement">
For adding Ebullience, is there any change at all you'd make other than adding the AF3 head? If not, it doesn't need to be inside the other conditions.
Obi is fairly simple addition as well.
Final suggested code:
Not sure if you want to explicitly exclude helixes from this code, but they weren't listed in your nuking list, so went with it.Code:<if skill="ElementalMagic" NotSpell="Burn|Frost|Choke|Rasp|Shock|Drown|*helix"> <if BuffActive="Klimaform" Element="%WeatherElement|%DayElement"> <equip when="midcast" set="Klima" /> </if> <else> <equip when="midcast" set="Nuke" /> </else> <equip when="midcast"> <main>$%SpellElementStaff</main> </equip> <if NotAdvanced='Regex("$Obi-%SpellElement", "^[$]")' Element="%WeatherElement|%DayElement"> <equip when="midcast"> <waist>$Obi-%spellElement</waist> </equip> </if> <if BuffActive="Ebullience"> <equip when="midcast"> <head>Savant's Bonnet +2</head> </equip> </if> </if>
For the obis to be equipped, create a var named "Obi-Fire" (or whatever element) whenever you have a new obi available, and give it the value of the name of that particular obi. For example:
<var name="Obi-Thunder">Rairin Obi</var>
If I ebbullience a nuke with klimaform/matching weather up, and my Klima set has <head> already defined as Nares Cap, won't it be trying to equip Savant's Bonnet+2 and Nares Cap at the same time (midcast)? Or will that ebullience rule overwrite the <head> line in the Klima <set>?
Also, for the sake of learning, could you give me a run down of what <if NotAdvanced='Regex("$Obi-%SpellElement", "^[$]")'> means? It might aswell be typed in korean!
Muchly appreciate the help, just want to make sure I understand what's going on instead of just taking my answer, pissing off and probably returning in the future with a similar question![]()
Savants will overwrite since the later rules overwrite earlier ones.
'Regex("$Obi-%SpellElement", "^[$]")
I think he meant "[^$*]", but regex works differently with different searches (ex: Notepad++). Basically, the statement says "If $Obi-%SpellElement" isn't equal to $String. "String" just means any letter/number after the $.
How this works
Try typing a variable that doesn't exist. For instance, $NoodleVariableDoesntExist.
What does that return? That should return $NoodleVariableDoesntExist. Notice that the word begins with "$." So if SC checks for a variable (In this case, $Obi-%SpellElement) and you haven't made that variable, SC will just find $Obi-%SpellElement. So lets compare two situations.
Situation 1: You have Hyoton Obi and made the variable. When SC checks $Obi-Ice, SC will find "Hyoton Obi." Since this doesn't begin with $, the check will pass and the Obi will equip.
Situation 2: You do not have Hyoton Obi so you didn't make the variable. When SC checks $Obi-Ice, SC will find "$Obi-Ice" since $Obi-Ice doesn't have a value (Within Situation 1, $Obi-Ice's value is "Hyoton Obi."). Since $Obi-Ice begins with $, the rule will not attempt to equip the Obi.
Ah, so it means you only need to add variables for the obis you have, instead of putting in oneiros sash as the other element "obis"?
And thanks about that order thing, so it basically checks if I want Klima or Nuke set, equips the relevent one, does a check for obi, equips it over the top if it applies, then checks for ebul, and equips that over the top of everything else if it applies?
Thanks guys, gonna go play with this ...
Yep and yep.
Yugl explained everything pretty well.
For the regex, it's meant to be as written.
Regex("$Obi-%SpellElement", "^[$]")
The pattern that's being matched is:
^ -- Anchor to the start of the string; we explicitly want to find the $ as the first character of the string.
[$] -- Find the character '$'. If I didn't put it in brackets, $ would mean 'anchor to the end of the string'. "^$" would basically mean 'find me an empty string'.
A pattern of "[^$*]" would mean 'find me any one of these 3 characters (carat, dollar sign or asterisk) anywhere in the provided string', which is not what I'm going for.
However, its functionality is exactly as Yugl explained.
I have one observation and one question about his code....
First the observation...
This block is terminated twice. take out the / in the top line.Code:<if BuffActive="Klimaform" Element="%WeatherElement|%DayElement" /> <equip when="midcast" set="Klima" /> </if>
Second the question.
Wouldn't this, based on the position in the code, equip your obi even if the spell element doesn't match the day or weather?Code:<if NotAdvanced='Regex("$Obi-%SpellElement", "^[$]")'> <equip when="midcast"> <waist>$Obi-%spellElement</waist> </equip> </if>
Any idea why my PLD spellcast refuses to recognize and equip gear variables? If I change IdleBody to Mekira Meikogai it equips fine. I don't have this issue with my MNK or RDM spellcasts, so I'm pretty confused as to what the issue is.
Here's my spellcast. Any help would be appreciated.
You have a variable named "Idle", so the IdleBody is going to show up as "TownBody" instead. Rename the variable.
I'm using mote's Sch xml, and in my nuking set I'm using 2 Aquilo's Rings, but only one gets equipped. I double and triple checked for any errors, but still it's still only equipping one. Is there any fix for this?
Is it possible that you did this test while trying to cast a nuke that corresponds to the current day? I don't know if it's still the case or not but Zodiac Ring used to be enabled by default, so that would be the issue if you have a matching nuke/day.
Equipping two of the same-named rings causes problems for people frequently anyway, but if you tested it a bunch of times like you said, it should have mostly worked, so my money is on Zodiac.
$Idle will trigger before $IdleBody and since you set $Idle to "town", you will have townbody. Did you remember to adjust the variables when you did that?
Two variables here.Code:<if MPLT="300"> <var cmd="set Stance MPLow" /> <var cmd="set TPneck Creed Collar" /> <var cmd="set IdleBody Twilight Mail" /> </if> <else> <var cmd="set Stance BasicTP" /> <var cmd="set TPneck Twilight Torque" /> <var cmd="set TPbody Ogier's Surcoat" /> </else>