summaryrefslogtreecommitdiff
path: root/src/game-server/character.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game-server/character.cpp')
-rw-r--r--src/game-server/character.cpp7
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)