No it is a spellcast induced error. Both rings are the same in Idle as melee. When I engage I get the FFXI error "You were unable to equip...". Why would SPELLCAST equip two rings that is already on?
I tried locking from the base set with no success. I Want Spellcast to change ONLY the slots that needs to be changed.
Spent a lot of time working on this, and it's mostly bug free now, so I figured I'd post it for people to give suggestions / rip apart / use.
My Paladin Spellcast: http://pastebin.com/Vfp9z1PD
I wouldn't call it an error, it's just how it's coded.
You have attributes for equipment slots, so if you only want to change gear that needs to be changed, you can do so by logic.
example:
<if equiplring="Serket Ring">
<action type="equip">
<lring>Snow Ring</lring>
</action>
</if>
It's not pretty or effective, but it works if you really have to have a workaround. You could also solve it by variables if you want in a simmilar manner.
EDIT: question, does BG have any code tags or such? Unindented code makes me want to rip my eyes out.
Are you sure that's whats causing your error? beacuse if you check your debugs logs, SC detects that you are wearing a piece of equipment and doesn't send the command to change it.
That's what it does, unless you have 2 of the same item, then it can't tell which one you want to equip, because of coding on SE's side.
ps. looking into the silence plugin
why do windower.net only have 2.22 on the download page?
2.3 is still beta
If your script is attempting to equip something that it already equipped, I would say change your code so that it doesn't equip since it's already on.
This is my current BLM file, it is Aikar's BLM template with the stuff that doesn't apply to me stripped out (only 60BLM atm). I am trying to solve my problem with my enfeebling set. I want it to equip my AF body and then my AF hat. I idle in shaman cloak which obviously doesn't allow headgear. As it stands now it does not equip my head piece (I assume because it hasn't registered the body piece as allowing headgear yet). How can I delay that one single equip?Code:<?xml version="1.0" ?> <spellcast xmlns:xi="http://www.w3.org/2001/XInclude"> <config RequireVersion="2.30" Debug="false" HideErrors="false" ShowGearSwaps="False" /> <variables> <!-- use BLM AF2 pants or not? Set to 0 if you do not have it --> <var name="BLMAF2Pants">0</var> <!-- use Sorc ring or not? set to 0 if you do not have it or dangerous location --> <var name="Ring">0</var> <!-- use Ugg Pendant or not? set to 0 if you do not have it. --> <var name="UggPendant">0</var> <!-- Elemental Grips, set to 1 for each you have --> <var name="LightGrip">0</var> <var name="DarkGrip">0</var> <var name="ThunderGrip">0</var> <var name="IceGrip">0</var> <var name="FireGrip">0</var> <var name="WindGrip">0</var> <var name="WaterGrip">0</var> <var name="EarthGrip">0</var> <!-- Elemental Staffs, input what staff to use for each element here --> <var name="IceStaff">Ice Staff</var> <var name="DarkStaff">Dark Staff</var> <var name="ThunderStaff">Thunder Staff</var> <var name="WindStaff"></var> <var name="FireStaff">Fire Staff</var> <var name="EarthStaff"></var> <var name="LightStaff"></var> <var name="WaterStaff"></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">0</var> <var name="IceObi">0</var> <var name="FireObi">0</var> <var name="WindObi">0</var> <var name="WaterObi">0</var> <var name="EarthObi">0</var> </variables> <sets> <group name="Main" default="yes"> <set name="Standard"> <ammo>Morion Tathlum</ammo> <neck>Mohbwa Scarf</neck> <lear>Morion Earring</lear> <rear>Morion Earring</rear> <body>Shaman's Cloak</body> <hands>Wizard's Gloves</hands> <lring>Wisdom Ring</lring> <rring>Wisdom Ring</rring> <back>Black Cape</back> <waist>Shaman's Belt</waist> <legs>Wizard's Tonban</legs> <feet>Wizard's Sabots</feet> </set> <set name="Resting" BaseSet="Standard"> <body>Seer's Tunic</body> <main>$DarkStaff</main> <waist>Qiqirn Sash</waist> </set> <set name="Enfeebling" BaseSet="Standard"> <body>Wizard's Coat</body> <head>Wizard's Petasos</head> </set> </group> </sets> <rules> <!-- utility: if targetting a monster, but casting a spell that can not be cast on monsters, then cast on self (buffs). --> <if SpellTargetType="MONSTER" NotValidTarget="*Enemy*" ValidTarget="*Self*"> <changetarget target="<me>" /> </if> <if SpellTargetType="NONE" ValidTarget="*Self*"> <changetarget target="<me>" /> </if> <if Spell="Escape|Warp|Warp II|Retrace|Teleport-*|Reraise|Tractor"> <return /> </if> <!-- set of gear to equip when finished casting a spell or coming back from resting mp (idle set) --> <equip when="Idle|aftercast" set="Standard" /> <!-- set of gear to equip when resting --> <equip when="Resting" set="Resting" /> <if Spell="Stun"> <!-- equip gear that helps stun, and nothing else --> <equip when="precast|midcast"> <main>$ThunderStaff</main> </equip> </if> <!-- set of gear to enhance enfeeble spells --> <if skill="EnfeeblingMagic" > <equip when="precast|midcast" set="Enfeebling" /> </if> <!-- 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> <!-- finally, equip our staff! --> <equip when="midcast"> <main>$%SpellElementStaff</main> </equip> </rules> </spellcast>
You don't need an else rule.
It'll still parse at the end of the ichi cast.In addition to that, let's say I add the advance rule like you said, and add a return if variable = 1, will it not switch to my aftercast gears after the ichi casting since I am not parsing the rest of the rules? In other words, I still want to switch back to TP set after casting ichi, wouldn't <return/> make it not do that? or will spellcast parse at the end of the ichi cast?
Code:<If spell="Flood II"> <if status="engaged" advanced='"$CastCheck" = "0"'> <equip when="precast" set="shield"/> </if> <cancelspell/> <return/> </if>
Thanks Thorny. That helps a great deal.
A question regarding blm spellcast. I recently bought an Ugg. Pendant and I saw alot of BLM spellcast using <if MPPaftercastlt="50"> then midcast equip Ugg. Pendant. I was wondering if most ppl realize that it uses the pre-precast equips's max MP to calculate the MPPaftercast instead of your casting equip's max MP?
For example, if you have 600 MP on your idle set, and 500 MP on your casting set. Casting a 250 MP spell should get you to equip Ugg. Pendant. However, it doesn't, it seems to use the 600 MP - 250 MP as it's MPPaftercast, and therefore it is above 50% and it doesn't swap Ugg. in. I have tested it and it works like that using Aikar's template.
And I also saw some ppl using a predetermined MP figure, similar to how to trigger Sorcerer's ring. It still won't work cuz you would set it to trigger at 250 MP, 50% of your casting MP. But since spellcast does 600-250, you won't be below 250 MP again, so a fixed MP figure will not work as I have also tested.
So this leads to my question. How do you guys get your ugg. pendant up in spellcast? or do most of you don't even realize that your ugg. pendant isn't swapping when it should be?
I was skeptical with the rule since I am a drg as well, and for healing breath trigger I swap in HP up gears in my precast and do <if HPPLT="50">, and it wouldn't work because it is uses my pre-precasting gear set, which has far less HP. I did get around it by giving it a higher percentage that would mirror the 50% of my HP up set, but in this case it involves aftercast MP, which makes it alot trickier.
Thank you.
P.S: Or I could just make my idle set have identical mp as my casting set..... but that sort of waste alot of MP after I rest...
That should work, might have minor syntax errors since not actually tested. I'm not anal enough to care personally, my nuking set is all of 30 mp different from idle.Code:<variables> <var name="RDMMP">###</var> <var name="WHMMP">###</var> <var name="UggMP">0</var> </variables> <rules> <var cmd="setcalc UggMP %MP - %MPCost" /> <if advanced='"$UggMP" < "$%SubJobMP"'><equip when="midcast"><neck>Uggalepih Pendant</neck></equip></if> </rules>
That looks interesting, may you explain the code a bit for me and why it would work? Particularly this line <var cmd="setcalc UggMP %MP - %MPCost" />
Thank you.
%MP and %MPCost are global variables referring to your current mp and the mp cost of the spell that triggered it respectively, setcalc is used to set a variable while calculating something, and you can name the variable something else if you'd like
might need parentheses or quotation marks around the calculation part i don't remember, don't think so though
so when will SC parse this particular rule? when your MP changes due to precast gear swap? If so that's a pretty clever way to do this :D
It's using current mp not total mp, if you're at full mp you won't be activating ugga so i don't see why it matters when? Set the variables to the maximum mp you want to activate it for that subjob.
Hmmm I see
I guess the problem that I have is really temporary. Cuz right now, my Idle set MP is 770, and my casting MP is 660 (yea, big difference since I am only lvl 72 now, so I can't use some of the high MP casting gears such as zenith gloves (lvl 73), and I idle in alot of Oracle gears). I have originally plan to use the extra idle MP to cast stoneskin, blink, other crap before nuking. However, I am soloing to 75 so I am /nin in most situation so I am not casting any of that before I nuke. When I cast Flare, which cost I think 383 MP, it will not switch to Ugg if I set my trigger MP to 330, since spellcast is using my Idle set MP, which is 770, minus 383, = 387, and it won't trigger ugg. But in reality, I am casting with 660 MP, and after I cast Flare, my MP should be 660-383=277, which triggers ugg. So you see when it parse will be relevant in here.
But I think once I bring my idle MP close to my casting MP, this problem will go away. Or when I start subbing RDM at 73, I will be using those extra MP for stoneskin etc to bring the gap closer.
Thank you.
you could use another if statement to check if your mp is higher than casting mp and if so subtract mp cost from casting mp instead of current hp, but seems like too much work when you could just swap it manually
very isolated situation like you said