^That for future reference, but AF3 hands only need to be worn while charging Restraint (ie TP phase) to gain the bonus.
^That for future reference, but AF3 hands only need to be worn while charging Restraint (ie TP phase) to gain the bonus.
My current obi rules are terrible, and swap them in for all ws/spells that match the weather/day. How can I set them up as a variable instead (along with twilight cape), so I can just stick them in certain sets? Also, is there a way I can have said variable load the 'standard' gear for that slot/set (like p. rope instead of obi), if the weather matches, but obi/cape isn't in inventory?
Does anyone have a shitty laptop to try this on? I want to get feedback regarding how much work this makes the machine do:http://pastebin.com/hapW4vRR
Just change the set "PDT*" to a body you can equip. Test to see if you equip the body + get a CHECK# return.
@Fant: Can't do shit about not having the item within your inventory except for a "turn on/off" variable that disables the rule when you do not (And you would have to do this manually). To set up the variable, check what I posted on page 215. at the bottom. You would change the check, of course, to weather and dy. However, I think twilight operates differently than Obis.
I'm consistently getting CHECK6 on my craptop.
That's good; however, I recently found out the major flaw in that set up.
The idea: Calculate all your traits, atmas, abilities, magic, etc that would affect your cast time
If those alone will make you cast too fast => Change to precast
If not, => Midcast
* Add Skill Cast Time Reduction (CTR) gear; if too fast => Equip no precast gear
* Add Type CTR gear; if too fast => Equip Skill precast gear
* Add Element CTR gear; if too fast => Equip Type precast gear
And so forth until you equip fast cast
The problem, however, is that you have the following issue:
I write down 15% Fast Cast gear and 15% Thunder Element CTR gear
The calculations will show: 30% CTR total
The kicker: They're body body pieces, so you only have 15% CTR total
I'm kind of pissed about this since I've been working on this part of the XML for months, but each write up comes with new challenges. In the end, I *just* finished making a new one. This one lets you have a min, median, and maximum set. The calculations of JA/Traits/Non-gear stuff still happens, but since you input the value for min, median, and maximum within the variables, there is none of the "overlap" problem. Not as specific and cool as originally intended, but I'm sick of this at this point. Thanks for testing the rule though; at least I know SC can handle huge variable lists and calculations.
Hey,
I'm trying to set up my BLM macros a little better and I'm having a bit of trouble with my FastCast set.
Sets:
Spoiler: show
Rules:
Spoiler: show
I never could get the stupid Spell Element staff crap to work so I had to do that long list of spells with their respective staves...
Kinda stupid to post all of my staves but they are all pretty much this this:
Code:<var name="ThunderStaff">Apamajas I</var>
<var name="Staff:ElementHere:Damage">Name of staff</var>
<var name="Staff:ElementHere:Fast_Cast">Name of staff</var>
Within the gear set, put
<main>$Staff:ElemenetHere:Damage</main>
Same for Fast_Cast
Hello all
I'm implementing at the moment "toggle buttons" on my xmls, ie one single macro to swap between modes (MDT/Normal for example).
Here is my code snippet on war.xml:
Problem is that works ONLY if i remove the <cancelspell />. By "working as intended" i mean equipping immediately the relevant set (without having to do another action).Code:<if Spell="Aegis Schism"> <!-- toggling Magic Resist Mode Yes/No --> <if Advanced='"$MagicResist" = "No"'> <var cmd="set MagicResist Yes" /> <addtochat Color="206">------ MagicResist Mode ! ------</addtochat> </if> <else> <var cmd="set MagicResist No" /> <addtochat Color="206">------ Normal Mode ! ------</addtochat> </else> <cancelspell/> </if> <elseif Spell="Foxfire"> <!-- toggling Accuracy Mode Yes/No --> <if Advanced='"$AccuMode" = "No"'> <var cmd="set AccuMode Yes" /> <addtochat Color="206">------ Full Accuracy Mode ! ------</addtochat> </if> <else> <var cmd="set AccuMode No" /> <addtochat Color="206">------ Normal Mode ! ------</addtochat> </else> <cancelspell/> </elseif> <!-- Priority order for sets: magic resist, then Accuracy, then Haste --> <if Advanced='"$MagicResist" = "Yes"'> <var cmd="set Idleset MagicResist" /> <var cmd="set TPset MagicResist" /> </if> <elseif Advanced='"$AccuMode" = "Yes"'> <var cmd="set Idleset Idle" /> <var cmd='set TPset "Engaged - att/accu"' /> </elseif> <else> <var cmd="set Idleset Idle" /> <var cmd='set TPset "Engaged - Haste"' /> </else> <if Status="engaged"> <equip When="engaged|aftercast" Set="$TPset"/> </if> <elseif Status="idle"> <equip When="idle|aftercast" Set="$IdleSet"/> </elseif>
Without cancelspells, it displays the expected error on chatlog but i equips at least (on aftercast apparently since it takes like 3secs...)
With cancelspells, no more error display, but it doesnot equip at all, so ihave to do an additional action to actually equip...
Question: how to fix this so it equips immediately after pressing the macro, and without displaying the error ?
You have to be able to tell that you have, in fact, used some sort of trigger spell. In my rev 2 xmls, I'd set $Triggered to True within every spell check that passed, then later on when equipping gear, if $Triggered was true, <equip set="blah"> before a <return />. With rev 3, using the new triggered spells, it's easier; just check for <if type="Trigger"><equip set="blah" /><return /></if>.Question: how to fix this so it equips immediately after pressing the macro, and without displaying the error ?
MPwH sets may become relevant again thanks to Legion, but mage inventory space is a premium that I don't generally like to sacrifice. Also, there is no compelling reason to rush to put on the MPwH gear considering it takes 20 seconds for your first tick. What about something like this?
getMPwH.txt would be a get script for MPwH gear. You could do something similar to reverse it. Sorry, in a rush. Any thoughts?Code:<if status="Resting" notSpell="TriggerSpellFive"> <cmd>exec getMPwH.txt;wait 15;TriggerSpellFive</cmd> </if> <elseif Spell="TriggerSpellFive"> <equip set="MPwH" /> </elseif>
Nice! Thanks for those new Triggers i didnot know they were added.
But still i don't understand how swapping Foxfire or AegisSchism for Trigger0 and Trigger1 would solve my code... ? Unless i misunderstood what you meant.
What i don't understand in my code is why using cancelspell makes spellcast not read/apply the last rules:... while they actually get applied if i do NOT use cancelspell (but then i get an error in game...)Code:<if Status="engaged"> <equip When="engaged|aftercast" Set="$TPset"/> </if> <elseif Status="idle"> <equip When="idle|aftercast" Set="$IdleSet"/> </elseif>
EDIT: i didnot find any r3 xml, maybe not up yet XD ? On r2 ones and Mote-include r2, if i read correctly, you are using a triggerspell ($Equipcommand=input /ws DancingChains) still like Grevenilvec suggesting?
In my case, I use a trigger spell to change groups, but spellcast calculates all gear swaps before precast even fires (i think. It's been a while) so when my rule changes my group, spellcast still thinks that the precast for trigger spell is in the original group, so it equips the idle gear of my original group. If I cancelspell, then call another trigger spell at the end of the rule, it calculates this new trigger spell using the changed group (which is what i want).
I hope that makes sense.
Rev3 versions aren't on my pastebin yet. I haven't finished converting them, and until I finish -all- of them, I can't make the keybind changes I need to actually use them. As such, I can't guarantee yet that they're fully functional, so don't have them public yet.
As for your problem: A Trigger00 action isn't 'real', so it won't work in your code, where you only have idle|engaged|aftercast timings. You'd actually want something like:
Works for the same reason that your rules don't get applied if you use <cancelspell /> -- Cancelling the spell means there is no aftercast time period (since there was no cast, period). Engaged and Idle only happen on an autoset, so they're not relevant. If you cancel a spell, any equip changes you want have to be done on Precast.Code:<if Type="Trigger"> <if Status="Engaged"> <equip Set="$TPset" /> </if> <else> <equip Set="$IdleSet" /> </else> <return /> </if> <else> <if Status="Engaged"> <equip when="Engaged|Aftercast" Set="$TPset" /> </if> <else> <equip when="Idle|Aftercast" Set="$IdleSet" /> </else> </else>
Well, MPwH is a new acronym. I'm used it as hMP. However your code seems not quite right.
1) You're not checking that the action that triggered this was actually sitting down to rest; as such, it will trigger the command action any time you do anything while resting (which won't be often, but could be annoying). I think that ultimately it will actually still work, just be a bit clumsy and unnecessary.
2) TriggerSpellFive isn't a general trigger in the new resources, but also isn't used as a variable. Not sure what you intend to use there, but I would suggest using the trigger spell "RestingMode".
And of course set up the proper set to equip when any other action is processed, if status="healing", along with the rest of the usual stuff. Something vaguely along the lines of:Code:<if Spell="Autoset" Status="Resting"> <command>wait 15;input /ma RestingMode active</command> <return /> </if> <if type="Trigger"> <if Spell="RestingMode" SpellTargetRaw="active"> <equip set="MPwH" /> </if> </if>
Code:<if Status="Idle"> <var cmd="set MySet MyIdleSet" /> </if> <elseif Status="Engaged"> <var cmd="set MySet MyMeleeSet" /> </elseif> <elseif Status="Resting"> <var cmd="set MySet MPwH" /> </elseif> <equip when="aftercast" set="$MySet" />
Allright! Thanks a lot Grevenilvec and Motenten, your explanations made sense and led me to this fixed code:
Spoiler: show
EDIT: er.... sorry to come back but i have now another problem:
Typing //trigger1 in console works, but not in macro o.O ! i tried /trigger1 or /trigger Trigger1 <me> but still no luck...
what is the correct syntax to use in macro for those trigger spells?
I think I was less than clear in many ways. The point is to save open inventory spaces by swapping in and out gear that I only use when resting. Here is a more coherent example, I think:
getMPwH.txt would look something like this:Code:<if Status="Resting" Advanced='"$PreviousStatus" = "Idle"'> <command>exec getMPwH.txt;wait 15;dancingchains</command> </if> <elseif Status="Idle" Advanced='"$PreviousStatus" = "Idle"'> <command>exec putMPwH.txt;</command> </elseif> <if Spell="Dancing Chains" Status="Resting"> <cancelspell /> <equip set="Resting" /> </if> <var cmd="set PreviousStatus %Status" />
putMPwH.txt would be the same thing with put instead:Code:get Satchel "Mana Ampulla";wait 0.9; put Satchel "Aureole";wait 0.9; get Satchel "Vita Cape";wait 0.9; put Satchel "Merciful Cape";wait 0.9; get Satchel "Star Ring"; wait 0.9; ...
That way I only have MPwH stuff in my inventory when I'm resting. Obviously I would want to couple it with putting things away when I take things out so that I effectively have a larger active inventory, with the stipulation that they can't be things I would want immediately when I stand.Code:put Satchel "Mana Ampulla";wait 0.9; get Satchel "Aureole";wait 0.9; put Satchel "Vita Cape";wait 0.9; get Satchel "Merciful Cape";wait 0.9; put Satchel "Star Ring"; wait 0.9; ...
/console trigger1
if using ingame macros and not a .txt file to bind all your keys.