BLM Spellcast

Language: JP EN DE FR
2010-09-08
New Items
users online
Forum » FFXI » Jobs » Black Mage » BLM Spellcast
BLM Spellcast
 Sylph.Hitetsu
Offline
Server: Sylph
Game: FFXI
user: Hitetsu
Posts: 2617
By Sylph.Hitetsu 2010-03-02 08:11:31
Link | Quote | Reply
 
I've been using Aikar's BLM Spellcast with Spellcast 2.2 for a while now and I've never had any problems. When I was trying to get a working Elemental Siphon spellcast for my SMN, I had to update to 2.3 to make it work.

The problem is, after updating all my XML files with the XML Updater on the windower site, it doesn't change any gear >.>

Whenever I try to nuke, I get a big red error appear in my Windower console:

Spellcast: Error in Expression: Invalid left operand (0:1) for &&. Both operands must be of type bool.
Spellcast: (!(regex("fog","^.* x2$") and ("none"="ice" and "1" = "1") or !("none"="ice")) and ("ice"="light" and "1"="1") and ("elementalmagic"="elementalmagic")
Spellcast - Plugin successfully unloaded


I've managed to find what looks like the offending spot, but I can't work out why it's dying. Maybe someone else can,

<!-- Handle AFv2 Pants, but do not equip pants if we already have Weather x2 and day bonuses from obi alone as obi alone hits the 35% damage cap. -->
<if Advanced='(!(regex("%Weather","^.* x2$") AND "%WeatherElement" = "%SpellElement" AND "$%SpellElementObi" = "1") OR !("%WeatherElement" = "%spellElement")) AND ("%SpellElement" = "%DayElement" AND "$BLMAF2Pants" = "1") AND ("%skill"="ElementalMagic")'>
<equip when="midcast">
<legs lock="yes">Sorcerer's Tonban</legs>
</equip>
</if>


Thanks for any help =P


EDIT: At the moment I have SC 2.2 and SC 2.3, along with 2 separate SC folders that I rename if I need to swap to BLM or SMN or whatever.
 Kujata.Caivian
Offline
Server: Kujata
Game: FFXI
user: Caivian
Posts: 8
By Kujata.Caivian 2010-03-02 08:23:32
Link | Quote | Reply
 
I'm at work right now or i could help a little better, but I had a bit of a problem with his regex on relic pants myself.

A lazy workaround for me was to just get rid of the regex, and use the rest of the statement. This won't actually check for double weather to see if you're already capping mab off weather/day bonuses, it might get it working again.

Try this:
<if Advanced='("%WeatherElement" = "%SpellElement" AND "$%SpellElementObi" = "1") OR !("%WeatherElement" = "%spellElement")) AND ("%SpellElement" = "%DayElement" AND "$BLMAF2Pants" = "1") AND ("%skill"="ElementalMagic")'>
 Sylph.Hitetsu
Offline
Server: Sylph
Game: FFXI
user: Hitetsu
Posts: 2617
By Sylph.Hitetsu 2010-03-02 08:29:18
Link | Quote | Reply
 
That kinda worked XD

It's changing gear now, though it's still spitting out the error in my console.
 Kujata.Caivian
Offline
Server: Kujata
Game: FFXI
user: Caivian
Posts: 8
By Kujata.Caivian 2010-03-02 08:38:40
Link | Quote | Reply
 
I might be still asleep a bit, but I'm not seeing the problem... Unless I can think of something in the next 8 hours, I won't be able to help till I get home >.>

If you don't get an answer between now and then, I'll revisit it this evening.
 Sylph.Hitetsu
Offline
Server: Sylph
Game: FFXI
user: Hitetsu
Posts: 2617
By Sylph.Hitetsu 2010-03-02 10:35:04
Link | Quote | Reply
 
Just wanna say thanks to Caivian and everyone who replied to me through PM's with help to this!

I finally got it working again /whee! Now I have to make sure all my WHM, BRD and NIN ones work too! XD

Thanks guys!


EDIT: I hope the guy that PM'd me this won't mind, but I figure I'll include what I changed to get it to work with 2.3~

<!-- handle afv2 pants, but do not equip pants if we already have weather x2 and day bonuses from obi alone as obi alone hits the 35% damage cap. -->
<if Advanced='(!((bool)strmatch("* x2","%Weather") AND "%WeatherElement" = "%SpellElement" AND "$%SpellElementObi" = "1") OR !("%WeatherElement" = "%spellElement")) AND ("%SpellElement" = "%DayElement" AND "$BLMAF2Pants" = "1") AND ("%skill"="ElementalMagic")'>
<equip when="midcast">
<legs lock="yes">sorcerer's tonban</legs>
</equip>
</if>
necroskull Necro Bump Detected! [220 days between previous and next post]
 Cerberus.Kvazz
Offline
Server: Cerberus
Game: FFXI
user: kvazz
Posts: 5345
By Cerberus.Kvazz 2010-10-08 21:33:24
Link | Quote | Reply
 
Rather than making a new thread I'm just gonna ask here, necobump ftw!
I'm rather new to spellcast, and if someone have a few min to waste on me, please halp Q_Q

I've just setup my first .xml and it's working very nice, but there's two things I cant figure out how to do without getting errors.
Currently when I'm casting ele dots(burn frost blabla) it casts in normal nuke gear, I would like it to cast in a separate set.

Also I need to set some rule for certain mobs, casting in another gearset (skill+)

If I need to post any of the .xml on here, please say so.

Answer here or send me PMs if you wanna!
Thanks alot in advance D:
 Bahamut.Dasva
Offline
Server: Bahamut
Game: FFXI
user: dasva
Posts: 13835
By Bahamut.Dasva 2010-10-08 21:38:27
Link | Quote | Reply
 
I'll just post my rules and let you look at it.

<rules>
<equip when="Idle|aftercast" set="Standard" />
<equip when="Resting" set="Resting" />
<if Spell="Stun">
<equip set="DarkMagic|FastCast">
<main>$ThunderStaff</main>
</equip>
</if>
<if Spell="Stoneskin">
<equip when="midcast" set="Stoneskin" />
</if>
<else>
<equip Set="FastCast" />
<if Skill="*Magic">
<if Skill="ElementalMagic">
<if Spell="Frost|Drown|Rasp|Burn|Shock|Choke">
<equip when="precast|midcast" Set="Intelligence" />
</if>
<else>
<if Target="Tiamat|Genbu|Suzaku|Seiryu|Byakko|Kirin|Jormungand|Ouryu|Vrtra|Cerberus|Khimaira|Long-Bowed Chariot|Long-Armed Chariot|Battleclad Chariot|Armored Chariot|Nuhn|Experimental Lamia|Gotoh Zha the Redolent">
<equip when="precast|midcast" Set="HighResist" />
</if>
<else>
<equip when="precast|midcast" Set="FullDamage">
<main lock="yes">$%SpellElementStaff</main>
</equip>
<if MPPAfterCastLT="50" Advanced="$UggPendant==1">
<equip when="midcast">
<neck lock="yes">Uggalepih Pendant</neck>
</equip>
</if>
<if Advanced='("%SpellElement" = "%WeatherElement" OR "%SpellElement" = "%DayElement") AND "$%SpellElementObi" = "1"'>
<if Element="Dark"><action type="equip" when="midcast"><waist lock="yes">Anrin Obi</waist></action></if>
<elseif Element="Light"><action type="equip" when="midcast"><waist lock="yes">Korin Obi</waist></action></elseif>
<elseif Element="Thunder"><action type="equip" when="midcast"><waist lock="yes">Rairin Obi</waist></action></elseif>
<elseif Element="Ice"><action type="equip" when="midcast"><waist lock="yes">Hyorin Obi</waist></action></elseif>
<elseif Element="Fire"><action type="equip" when="midcast"><waist lock="yes">Karin Obi</waist></action></elseif>
<elseif Element="Wind"><action type="equip" when="midcast"><waist lock="yes">Furin Obi</waist></action></elseif>
<elseif Element="Water"><action type="equip" when="midcast"><waist lock="yes">Suirin Obi</waist></action></elseif>
<elseif Element="Earth"><action type="equip" when="midcast"><waist lock="yes">Dorin Obi</waist></action></elseif>
</if>
<if Advanced='("%SpellElement" = "%DayElement") AND "$BLMAF2Pants" = "1"'>
<equip when="midcast">
<legs lock="yes">Sorcerer's Tonban</legs>
</equip>
</if>
</else>
<if advanced='$Ring == 1'>
<if Advanced='"$%SubJobRingHP" !="$%SubJobRingHP"'>
<if Advanced='%HP > $%SubJobRingHP'>
<equip set="MinusHP" />
</if>
</if>
<else>
<equip set="MinusHP" />
</else>
<equip when="midcast">
<lring>Sorcerer's Ring</lring>
</equip>
</if>
</else>
</if>
<else>
<equip when="precast|midcast" Set="%Skill" />
</else>
</if>
<if Spell="Sleep II|Sleepga II">
<command when="aftercast">spellcast var inc sleepid;wait 1;input /echo [$sleepid:%spell] <%target> @90s</command>
<command when="aftercast">wait 75;input /echo [$sleepid:%spell] <%target> @15s</command>
<command when="aftercast">wait 85;input /echo [$sleepid:%spell] <%target> @5s;spellcast var dec sleepid;</command>
</if>
<elseif Spell="Sleep|Sleepga">
<command when="aftercast">spellcast var inc sleepid;wait 1;input /echo [$sleepid:%spell] <%target> @60s</command>
<command when="aftercast">wait 45;input /echo [$sleepid:%spell] <%target> @15s</command>
<command when="aftercast">wait 55;input /echo [$sleepid:%spell] <%target> @5s;spellcast var dec sleepid;</command>
</elseif>
<if Spell="Sneak" BuffActive="Sneak" advanced='"%SpellTarget"="%PlayerName" OR "%SpellTarget"="<me>" OR ("%target"="%PlayerName" AND "%SpellTarget"="<t>")'>
<command when="midcast">cancel 71</command>
<midcastdelay delay="2.1" />
</if>
<if spell="Utsusemi: Ichi" BuffActive="Copy Image">
<midcastdelay delay="3.0" />
<command when="midcast">cancel 66</command>
</if>
<equip when="midcast">
<main>$%SpellElementStaff</main>
</equip>
</else>
</rules>
 Cerberus.Kvazz
Offline
Server: Cerberus
Game: FFXI
user: kvazz
Posts: 5345
By Cerberus.Kvazz 2010-10-08 21:43:48
Link | Quote | Reply
 
Thanks, I'll probably figure it out after watching over that.
If I noob it up I'll just ask again xD
 Cerberus.Irohuro
Offline
Server: Cerberus
Game: FFXI
user: Irohuro
Posts: 6583
By Cerberus.Irohuro 2010-10-08 21:50:56
Link | Quote | Reply
 
im slightly HELP I AM TRAPPED IN 2006 PLEASE SEND A TIME MACHINE when it comes to spellcast xmls too, but what i'd do would be set up the gearset, the use a rule made to switch to that set defining those spells specifically

like:
<rule spell="Burn|Frost|Shock|etc..>
<action type="equip" when="precast" set="eledot" />
<action type="equip" when="Aftercast" set="nuke/idle/whatever" />
</rule>
 Bahamut.Dasva
Offline
Server: Bahamut
Game: FFXI
user: dasva
Posts: 13835
By Bahamut.Dasva 2010-10-08 21:59:41
Link | Quote | Reply
 
That's more or less what mine does. But its within the general if elemental magic set.
 Cerberus.Irohuro
Offline
Server: Cerberus
Game: FFXI
user: Irohuro
Posts: 6583
By Cerberus.Irohuro 2010-10-08 22:39:25
Link | Quote | Reply
 
Bahamut.Dasva said:
That's more or less what mine does. But its within the general if elemental magic set.

yea, i missed it the first glance over, then after i posted i actually found the specific rule for it, lol
Log in to post.