diff options
Diffstat (limited to 'src/game-server/character.cpp')
-rw-r--r-- | src/game-server/character.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/game-server/character.cpp b/src/game-server/character.cpp index 9e30ca57..1015f438 100644 --- a/src/game-server/character.cpp +++ b/src/game-server/character.cpp @@ -330,7 +330,7 @@ int Character::getAttribute(int attr) const } else { - return mExperience.find(attr)->second; + return Character::levelForExp(mExperience.find(attr)->second); } } @@ -404,6 +404,11 @@ int Character::expForLevel(int level) return int(pow(level, EXPCURVE_EXPONENT) * EXPCURVE_FACTOR); } +int Character::levelForExp(int exp) +{ + return int(pow(float(exp) / EXPCURVE_FACTOR, 1.0f / EXPCURVE_EXPONENT)); +} + void Character::receiveExperience(size_t skill, int experience) { if (skill >= CHAR_ATTR_END) |