
05-19-2004, 06:01 AM
|
Discordant
|
|
Join Date: Feb 2004
Location: Florida
Posts: 441
|
|
Quote:
Originally Posted by Scorpious2k
The problem is the exp calcs in client.cpp Client::GetEXPForLevel
The value it calculates exceeds the size of the variable it returns(uint32) and rolls over. I rewrote it a long time ago for our server to get rid of the "hell levels" and later tweaked it to allow even higher levels than the earlier calc did.
Basically, you have to calculate lower values here but still in a progressive scale so each level is harder than the last. It isn't a problem using the lower numbers because the client actually get sent the % of xp relative to the next level and not the actual numbers.
The first problem this will produce will be that players who have high exp gained from playing will jump (or drop) many levels. I put temproray code in that limited increases/decreases of level to 1 and corrected the exp needed for the next level. After the first leveling, it corrects itself.
The next problem you will run into after that is exp gained on kills. It will give way to much, because it is assuming the old calculation. So you have to reduce the exp awarded. Luckily, there's a variable i the variable table for that.
Hope this helps.
|
__________________
Eru, the Creator of Arda
ServerOwner for The First Age
An EQEMulator Roleplaying [Custom-Legit] Server
The First Age Website
Running on: Asus A7N8X-Deluxe, AMD Athlon XP 2100+, Geil 1024MB PC3200 Ultra DDR RAM,
WD 40GB 7200rpm ATA-100 HDD, Visiontek 128MB Geforce4 TI 4400, Windows XP Pro SP2
|