View Full Version : HOWTO: Change the maximum level people can reach
NarutoLegacy
05-10-2004, 12:40 PM
Changing the max level
1. Download the latest source at http://cvs.biosprite.net/
2. Go into zone/client.cpp and use the find tool to find 66, then replace it with the maximum level you want + 1. So if I wanted 80 to be my maximum level I would put 81.
There! Thats all!
*Im not going to bother to sticky this, just look for it in my signature.
Spike
05-10-2004, 02:12 PM
OMG, I have been wondering this FOREVER! Now I can finally change it
woooooooooot! :D
killspree
05-12-2004, 04:48 PM
What about spells and abilities for those new levels and balancing?!
Jezebell
05-15-2004, 03:09 AM
I am not sure that this is completely accurate, I set maxlevel=255 and when players level from 115 to 116 the exp either stops or they delevel 80 levels. Not sure why.
animepimp
05-15-2004, 05:36 AM
We found this problem on Scorpious2k when we first moved to level 130. Somewhere between level 110 and 120 the xp variable stored in the blob reaches its maximum. And when a variable in C gets to the max it just rolls over back to 0. So you end up resetting to a much lower level. The only fix for this is to completely change all the xp formulas to use smaller numbers required for a level and give out a proportionally lower amount of xp. Scorp came up with formulas that are still balanced but will have enough space to store level 255 xp, you can ask him what he changed the formulas to.
Humm, if you change max level for 50, and you use #level 61, will you become level 61 ? because its what is happening to me ... Or this dont work for me (I cant believe it, its only a number to change), or ...
animepimp
05-15-2004, 08:07 AM
#level always works regardless of what max level is set to because max level is only checked in the xp calculations.
NarutoLegacy
05-15-2004, 02:23 PM
Well this is meant to be a simple guide, also I wasnt thinking about the rest, I figured it worked, but the only levels I tested were 100, 72, and 50.
cofruben
05-19-2004, 05:33 AM
I think is because of the sort of integer is,try putting unsigned long int.Haven't looked really at the line.
Jezebell
05-19-2004, 06:01 AM
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.
animepimp
05-19-2004, 07:14 AM
I think is because of the sort of integer is,try putting unsigned long int.Haven't looked really at the line.
Thats impossible to do, I talked with Scorp about this option, but the xp is stored in the blob which has a predefined structure that can't be changed. And its already stored as an Unsigned long int, to get it higher would require an unsigned long long which would break everything by changing the blob.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.