Quote:
|
Nope, you're right...
x = 3000000000, y = 3E+09, z = 3000000000 x as uint32 = 3,000,000,000 y as single = x z as uint32 = y I'm just not seeing where a conversion issue is occurring in the above procedure... |
It isn't there, it's somewhere else the value is being used.
Here's an example from Client::Death() Code:
// now we apply the exp loss, unmem their spells, and make a corpse |
My source is a few weeks out of date but in Client::SetLevel the return value of GetEXPForLevel is being cast as a float numerous times. That would do it. Change float to double.
Quote:
|
Ugh I just realised exp is stored cumulatively..
|
Float is probably ok there too. Without extracting that out into a test to see what the numbers are I'd guess you might lose a very small bit of precision, but a float isn't going to roll over to a negative number like a signed int would. Besides, that formula is just to tell the client how far to fill up the experience bar. If it was incorrect the server would still have the proper value and you'd level when you didn't expect it.
|
|
All times are GMT -4. The time now is 07:11 AM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.