Thanks, I'll set that up once I get home!
Thanks, I'll set that up once I get home!
That doesn't seem to be quite the same. If I'm understanding it right, that rule automatically activates composure on the relevant spells when it's not up. I'm looking for something to cancel me from switching into waltz gear if my waltz timer isn't up, preferably without having to hard-code a time/rule for each spell. I tried changing the recast value in resources.xml, but it doesn't change anything.
Basically I'm trying to avoid having a single huge rule that looks like this:
Code:<if spell="*waltz|*waltz*"> <if advanced='"$Waltz"!="0" or "%tpcost">"%tp"'> <cancelspell /> </if> <elseif buffactive="Trance"> <action type="equip" when="precast" set="Waltz" /> <action type="command" when="precast">sc var set Waltz 4;wait $Waltz;sc var set Waltz 0;input /echo === Waltz recast up ===</action> </elseif> <elseif spell="Curing Waltz"> <action type="equip" when="precast" set="Waltz" /> <action type="command" when="precast">sc var set Waltz 4;wait $Waltz;sc var set Waltz 0;input /echo === Waltz recast up ===</action> </elseif> <elseif spell="Curing Waltz II"> <action type="equip" when="precast" set="Waltz" /> <action type="command" when="precast">sc var set Waltz 6;wait $Waltz;sc var set Waltz 0;input /echo === Waltz recast up ===</action> </elseif> etc.
I never understood til now why RecastGT="0" vice/versa RecastLT="1" wouldnt work. I dont suppose there is anyway to effectively update the resources to make that work proper is it?
I don't have DNC leveled, so there might be a nifty trick, but after a bit of research into Waltz/Trance it looks as if that's the road you'll have to choose. You could also do 0/1 and set the wait manually for each (Same effect, but avoid issues with the wait $Waltz not picking up the right number). Slightly more cumbersome variables, but more rewarding for quick edits, is to name your variables the EXACT same name as the ability.
<var name="Curing Waltz V">23</var>
With that you can change the rule to...
Code:<if spell="*waltz|*waltz*"> <if advanced='"$Waltz"!="0" or "%tpcost">"%tp"'> <cancelspell /> </if> <elseif buffactive="Trance"> <equip when="precast" set="Waltz" /> <command when="precast">sc var set Waltz 4;wait $Waltz;sc var set Waltz 0;input /echo === Waltz recast up ===</command> </elseif> <else> <equip when="precast" set="Waltz" /> <command when="precast">sc var set Waltz 1;wait $%Spell;sc var set Waltz 0;input /echo === Waltz recast up ===</command> </else> </if>
This is becoming way more difficult than I anticipated... Is there something wrong with the <if advanced='"$Waltz"!="0" or "%tpcost">"%tp"'> rule? I'm having really whacked out results with it. When I did the elongated rule set I had before, the "wait $waltz" portion didn't work, even when I made them seperate, subsequent commands; instead it immediately displayed the "recast up" line and set the var back to 0. So I changed the wait to the static number, and just made $waltz a 1/0 switch. That somehow managed to not change the variables at all, but the recast timer went off at the proper time. I also noticed the TPcost>TP check wasn't working here. Next, I switched it to a On/Off switch, and everything worked perfectly when I went to check it on some rats on the way to salvage. It worked fine the first few waltzes of salvage, too, then it just broke and stayed broke. It cancelled every waltz even though I had plenty of TP and $waltz was set to "on". I just had to scrap the whole rule to get it to work.
So, anyone have any idea what in the seventeen fucks is going on here?
I've encountered this problem while working on the MNK XML and it appears SC has a lag when it comes to changing/using variables. So if you have a single trigger variable to change a variable, you cannot use that variable under the same trigger WITHOUT DELAY. The delay is roughly wait 2 (in game wait 2; idk if windower's is different).
Several stuff to try/do:
- Make sure you have a return rule for when you're slept. Otherwise, if you hit the JA and it never activates, you'll end up changing the variable anyways. I had a similar problem with composure while synced because the rule would trigger upon using buffs even though LV40ish RDM can't use composure.
- Use the variable trick I mentioned earlier (Name the variable the EXACT name of the spell) and set the variable to the recast on that spell
It shouldn't have anything to do with naming the variables, the switch permanently stayed "On", where it should not cancelspell unless the TPcost>TP. I think the way you suggested is probably best for what I want anyways, but the cancel portion of the rule just isn't working at all and I can't figure out why.
I've tried slight variations by doing a similar rule with Presto (no gear swaps, so it's just a matter of the variable swapping back and forth) and Steps (variable swap and "TP > 10" check with a static number), and added a "input /echo TP = %TP | TPCost = %TPCost" to my waltzes to test to make sure %TPCost is working and giving the right numbers. All of them worked as expected, so I'm really at a loss.
Edit: ...I think I figured it out. For some reason the TP check always checks true if TP>100%; the rule always works fine <100 TP, but doesn't work >100. I have no clue why. Fuck you, spellcast.
Edit2: Changing it to "%tpcost"<"%tp" makes it work at TP>100%. Changing it to "%tp"<"%tpcost" still does not work.
I love you.
So, <if mode="or" buffactive="Sleep|Terror|Petrify|Lullaby|Stun|Amne sia" advanced='"$Waltz"!="0" or %tpcost<%tp'>, anything else I'm forgetting that would stop the spell from going off? I guess distance could but I'm not terribly worried about it.
The Salvage/Nyzul JA restriction is the only other thing I can think of there - don't recall the status name though.
Techno's Include has Charm (In case you had a timed Waltz going off).
Awesome, got everything working smoothly now.
And just a heads up/future reference, Yugl, your <command when="precast">sc var set Waltz 1;wait $%Spell;sc var set Waltz 0;input /echo === Waltz recast up ===</command> suggestion works great but needs one slight tweak; make it "$%spell_" or similar, otherwise it will read something like "wait $curing waltz II" out as "wait 4 II". Having a end marker character fixes that issue.
Thank you guys a ton for the help.
Noted until I forget and come here complaining.
So, The Spellcast I made was working fine until I found out that hands for tping didnt work. As well as idle piece for feet. I tried to test to see if abyssea and non-abyssea spellcast work but it didnt. wont change to the corresponding area etc. was suppose to be "Visant" or something idk for when in abyssea. (lazy to fix spelling)
Spellcast Pastebin: http://pastebin.com/hu3bg0Mf
Ninja AF3+2 body question:
Is there a way to set up the variables so it only switches out of the chainmail for ningi if you are getting both march AND haste?
And then also, how do you combine this with a body lock rule if migiwari is active?
Edit: Is there a way to make spellcast switch groups based on what area you're in?
Looking for the macro syntax when I want to (multi)send a cure as simply as possible.
In the first line of the macros:
//send mule //cure mainchar
and various combinations arent working.
Its as if "//send" isn't the right command through a macro.
Thanks for the help.
Since my user page cannot use spoilers or code, I'll reserve this post for making notes regarding public XMLs I make.
Trigger spells (General)Spoiler: show
Trigger spells (DRG)Spoiler: show
Trigger spells (BLU)Spoiler: show
Trigger spells (MNK)Spoiler: show
Trigger spells (RDM)Spoiler: show
Since these triggers are less intuitive, I highly recommend binding keys.
Using Radec's cheatsheet (Can also look at Windower.net I suppose...):
You can save binds to the init.txt so that you don't have to set them up each time you log in. I'll need to confirm this, but for trigger spells with spaces, you should be able to remove the space and still get the trigger to work. If that is the case, then a bind such as....Code:bind !+<key> = alt+<key> Example: !6 = alt+6 bind ^+<key> = ctrl+<key> Example: ^3 = ctrl+3 bind @ + <key> = Windows Key + <key> Example: @2 = Windows Key+2
Should activate the WS "Dancing Chains."Code:bind !6 dancingchains
I spaghetti coded this at some point because gear that must remain on while TPing except in varying situations (EVA sets or PDT for example) is annoying with spellcast. I fixed up the code a bit after though (Still not great, but works). No notes for this XML yet, but you can access them via my profile page (Do not leave comments there since I'm using that to store my XMLs until I find a better way). This MNK XML requires include and autoexec (For automatic Impetus/Perfect Counter/Footwork gear changes).
http://www.bluegartr.com/members/42037-Yugl
Mega support from Radec with the coding and ideas. Other MNKs I referred to were Renzy, Kyte, and Haborym
I use this in my spellcast script
<if HPPLT = "70">
<action type="command" when="precast">send Mule /ma "Cure V" Mainchar</action>
</if>
This still seems to work for me. If you want to send from a ff macro I think you have to do /console send mule.... I'm at work so cant test.
Slight fix for those who DLed early (Reposted link). The line with the blizzard V trigger should have "Full Evasion" rather than just Full Evasion (Needs quotations).