AdminLevel setlevel improvements.

Contributed by NightBR.
This commit is contained in:
MobiusDevelopment
2019-03-22 10:54:44 +00:00
parent 3b9cb63ca2
commit 6388ea0504
12 changed files with 284 additions and 121 deletions

View File

@@ -18,6 +18,7 @@ package handlers.admincommandhandlers;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.data.xml.impl.ExperienceData; import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.handler.IAdminCommandHandler; import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
import com.l2jmobius.gameserver.model.L2Object; import com.l2jmobius.gameserver.model.L2Object;
@@ -62,22 +63,35 @@ 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
{ {
if ((targetChar == null) || !targetChar.isPlayer()) if ((targetChar == null) || !targetChar.isPlayer())
{ {
activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target! activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target!
return false; return false;
} }
final L2PcInstance targetPlayer = (L2PcInstance) targetChar;
final L2PcInstance targetPlayer = targetChar.getActingPlayer();
int maxLevel = ExperienceData.getInstance().getMaxLevel();
if (targetPlayer.isSubClassActive() && (Config.MAX_SUBCLASS_LEVEL < maxLevel))
{
maxLevel = Config.MAX_SUBCLASS_LEVEL;
}
try
{
final byte lvl = Byte.parseByte(val); final byte lvl = Byte.parseByte(val);
if ((lvl >= 1) && (lvl <= maxLevel)) if ((lvl >= 1) && (lvl <= maxLevel))
{ {
targetPlayer.setExp(ExperienceData.getInstance().getExpForLevel(lvl)); final long pXp = targetPlayer.getExp();
targetPlayer.getStat().setLevel(lvl); 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.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp()); targetPlayer.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp());
targetPlayer.setCurrentCp(targetPlayer.getMaxCp()); targetPlayer.setCurrentCp(targetPlayer.getMaxCp());
targetPlayer.broadcastUserInfo(); targetPlayer.broadcastUserInfo();

View File

@@ -18,6 +18,7 @@ package handlers.admincommandhandlers;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.data.xml.impl.ExperienceData; import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.handler.IAdminCommandHandler; import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
import com.l2jmobius.gameserver.model.L2Object; import com.l2jmobius.gameserver.model.L2Object;
@@ -62,22 +63,35 @@ 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
{ {
if ((targetChar == null) || !targetChar.isPlayer()) if ((targetChar == null) || !targetChar.isPlayer())
{ {
activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target! activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target!
return false; return false;
} }
final L2PcInstance targetPlayer = (L2PcInstance) targetChar;
final L2PcInstance targetPlayer = targetChar.getActingPlayer();
int maxLevel = ExperienceData.getInstance().getMaxLevel();
if (targetPlayer.isSubClassActive() && (Config.MAX_SUBCLASS_LEVEL < maxLevel))
{
maxLevel = Config.MAX_SUBCLASS_LEVEL;
}
try
{
final byte lvl = Byte.parseByte(val); final byte lvl = Byte.parseByte(val);
if ((lvl >= 1) && (lvl <= maxLevel)) if ((lvl >= 1) && (lvl <= maxLevel))
{ {
targetPlayer.setExp(ExperienceData.getInstance().getExpForLevel(lvl)); final long pXp = targetPlayer.getExp();
targetPlayer.getStat().setLevel(lvl); 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.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp()); targetPlayer.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp());
targetPlayer.setCurrentCp(targetPlayer.getMaxCp()); targetPlayer.setCurrentCp(targetPlayer.getMaxCp());
targetPlayer.broadcastUserInfo(); targetPlayer.broadcastUserInfo();

View File

@@ -18,6 +18,7 @@ package handlers.admincommandhandlers;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.data.xml.impl.ExperienceData; import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.handler.IAdminCommandHandler; import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
import com.l2jmobius.gameserver.model.L2Object; import com.l2jmobius.gameserver.model.L2Object;
@@ -62,22 +63,35 @@ 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
{ {
if ((targetChar == null) || !targetChar.isPlayer()) if ((targetChar == null) || !targetChar.isPlayer())
{ {
activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target! activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target!
return false; return false;
} }
final L2PcInstance targetPlayer = (L2PcInstance) targetChar;
final L2PcInstance targetPlayer = targetChar.getActingPlayer();
int maxLevel = ExperienceData.getInstance().getMaxLevel();
if (targetPlayer.isSubClassActive() && (Config.MAX_SUBCLASS_LEVEL < maxLevel))
{
maxLevel = Config.MAX_SUBCLASS_LEVEL;
}
try
{
final byte lvl = Byte.parseByte(val); final byte lvl = Byte.parseByte(val);
if ((lvl >= 1) && (lvl <= maxLevel)) if ((lvl >= 1) && (lvl <= maxLevel))
{ {
targetPlayer.setExp(ExperienceData.getInstance().getExpForLevel(lvl)); final long pXp = targetPlayer.getExp();
targetPlayer.getStat().setLevel(lvl); 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.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp()); targetPlayer.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp());
targetPlayer.setCurrentCp(targetPlayer.getMaxCp()); targetPlayer.setCurrentCp(targetPlayer.getMaxCp());
targetPlayer.broadcastUserInfo(); targetPlayer.broadcastUserInfo();

View File

@@ -18,6 +18,7 @@ package handlers.admincommandhandlers;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.data.xml.impl.ExperienceData; import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.handler.IAdminCommandHandler; import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
import com.l2jmobius.gameserver.model.L2Object; import com.l2jmobius.gameserver.model.L2Object;
@@ -62,22 +63,35 @@ 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
{ {
if ((targetChar == null) || !targetChar.isPlayer()) if ((targetChar == null) || !targetChar.isPlayer())
{ {
activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target! activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target!
return false; return false;
} }
final L2PcInstance targetPlayer = (L2PcInstance) targetChar;
final L2PcInstance targetPlayer = targetChar.getActingPlayer();
int maxLevel = ExperienceData.getInstance().getMaxLevel();
if (targetPlayer.isSubClassActive() && (Config.MAX_SUBCLASS_LEVEL < maxLevel))
{
maxLevel = Config.MAX_SUBCLASS_LEVEL;
}
try
{
final byte lvl = Byte.parseByte(val); final byte lvl = Byte.parseByte(val);
if ((lvl >= 1) && (lvl <= maxLevel)) if ((lvl >= 1) && (lvl <= maxLevel))
{ {
targetPlayer.setExp(ExperienceData.getInstance().getExpForLevel(lvl)); final long pXp = targetPlayer.getExp();
targetPlayer.getStat().setLevel(lvl); 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.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp()); targetPlayer.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp());
targetPlayer.setCurrentCp(targetPlayer.getMaxCp()); targetPlayer.setCurrentCp(targetPlayer.getMaxCp());
targetPlayer.broadcastUserInfo(); targetPlayer.broadcastUserInfo();

View File

@@ -18,6 +18,7 @@ package handlers.admincommandhandlers;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.data.xml.impl.ExperienceData; import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.handler.IAdminCommandHandler; import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
import com.l2jmobius.gameserver.model.L2Object; import com.l2jmobius.gameserver.model.L2Object;
@@ -62,22 +63,35 @@ 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
{ {
if ((targetChar == null) || !targetChar.isPlayer()) if ((targetChar == null) || !targetChar.isPlayer())
{ {
activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target! activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target!
return false; return false;
} }
final L2PcInstance targetPlayer = (L2PcInstance) targetChar;
final L2PcInstance targetPlayer = targetChar.getActingPlayer();
int maxLevel = ExperienceData.getInstance().getMaxLevel();
if (targetPlayer.isSubClassActive() && (Config.MAX_SUBCLASS_LEVEL < maxLevel))
{
maxLevel = Config.MAX_SUBCLASS_LEVEL;
}
try
{
final byte lvl = Byte.parseByte(val); final byte lvl = Byte.parseByte(val);
if ((lvl >= 1) && (lvl <= maxLevel)) if ((lvl >= 1) && (lvl <= maxLevel))
{ {
targetPlayer.setExp(ExperienceData.getInstance().getExpForLevel(lvl)); final long pXp = targetPlayer.getExp();
targetPlayer.getStat().setLevel(lvl); 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.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp()); targetPlayer.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp());
targetPlayer.setCurrentCp(targetPlayer.getMaxCp()); targetPlayer.setCurrentCp(targetPlayer.getMaxCp());
targetPlayer.broadcastUserInfo(); targetPlayer.broadcastUserInfo();

View File

@@ -18,6 +18,7 @@ package handlers.admincommandhandlers;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.data.xml.impl.ExperienceData; import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.handler.IAdminCommandHandler; import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
import com.l2jmobius.gameserver.model.L2Object; import com.l2jmobius.gameserver.model.L2Object;
@@ -62,22 +63,35 @@ 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
{ {
if ((targetChar == null) || !targetChar.isPlayer()) if ((targetChar == null) || !targetChar.isPlayer())
{ {
activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target! activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target!
return false; return false;
} }
final L2PcInstance targetPlayer = (L2PcInstance) targetChar;
final L2PcInstance targetPlayer = targetChar.getActingPlayer();
int maxLevel = ExperienceData.getInstance().getMaxLevel();
if (targetPlayer.isSubClassActive() && (Config.MAX_SUBCLASS_LEVEL < maxLevel))
{
maxLevel = Config.MAX_SUBCLASS_LEVEL;
}
try
{
final byte lvl = Byte.parseByte(val); final byte lvl = Byte.parseByte(val);
if ((lvl >= 1) && (lvl <= maxLevel)) if ((lvl >= 1) && (lvl <= maxLevel))
{ {
targetPlayer.setExp(ExperienceData.getInstance().getExpForLevel(lvl)); final long pXp = targetPlayer.getExp();
targetPlayer.getStat().setLevel(lvl); 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.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp()); targetPlayer.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp());
targetPlayer.setCurrentCp(targetPlayer.getMaxCp()); targetPlayer.setCurrentCp(targetPlayer.getMaxCp());
targetPlayer.broadcastUserInfo(); targetPlayer.broadcastUserInfo();

View File

@@ -18,6 +18,7 @@ package handlers.admincommandhandlers;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.data.xml.impl.ExperienceData; import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.handler.IAdminCommandHandler; import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
import com.l2jmobius.gameserver.model.L2Object; import com.l2jmobius.gameserver.model.L2Object;
@@ -62,22 +63,35 @@ 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
{ {
if ((targetChar == null) || !targetChar.isPlayer()) if ((targetChar == null) || !targetChar.isPlayer())
{ {
activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target! activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target!
return false; return false;
} }
final L2PcInstance targetPlayer = (L2PcInstance) targetChar;
final L2PcInstance targetPlayer = targetChar.getActingPlayer();
int maxLevel = ExperienceData.getInstance().getMaxLevel();
if (targetPlayer.isSubClassActive() && (Config.MAX_SUBCLASS_LEVEL < maxLevel))
{
maxLevel = Config.MAX_SUBCLASS_LEVEL;
}
try
{
final byte lvl = Byte.parseByte(val); final byte lvl = Byte.parseByte(val);
if ((lvl >= 1) && (lvl <= maxLevel)) if ((lvl >= 1) && (lvl <= maxLevel))
{ {
targetPlayer.setExp(ExperienceData.getInstance().getExpForLevel(lvl)); final long pXp = targetPlayer.getExp();
targetPlayer.getStat().setLevel(lvl); 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.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp()); targetPlayer.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp());
targetPlayer.setCurrentCp(targetPlayer.getMaxCp()); targetPlayer.setCurrentCp(targetPlayer.getMaxCp());
targetPlayer.broadcastUserInfo(); targetPlayer.broadcastUserInfo();

View File

@@ -18,6 +18,7 @@ package handlers.admincommandhandlers;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.data.xml.impl.ExperienceData; import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.handler.IAdminCommandHandler; import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
import com.l2jmobius.gameserver.model.L2Object; import com.l2jmobius.gameserver.model.L2Object;
@@ -62,22 +63,27 @@ public class AdminLevel implements IAdminCommandHandler
} }
} }
else if (actualCommand.equalsIgnoreCase("admin_set_level")) else if (actualCommand.equalsIgnoreCase("admin_set_level"))
{
try
{ {
if ((targetChar == null) || !targetChar.isPlayer()) if ((targetChar == null) || !targetChar.isPlayer())
{ {
activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target! activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target!
return false; return false;
} }
final L2PcInstance targetPlayer = (L2PcInstance) targetChar;
final L2PcInstance targetPlayer = targetChar.getActingPlayer();
int maxLevel = ExperienceData.getInstance().getMaxLevel();
if (targetPlayer.isSubClassActive() && (Config.MAX_SUBCLASS_LEVEL < maxLevel))
{
maxLevel = Config.MAX_SUBCLASS_LEVEL;
}
try
{
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(); final long pXp = targetPlayer.getExp();
final long tXp = ExperienceData.getInstance().getExpForLevel(lvl); final long tXp = ExperienceData.getInstance().getExpForLevel(lvl);
if (pXp > tXp) if (pXp > tXp)
{ {
targetPlayer.removeExpAndSp(pXp - tXp, 0); targetPlayer.removeExpAndSp(pXp - tXp, 0);
@@ -86,16 +92,19 @@ public class AdminLevel implements IAdminCommandHandler
{ {
targetPlayer.addExpAndSp(tXp - pXp, 0); targetPlayer.addExpAndSp(tXp - pXp, 0);
} }
targetPlayer.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp());
targetPlayer.setCurrentCp(targetPlayer.getMaxCp());
targetPlayer.broadcastUserInfo();
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "You must specify level between 1 and " + ExperienceData.getInstance().getMaxLevel() + "."); BuilderUtil.sendSysMessage(activeChar, "You must specify level between 1 and " + maxLevel + ".");
return false; return false;
} }
} }
catch (NumberFormatException e) catch (NumberFormatException e)
{ {
BuilderUtil.sendSysMessage(activeChar, "You must specify level between 1 and " + ExperienceData.getInstance().getMaxLevel() + "."); BuilderUtil.sendSysMessage(activeChar, "You must specify level between 1 and " + maxLevel + ".");
return false; return false;
} }
} }

View File

@@ -18,6 +18,7 @@ package handlers.admincommandhandlers;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.data.xml.impl.ExperienceData; import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.handler.IAdminCommandHandler; import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
import com.l2jmobius.gameserver.model.L2Object; import com.l2jmobius.gameserver.model.L2Object;
@@ -62,22 +63,35 @@ 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
{ {
if ((targetChar == null) || !targetChar.isPlayer()) if ((targetChar == null) || !targetChar.isPlayer())
{ {
activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target! activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target!
return false; return false;
} }
final L2PcInstance targetPlayer = (L2PcInstance) targetChar;
final L2PcInstance targetPlayer = targetChar.getActingPlayer();
int maxLevel = ExperienceData.getInstance().getMaxLevel();
if (targetPlayer.isSubClassActive() && (Config.MAX_SUBCLASS_LEVEL < maxLevel))
{
maxLevel = Config.MAX_SUBCLASS_LEVEL;
}
try
{
final byte lvl = Byte.parseByte(val); final byte lvl = Byte.parseByte(val);
if ((lvl >= 1) && (lvl <= maxLevel)) if ((lvl >= 1) && (lvl <= maxLevel))
{ {
targetPlayer.setExp(ExperienceData.getInstance().getExpForLevel(lvl)); final long pXp = targetPlayer.getExp();
targetPlayer.getStat().setLevel(lvl); 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.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp()); targetPlayer.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp());
targetPlayer.setCurrentCp(targetPlayer.getMaxCp()); targetPlayer.setCurrentCp(targetPlayer.getMaxCp());
targetPlayer.broadcastUserInfo(); targetPlayer.broadcastUserInfo();

View File

@@ -18,6 +18,7 @@ package handlers.admincommandhandlers;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.data.xml.impl.ExperienceData; import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.handler.IAdminCommandHandler; import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
import com.l2jmobius.gameserver.model.L2Object; import com.l2jmobius.gameserver.model.L2Object;
@@ -62,22 +63,35 @@ 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
{ {
if ((targetChar == null) || !targetChar.isPlayer()) if ((targetChar == null) || !targetChar.isPlayer())
{ {
activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target! activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target!
return false; return false;
} }
final L2PcInstance targetPlayer = (L2PcInstance) targetChar;
final L2PcInstance targetPlayer = targetChar.getActingPlayer();
int maxLevel = ExperienceData.getInstance().getMaxLevel();
if (targetPlayer.isSubClassActive() && (Config.MAX_SUBCLASS_LEVEL < maxLevel))
{
maxLevel = Config.MAX_SUBCLASS_LEVEL;
}
try
{
final byte lvl = Byte.parseByte(val); final byte lvl = Byte.parseByte(val);
if ((lvl >= 1) && (lvl <= maxLevel)) if ((lvl >= 1) && (lvl <= maxLevel))
{ {
targetPlayer.setExp(ExperienceData.getInstance().getExpForLevel(lvl)); final long pXp = targetPlayer.getExp();
targetPlayer.getStat().setLevel(lvl); 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.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp()); targetPlayer.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp());
targetPlayer.setCurrentCp(targetPlayer.getMaxCp()); targetPlayer.setCurrentCp(targetPlayer.getMaxCp());
targetPlayer.broadcastUserInfo(); targetPlayer.broadcastUserInfo();

View File

@@ -18,6 +18,7 @@ package handlers.admincommandhandlers;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.data.xml.impl.ExperienceData; import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.handler.IAdminCommandHandler; import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
import com.l2jmobius.gameserver.model.L2Object; import com.l2jmobius.gameserver.model.L2Object;
@@ -62,22 +63,35 @@ 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
{ {
if ((targetChar == null) || !targetChar.isPlayer()) if ((targetChar == null) || !targetChar.isPlayer())
{ {
activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target! activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target!
return false; return false;
} }
final L2PcInstance targetPlayer = (L2PcInstance) targetChar;
final L2PcInstance targetPlayer = targetChar.getActingPlayer();
int maxLevel = ExperienceData.getInstance().getMaxLevel();
if (targetPlayer.isSubClassActive() && (Config.MAX_SUBCLASS_LEVEL < maxLevel))
{
maxLevel = Config.MAX_SUBCLASS_LEVEL;
}
try
{
final byte lvl = Byte.parseByte(val); final byte lvl = Byte.parseByte(val);
if ((lvl >= 1) && (lvl <= maxLevel)) if ((lvl >= 1) && (lvl <= maxLevel))
{ {
targetPlayer.setExp(ExperienceData.getInstance().getExpForLevel(lvl)); final long pXp = targetPlayer.getExp();
targetPlayer.getStat().setLevel(lvl); 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.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp()); targetPlayer.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp());
targetPlayer.setCurrentCp(targetPlayer.getMaxCp()); targetPlayer.setCurrentCp(targetPlayer.getMaxCp());
targetPlayer.broadcastUserInfo(); targetPlayer.broadcastUserInfo();

View File

@@ -18,6 +18,7 @@ package handlers.admincommandhandlers;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.data.xml.impl.ExperienceData; import com.l2jmobius.gameserver.data.xml.impl.ExperienceData;
import com.l2jmobius.gameserver.handler.IAdminCommandHandler; import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
import com.l2jmobius.gameserver.model.L2Object; import com.l2jmobius.gameserver.model.L2Object;
@@ -62,22 +63,35 @@ 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
{ {
if ((targetChar == null) || !targetChar.isPlayer()) if ((targetChar == null) || !targetChar.isPlayer())
{ {
activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target! activeChar.sendPacket(SystemMessageId.THAT_IS_AN_INCORRECT_TARGET); // incorrect target!
return false; return false;
} }
final L2PcInstance targetPlayer = (L2PcInstance) targetChar;
final L2PcInstance targetPlayer = targetChar.getActingPlayer();
int maxLevel = ExperienceData.getInstance().getMaxLevel();
if (targetPlayer.isSubClassActive() && (Config.MAX_SUBCLASS_LEVEL < maxLevel))
{
maxLevel = Config.MAX_SUBCLASS_LEVEL;
}
try
{
final byte lvl = Byte.parseByte(val); final byte lvl = Byte.parseByte(val);
if ((lvl >= 1) && (lvl <= maxLevel)) if ((lvl >= 1) && (lvl <= maxLevel))
{ {
targetPlayer.setExp(ExperienceData.getInstance().getExpForLevel(lvl)); final long pXp = targetPlayer.getExp();
targetPlayer.getStat().setLevel(lvl); 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.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp()); targetPlayer.setCurrentHpMp(targetPlayer.getMaxHp(), targetPlayer.getMaxMp());
targetPlayer.setCurrentCp(targetPlayer.getMaxCp()); targetPlayer.setCurrentCp(targetPlayer.getMaxCp());
targetPlayer.broadcastUserInfo(); targetPlayer.broadcastUserInfo();