Thread Tools Display Modes
06-17-09, 11:54 AM   #1
Infergo
A Defias Bandit
Join Date: Jun 2009
Posts: 3
Disappearing Casting-bar

I'm leveling my druid now again, but everytime I get damage while casting a spell, my casting bar disappears.
It's pretty annoying when I want to link my spells, since I don't know when my spell finishes. I don't get any reports though.

Anyone else who's experienced this?
 
06-17-09, 12:01 PM   #2
Vis
A Pyroguard Emberseer
 
Vis's Avatar
Join Date: Mar 2009
Posts: 1,827
What version of nUI are you running? I think this had been fixed in one of the Dev releases. I haven't seen my casting bar disappear on my Mage, Hunter, or Paladin for quite some time now.

If you don't have it yet, download the nUI+ Dev 5.03.11 from here: http://www.wowinterface.com/download...velopment.html

That "should" fix you right up

**EDIT** If you cannot access that download, follow the directions here : http://www.wowinterface.com/forums/a....php?f=89&a=19
 
06-17-09, 03:02 PM   #3
Xrystal
nUI Maintainer
 
Xrystal's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Feb 2006
Posts: 5,928
Even with the latest the cast bar can disappear briefly and less often but I have seen it happen a couple of times in a raid.
__________________


Characters:
Gwynedda - 70 - Demon Warlock
Galaviel - 65 - Resto Druid
Gamaliel - 61 - Disc Priest
Gwynytha - 60 - Survival Hunter
Lienae - 60 - Resto Shaman
Plus several others below level 60

Info Panel IDs : http://www.wowinterface.com/forums/s...818#post136818
 
06-17-09, 03:35 PM   #4
Tegarbah
A Wyrmkin Dreamwalker
 
Tegarbah's Avatar
Join Date: Jun 2008
Posts: 58
I've also noticed that my casting bar will still disappear periodically while playing my druid. I haven't been able to pinpoint a cause.
__________________



 
06-17-09, 11:57 PM   #5
spiritwulf
A Cobalt Mageweaver
 
spiritwulf's Avatar
AddOn Author - Click to view addons
Join Date: Oct 2006
Posts: 202
Always seems to be caused by taking damage while in the process of casting, as far as i can tell anyway
__________________
Traveling through the night on padded feet
the ghost in the dark
to rend and kill
not for pleasure
but for survival
 
06-18-09, 04:14 AM   #6
spiel2001
nUI's Author
 
spiel2001's Avatar
AddOn Author - Click to view addons
Join Date: Jun 2008
Posts: 7,724
Well... nUI's casting bar now does nothing fancy... each time it gets a casting event, it queries to ask if the player is currently casting or not and only removes the bar if WoW says you aren't casting.

If you have no bar, it's because Bliz says you aren't casting when asked following a casting event. I'll look to see if there's something I've missed, but I'm about 99.9% confident that the bar is there when it is supposed to be an not when it isn't (at least according to Bliz)

I will have a look and see if I can spot anything I've missed in the re-write of that code.
__________________

What people don't get is that I am, ultimately, an artist at heart.
My brush has two colors, 1 and 0, and my canvas is made of silicon.



Official nUI Web Site: http://www.nUIaddon.com
Official nUI Support Forum: http://forums.nUIaddon.com
My day job: http://www.presidio.com/
 
06-18-09, 04:23 AM   #7
Xrystal
nUI Maintainer
 
Xrystal's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Feb 2006
Posts: 5,928
On a few of the times I have seen it, it could be quarter of the way through and disappear and then reappear when nearing completion so it could be that the timing may be off on the tests or maybe sometimes it just plain lies .. rofl
__________________


Characters:
Gwynedda - 70 - Demon Warlock
Galaviel - 65 - Resto Druid
Gamaliel - 61 - Disc Priest
Gwynytha - 60 - Survival Hunter
Lienae - 60 - Resto Shaman
Plus several others below level 60

Info Panel IDs : http://www.wowinterface.com/forums/s...818#post136818
 
06-18-09, 04:26 AM   #8
spiel2001
nUI's Author
 
spiel2001's Avatar
AddOn Author - Click to view addons
Join Date: Jun 2008
Posts: 7,724
Well... you're getting pretty good at tracking this stuff down ~smile~

The key elements are

function nUI_Unit:updateCastingInfo( unit_id, unit_info )

at line 528 in nUI_UnitCasting and

function nUI_Unit:updateCastingFrame( frame )

at line 1044. Have a look-see at them with your fresh eyes and see if you spot anything suspicious.
__________________

What people don't get is that I am, ultimately, an artist at heart.
My brush has two colors, 1 and 0, and my canvas is made of silicon.



Official nUI Web Site: http://www.nUIaddon.com
Official nUI Support Forum: http://forums.nUIaddon.com
My day job: http://www.presidio.com/
 
06-18-09, 05:39 AM   #9
Xrystal
nUI Maintainer
 
Xrystal's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Feb 2006
Posts: 5,928
Well, not seen anything obvious in the code but I did my ole fancy debug test and came up with something interesting.


proc_time I take it is the current combat log timer. start_time and end_time I can see are being the times the spell in question should be active.

