PDA

View Full Version : Ongoing "Experience dialog box" bug



Aelorean
08-06-2002, 09:56 AM
As I'm sure most everyone knows, there is a bug that occurs in the "Experience Dialog" when you zone. The bug is where, after zoning, your Experience dialog box contains a line that usually reads negative experience for a mob you've never seen.
For me, this bug always occurs when zoning.


I was thinking that perhaps until the bug is fixed, ShowEQ should be coded so that the Experience Dialog box will automatically "Clear" when zoning.

Azerael
08-06-2002, 10:00 AM
From what has been said before, this is not actually a bug.

When you zone, the client recieves an exact XP number from the server. While you are XPing in a zone, the only reference the client recieves is how many 330ths of the xp bar are filled in. Since this is the case, SEQ extrapolates how much XP, approximately, you have earned. The Negative adjustment upon zoning is based on the previous calculated XP being corrected by the actual XP as sent from the server.

In other words... it works as intended, based on my understanding of the program.

Good luck!

Dedpoet
08-06-2002, 10:31 AM
Azerael nailed it right on. A search on the word "negative" (http://seq.sourceforge.net/search.php?s=&action=showresults&searchid=18134&sortby=lastpost&sortorder=descending) gives all these results. There was a lot of discussion on this topic about a month or so ago.

monster69
08-06-2002, 12:00 PM
Can code be added to allow 3rd mouse click to remove the line much like removing from the spell list?

I am not a programmer but willing to take a swag at it, however, likelyhood of success is fairly low...


Monster

Aelorean
08-06-2002, 12:07 PM
Ok -- so it might not be an actual bug...but it fits the definition of a bug because it affects the program in a negative fashion.

If this serves a useful purpose to the end user of ShowEQ, I would love to hear it. From what you guys are saying, it's more of an internal thing (or perhaps useful for Debugging), which means it should be a toggle or else removed for the average end user.

Cryonic
08-06-2002, 12:25 PM
Actually I would think it is still useful since you need the negatives and the positives to help accurately predict time to ding/kills to ding.

P.S. You can clear the log yourself, or set it to base it's estimates on just the last hour/30 min/15 min of playing.

Azerael
08-06-2002, 01:29 PM
I going to agree with Cryonic here...

To me, the value of adjusting the XP with a negative offset far outweighs the apperance of said negative number in the experience window. I'm personally greatful that when I zone I have an absolute value to work from, and that the XP Window tracks it and adjusts is calculations accordingly. Granted within a few kills it will once again be determined by the increment of the XP bar from the server where we again are having to use a calculated XP value based on (x/330) * (XP needed for level). This goes beyond a debug functionality but to a physical tracking of how XP is actually rendered in the EQ client, not SEQ.

The valid question I see here is not how the Experience window tracks XP gains and losses, but moreover the question if there should be a switch to automatically clear it when a zone transition is detected. I can't answer that beyond saying I wouldn't use such a switch, personally. There are already, as Cryonic also points out, methods to base the calcualtions on All/Last 15 Min/Last 30 Min/Last 60 Min as well as an option to clear the XP box entirely. For me, thats plenty, but for others, I guess thats what this thread really needs to answer.

lildr00d
08-06-2002, 01:43 PM
I've added codeing to my experincelog.cpp file as follows


int mob_level, long xp_gained, QString zone_name )
{

if (xp_gained < 0)
return;
ExperienceRecord *xp = new ExperienceRecord( mob_name, mob_level,
xp_gained, time(0), zone_name, m_player, m_group);


Which helps with the zoneing problem and still shows me the "GAPS" in exp gained or rather the skips that happen when gaining exp.

I am still looking to expand this code to accept "Deaths". By this I mean I am looking at what the actual recoded loss is for zoneing and adding another formula that is basically if xp_gained < 0 and > (What ever number I come up with for zoneing) then return. Then you will get death exp totals and apon rez you will gain the exp back depending on the % rez you got.


Again I am still playing arround with this. Mabey some of you have better ideas or a current working fix on the solution I am trying to do.

rizwank
09-01-2002, 03:40 PM
possible stupid question

can you camp out and come back in to avoid the xp hit when you zone? granted it wouldnt be more than 1/330th but ;p

Cryonic
09-01-2002, 04:55 PM
There is no Hit to your exp. Any time you zone (that includes camping), the server sends the exact numeric amount of exp your character has. Until that time, ONLY the server truly knows exactly how much exp you have gained while in the zone. The client and also SEQ are only given updates when the exp bar needs to be redrawn (in intervals of 1/330th) and so SEQ can only extrapolate what your real exp is until you zone.

rizwank
09-01-2002, 05:46 PM
check. misread. thx

lildr00d
09-02-2002, 11:42 PM
When you zone, the client recieves an exact XP number from the server. While you are XPing in a zone, the only reference the client recieves is how many 330ths of the xp bar are filled in. Since this is the case, SEQ extrapolates how much XP, approximately, you have earned. The Negative adjustment upon zoning is based on the previous calculated XP being corrected by the actual XP as sent from the server.

This being the case why when I zone multiple times do I still get neg exp. This would not be consistant with the SEQ box getting updated from the first zone of how much exp there actually is.

I changed the code on my system to reflect that I never get neg experience and this has seemed to fix most of those problems. Mainly I was just trying to understand how the above quote could be posiable when ever zone I go thru it seems to recalculate the about same exp loss.