summaryrefslogtreecommitdiffstats
path: root/src/game-server/character.cpp
diff options
context:
space:
mode:
authorChuck Miller <shadowmil@gmail.com>2009-07-03 23:51:10 -0400
committerChuck Miller <shadowmil@gmail.com>2009-07-03 23:51:10 -0400
commit6898cb109e9d7ee4ff9c9d9648e95b79544f6405 (patch)
tree291ef704b7dc55b63abc974940b23ae9bc4bf4ab /src/game-server/character.cpp
parentc8772d145ea5db993a0d9ebc78f55b977dab1973 (diff)
downloadmanaserv-6898cb109e9d7ee4ff9c9d9648e95b79544f6405.tar.gz
manaserv-6898cb109e9d7ee4ff9c9d9648e95b79544f6405.tar.xz
manaserv-6898cb109e9d7ee4ff9c9d9648e95b79544f6405.zip
Helps fix one issue with skill levels
It seems players skill random get a lot of exp in random, unused skill IDs
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 9e30ca5..1015f43 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)