New exp calculations.

This commit is contained in:
snowleo 2012-08-03 10:21:03 +02:00
parent ab82f550cf
commit 80f001fdb7

View file

@ -46,7 +46,15 @@ public class SetExpFix
private static int getExpToLevel(final int level) private static int getExpToLevel(final int level)
{ {
return 7 + (level * 7 >> 1); if (level >= 30)
{
return 62 + (level - 30) * 7;
}
if (level >= 15)
{
return 17 + (level - 15) * 3;
}
return 17;
} }
//This method is required because the bukkit player.getTotalExperience() method, shows exp that has been 'spent'. //This method is required because the bukkit player.getTotalExperience() method, shows exp that has been 'spent'.
@ -56,7 +64,8 @@ public class SetExpFix
int exp = (int)Math.round(getExpToLevel(player) * player.getExp()); int exp = (int)Math.round(getExpToLevel(player) * player.getExp());
int currentLevel = player.getLevel(); int currentLevel = player.getLevel();
while (currentLevel > 0) { while (currentLevel > 0)
{
currentLevel--; currentLevel--;
exp += getExpToLevel(currentLevel); exp += getExpToLevel(currentLevel);
} }