I would then assume that if proc_time falls outside of that window it will think the cast bar shouldn't be there right ?

Well, it seems that the one time I spotted the cast bar disappearing unexpectedly that start_time was after proc_time and not before it.

Just doing some more tests to see if that test rings true every time it falters like that.

Oh and it all seems to be a part of the delayed part of spell casting.
__________________


Characters:
Gwynedda - 70 - Demon Warlock
Galaviel - 65 - Resto Druid
Gamaliel - 61 - Disc Priest
Gwynytha - 60 - Survival Hunter
Lienae - 60 - Resto Shaman
Plus several others below level 60

Info Panel IDs : http://www.wowinterface.com/forums/s...818#post136818
 
06-18-09, 05:42 AM   #10
spiel2001
nUI's Author
 
spiel2001's Avatar
AddOn Author - Click to view addons
Join Date: Jun 2008
Posts: 7,724
proc_time is set using GetTime() and is the current system time.

Some spells do not cast immediatelym so "start_time" would indicate when the spell should start relative to the current time and "end_time" would be when it expires.

So... the bar should not appear until start_time <= proc_time and it should go away as soon as proc_time >= end_time

EDIT: btw... the percent complete would be calculated as follows...

pct_complete = 1 - (end_time - proc_time) / (end_time - start_time)

if that helps you form the mental image a bit better.
__________________

What people don't get is that I am, ultimately, an artist at heart.
My brush has two colors, 1 and 0, and my canvas is made of silicon.



Official nUI Web Site: http://www.nUIaddon.com
Official nUI Support Forum: http://forums.nUIaddon.com
My day job: http://www.presidio.com/

Last edited by spiel2001 : 06-18-09 at 05:45 AM.
 
06-18-09, 06:17 AM   #11
Xrystal
nUI Maintainer
 
Xrystal's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Feb 2006
Posts: 5,928
Well its very hard to catch a screen shot of it but this is about the best I can get, but it is definitely looking like the only times it disappears like that is when it thinks it should be casting due to the start and end times in comparison to the proc_time.

Not sure how that will help you resolve it though but if you time your casts so that the targets attacks hit it right near the beginning of the cast it has a better chance of causing this anomaly.

Here's the bit of code I added the debug text to. I created a chat window to trap the debug messages to make things easier.


Code:
function nUI_Unit:updateCastingInfo( unit_id, unit_info )

--	nUI_ProfileStart( ProfileCounter, "updateCastingInfo" );
	
	modified  = false;
	
	if unit_info then

		if not CastingFlags[unit_id] then CastingFlags[unit_id] = {}; end
		
		proc_time = GetTime();
		
		this_cast.channeling  = CastingFlags[unit_id].channeling;
		this_cast.delayed     = CastingFlags[unit_id].delayed;
		this_cast.stopped     = CastingFlags[unit_id].stopped;
		this_cast.succeeded   = CastingFlags[unit_id].succeeded;
		this_cast.failed      = CastingFlags[unit_id].failed;
		this_cast.missed      = CastingFlags[unit_id].missed;
		this_cast.interrupted = CastingFlags[unit_id].interrupted;

                -- debug
                if ( unit_id == "player" ) then
                        if ( this_cast.succeeded ) then
                                ChatFrame4:AddMessage("Cast Succeeded for " .. proc_time);
                        end
                        if ( this_cast.stopped) then
                                ChatFrame4:AddMessage("Cast Stopped for " .. proc_time);
                        end
                end
                -- debug

		
		if CastingFlags[unit_id].channeling then
		
			this_cast.spell_name = nil;
			
			this_cast.spell, this_cast.rank, this_cast.channel_name, 
			this_cast.icon, this_cast.start_time, this_cast.end_time, 				
			this_cast.tradeskill = UnitChannelInfo( unit_id );				
			
			if this_cast.spell then
				this_cast.bar_color  = nUI_UnitOptions.CastBarColors["Channeling"];		
				this_cast.start_time = this_cast.start_time / 1000;
				this_cast.end_time   = this_cast.end_time / 1000;
			end
			
		else
		
			this_cast.channel_name = nil;
			
			this_cast.spell, this_cast.rank, this_cast.spell_name, 
			this_cast.icon, this_cast.start_time, this_cast.end_time, 				
			this_cast.tradeskill = UnitCastingInfo( unit_id );
		
						
			if this_cast.spell then
				this_cast.bar_color  = nUI_UnitOptions.CastBarColors["Casting"];		
				this_cast.start_time = this_cast.start_time / 1000;
				this_cast.end_time   = this_cast.end_time / 1000;

                		-- debug
                                if ( unit_id == "player" ) then
                                        if ( this_cast.delayed ) then		
                                                ChatFrame4:AddMessage("Cast Delayed Information for : " .. proc_time);
                                                ChatFrame4:AddMessage(this_cast.spell_name .. "(" .. this_cast.rank .. ")");
                                                ChatFrame4:AddMessage(this_cast.start_time .. "-" .. this_cast.end_time);
                                                if ( this_cast.start_time > proc_time ) then
                                                        UIErrorsFrame:AddMessage("Disappearing Cast Bar!!");
                                                        ChatFrame4:AddMessage("Disappearing Cast Bar!!!");
                                                end
                                        end
                                end
                                -- debug
				
			end
			
		end
