From 3ec54fecb4e2e546462787432c701c5be6a0806b Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Thu, 16 Jun 2016 07:53:39 +0000 Subject: [PATCH] Made admin set level work properly with delevel config. --- .../admincommandhandlers/AdminLevel.java | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminLevel.java b/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminLevel.java index a213c9f012..04a59d6064 100644 --- a/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminLevel.java +++ b/trunk/dist/game/data/scripts/handlers/admincommandhandlers/AdminLevel.java @@ -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; } }