Casting spells such as fireball on a hostile target cause my cast bar to show my spell as interruptible.Casting a spell with nothing targeted, such as hearthstone, a portal, or a mount..and my castbar still indicates the spell can be interrupted.This is expected behavior.
The bug occurs when I target MYSELF and cast a non-channeled spell (using a non harmful spell of course such as hearthstone, a portal, or mounting), then both my player and target (while targeting self) frames cast bar color indicate that the cast cannot be interrupted by turning gray. At this point, regardless of what I cast or target, the player cast bar (and target if targeting self) will continue to indicate that the cast in not interruptible for the duration of the session.Through trial and error I've found that I can reverse the glitch by targeting myself and casting and CHANNELED spell, such as blizzard. After doing this I can again see my spells as interruptible as long as I don't repeat the glitch by casting a non-channeled spell while targeting myself.
I've created a luatext to indicate whether spells can be interrupted, and the same glitch affects the text as well. My workaround/fix for that is to use a condition to check if my target is myself (if (isintercast or isinterchan == true) and not (UnitName(unit)==UnitName("Player")) then), however this will simply indicate that all of my spells are interruptable...which may or may not be correct.
My guess is that there might not really be a case where checking to see if "Player" spells are interruptible using those functions is really appropriate. At the same time it would be nice to know which of my spells or abilities can or cant be interrupted. Those functions don't seem to have more arguements beyond "unit" to offer another unit to check against like UnitIsFriend("Player", unit) does.
I'm using the most recent Alpha or Beta versions of PitBull4
Here's the entire luatext I'm using for cast information, including the interruptible status that I added. Keep in mind though that this bug isn't limited to my custom luatext, it applies to the cast bar as well...and isn't as easy to "kinda fix", as I have in this script.
local cast_data = CastData(unit)local _,_,_,_,_,_,_,_,isintercast = UnitCastingInfo(unit)local _,_,_,_,_,_,_,isinterchan = UnitChannelInfo(unit)local r,g,b = 255,255,96local ir,ig,ib = 255,32,32local noir,noig,noib = 132,132,132local stopr,stopg,stopb = 132,132,132local maxstrlen = 30Outline()if cast_data then local spell,stop_message,target = cast_data.spell,cast_data.stop_message,cast_data.target local stop_time,stop_duration = cast_data.stop_time if stop_time then r,g,b = stopr,stopg,stopb stop_duration = GetTime() - stop_time elseif (isintercast or isinterchan == true) and not (UnitName(unit)==UnitName("Player")) then r,g,b = noir,noig,noib else if not UnitIsFriend("player", unit)then r,g,b = ir,ig,ib end end Alpha(-(stop_duration or 0) + .5) if stop_message then return "|cff%02x%02x%02x%s|r",r,g,b,stop_message else if strlen(spell) >= maxstrlen then return "|cff%02x%02x%02x%s|r",r,g,b,Abbreviate(spell) else return "|cff%02x%02x%02x%s|r",r,g,b,strupper(spell) end endendreturn ConfigMode()
To post a comment, please
or register a new account.