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