Attached Thumbnails
Click image for larger version

Name:	WoWScrnShot_061809_131249.jpg
Views:	704
Size:	391.8 KB
ID:	2922  Click image for larger version

Name:	WoWScrnShot_061809_131250.jpg
Views:	682
Size:	391.8 KB
ID:	2923  
__________________


Characters:
Gwynedda - 70 - Demon Warlock
Galaviel - 65 - Resto Druid
Gamaliel - 61 - Disc Priest
Gwynytha - 60 - Survival Hunter
Lienae - 60 - Resto Shaman
Plus several others below level 60

Info Panel IDs : http://www.wowinterface.com/forums/s...818#post136818
 
06-18-09, 07:48 AM   #12
Xrystal
nUI Maintainer
 
Xrystal's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Feb 2006
Posts: 5,928
More tests later and when I use it in conjunction with the combat log it looks like if the mob hits you the split second you start the cast it triggers this delay and doesn't draw the cast bar but on the next update it will finish drawing it.

Downloaded Fraps and have a video capturing the disappearing bar trick in action. Trying to see if I can squeeze it down to a small file.

Rofl, even better .. managed to get a video clip less than 400mb with the disappearing bar trick appearing twice in a fight

Gonna be a while but uploading the zip file of the video to my website .. will post a link here when its ready.
__________________


Characters:
Gwynedda - 70 - Demon Warlock
Galaviel - 65 - Resto Druid
Gamaliel - 61 - Disc Priest
Gwynytha - 60 - Survival Hunter
Lienae - 60 - Resto Shaman
Plus several others below level 60

Info Panel IDs : http://www.wowinterface.com/forums/s...818#post136818

Last edited by Xrystal : 06-18-09 at 08:26 AM.
 
06-18-09, 09:20 AM   #13
spiel2001
nUI's Author
 
spiel2001's Avatar
AddOn Author - Click to view addons
Join Date: Jun 2008
Posts: 7,724
nUI has a contribution folder you can FTP into, as well, for future reference.

You should have the login name and password in one of the e-mails I sent you. If not, drop me a PM and I'll give it to you (user name and password may also be in the supporters forum -- can't remember).
__________________

What people don't get is that I am, ultimately, an artist at heart.
My brush has two colors, 1 and 0, and my canvas is made of silicon.



Official nUI Web Site: http://www.nUIaddon.com
Official nUI Support Forum: http://forums.nUIaddon.com
My day job: http://www.presidio.com/
 
06-18-09, 09:25 AM   #14
Xrystal
nUI Maintainer
 
Xrystal's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Feb 2006
Posts: 5,928
Rofl . I'll check for the email .. it should be in one of my archive folders. But for the moment its finally added to my site :

http://wow.swangen.co.uk/videos/WoW%...5-18-09-48.zip

I am also going to try and see how quartz deals with delays as they seem to have a formula sent in place for delays. On first looks it looks like the delay resets the start time so they use the original one.

Code:
function QuartzPlayer:UNIT_SPELLCAST_DELAYED(unit)
	if unit ~= 'player' then
		return
	end
	local oldStart = self.startTime
	local spell, rank, displayName, icon, startTime, endTime = UnitCastingInfo(unit)
	if not startTime then
		return castBarParent:Hide()
	end
	startTime = startTime / 1000
	endTime = endTime / 1000
	self.startTime = startTime
	self.endTime = endTime

	self.delay = (self.delay or 0) + (startTime - (oldStart or startTime))
end
edit: Well I can see that quartz tags on to the cast bar the delay time but it doesn't remove the bar unless end time > current time. From what I could see anyway. The delay value isn't used anywhere else apart from setting and displaying.
__________________


Characters:
Gwynedda - 70 - Demon Warlock
Galaviel - 65 - Resto Druid
Gamaliel - 61 - Disc Priest
Gwynytha - 60 - Survival Hunter
Lienae - 60 - Resto Shaman
Plus several others below level 60

Info Panel IDs : http://www.wowinterface.com/forums/s...818#post136818

Last edited by Xrystal : 06-18-09 at 10:44 AM.
 
06-18-09, 11:11 AM   #15
Xrystal
nUI Maintainer
 
Xrystal's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Feb 2006
Posts: 5,928
Well, think thats all I can think of at the moment. I think I got Quartz to do a similar thing by setting delay to 0 but it just fades out and not disappears so hard to tell whether it is getting the same problem ignoring the delay value.
__________________


Characters:
Gwynedda - 70 - Demon Warlock
Galaviel - 65 - Resto Druid
Gamaliel - 61 - Disc Priest
Gwynytha - 60 - Survival Hunter
Lienae - 60 - Resto Shaman
Plus several others below level 60

Info Panel IDs : http://www.wowinterface.com/forums/s...818#post136818
 
 

WoWInterface » Featured Projects » nUI, MozzFullWorldMap and PartySpotter » Support » nUI: Bug Reports » Disappearing Casting-bar


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off