Made admin set level work properly with delevel config.

This commit is contained in:
MobiusDev
2016-06-16 07:53:39 +00:00
parent 2880d62f42
commit 3ec54fecb4

View File

@@ -62,6 +62,7 @@ public class AdminLevel implements IAdminCommandHandler
}
else if (actualCommand.equalsIgnoreCase("admin_set_level"))
{
final int maxLevel = ExperienceData.getInstance().getMaxLevel();
try
{
if (!(targetChar instanceof L2PcInstance))
@@ -72,29 +73,23 @@ public class AdminLevel implements IAdminCommandHandler
final L2PcInstance targetPlayer = (L2PcInstance) targetChar;
final byte lvl = Byte.parseByte(val);
if ((lvl >= 1) && (lvl <= ExperienceData.getInstance().getMaxLevel()))
if ((lvl >= 1) && (lvl <= maxLevel))
{
final long pXp = targetPlayer.getExp();
final long tXp = ExperienceData.getInstance().getExpForLevel(lvl);
if (pXp > tXp)
{
targetPlayer.removeExpAndSp(pXp - tXp, 0);
}
else if (pXp < tXp)
{
targetPlayer.addExpAndSp(tXp - pXp, 0);
}
targetPlayer.setExp(ExperienceData.getInstance().getExpForLevel(lvl));
targetPlayer.getStat().setLevel(lvl);
targetPlayer.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp());
targetPlayer.setCurrentCp(targetPlayer.getMaxCp());
targetPlayer.broadcastUserInfo();
}
else
{
activeChar.sendMessage("You must specify level between 1 and " + ExperienceData.getInstance().getMaxLevel() + ".");
activeChar.sendMessage("You must specify level between 1 and " + maxLevel + ".");
return false;
}
}
catch (NumberFormatException e)
{
activeChar.sendMessage("You must specify level between 1 and " + ExperienceData.getInstance().getMaxLevel() + ".");
activeChar.sendMessage("You must specify level between 1 and " + maxLevel + ".");
return false;
}
}