Sync with L2jServer HighFive Dec 21st 2015.
This commit is contained in:
@@ -34,6 +34,7 @@ import com.l2jserver.commons.database.pool.impl.ConnectionFactory;
|
||||
import com.l2jserver.gameserver.data.sql.impl.CharNameTable;
|
||||
import com.l2jserver.gameserver.data.xml.impl.ClassListData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.SkillTreesData;
|
||||
import com.l2jserver.gameserver.data.xml.impl.TransformData;
|
||||
import com.l2jserver.gameserver.enums.Race;
|
||||
import com.l2jserver.gameserver.enums.SubclassInfoType;
|
||||
import com.l2jserver.gameserver.handler.IAdminCommandHandler;
|
||||
@@ -357,8 +358,8 @@ public class AdminEditChar implements IAdminCommandHandler
|
||||
if ((ClassId.getClassId(classidval) != null) && (player.getClassId().getId() != classidval))
|
||||
{
|
||||
final boolean wasAwaken = player.isAwaken();
|
||||
TransformData.getInstance().transformPlayer(255, player);
|
||||
player.setClassId(classidval);
|
||||
|
||||
if (player.isSubClassActive())
|
||||
{
|
||||
player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClassId());
|
||||
@@ -368,16 +369,17 @@ public class AdminEditChar implements IAdminCommandHandler
|
||||
player.setBaseClassId(player.getActiveClassId());
|
||||
player.setInitialClassId(ClassId.getInitialClassId(player));
|
||||
}
|
||||
|
||||
if (player.getBaseClass().getRace().equals(Race.ERTHEIA))
|
||||
{
|
||||
player.getAppearance().setSex(true);
|
||||
}
|
||||
|
||||
final String newclass = ClassListData.getInstance().getClass(player.getClassId()).getClassName();
|
||||
player.storeMe();
|
||||
player.sendMessage("A GM changed your class to " + newclass + ".");
|
||||
player.untransform();
|
||||
player.broadcastUserInfo();
|
||||
activeChar.setTarget(null);
|
||||
activeChar.setTarget(player);
|
||||
if (!wasAwaken && player.isAwaken())
|
||||
{
|
||||
SkillTreesData.getInstance().cleanSkillUponAwakening(player);
|
||||
|
@@ -324,13 +324,13 @@ public class AdminShowQuests implements IAdminCommandHandler
|
||||
QuestState qs = target.getQuestState(val[0]);
|
||||
String[] outval = new String[3];
|
||||
|
||||
if (val[1].equals("state"))
|
||||
if ("state".equals(val[1]))
|
||||
{
|
||||
switch (val[2])
|
||||
{
|
||||
case "COMPLETED":
|
||||
{
|
||||
qs.exitQuest((val[3].equals("1")) ? true : false);
|
||||
qs.exitQuest("1".equals(val[3]));
|
||||
break;
|
||||
}
|
||||
case "DELETE":
|
||||
|
@@ -38,6 +38,7 @@ import com.l2jserver.util.StringUtil;
|
||||
|
||||
public class QuestLink implements IBypassHandler
|
||||
{
|
||||
private static final int MAX_QUEST_COUNT = 40;
|
||||
private static final String[] COMMANDS =
|
||||
{
|
||||
"Quest"
|
||||
@@ -225,7 +226,7 @@ public class QuestLink implements IBypassHandler
|
||||
if ((q.getId() >= 1) && (q.getId() < 20000))
|
||||
{
|
||||
// Too many ongoing quests.
|
||||
if (player.getAllActiveQuests().size() > 40)
|
||||
if (player.getAllActiveQuests().size() >= MAX_QUEST_COUNT)
|
||||
{
|
||||
final NpcHtmlMessage html = new NpcHtmlMessage(npc.getObjectId());
|
||||
html.setFile(player.getHtmlPrefix(), "html/fullquest.html");
|
||||
|
@@ -55,7 +55,7 @@ public final class DispelBySlotProbability extends AbstractEffect
|
||||
for (String ngtStack : _dispel.split(";"))
|
||||
{
|
||||
String[] ngt = ngtStack.split(",");
|
||||
_dispelAbnormals.put(AbnormalType.getAbnormalType(ngt[0]), Short.MAX_VALUE);
|
||||
_dispelAbnormals.put(AbnormalType.getAbnormalType(ngt[0]), (ngt.length > 1) ? Short.parseShort(ngt[1]) : Short.MAX_VALUE);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@@ -57,6 +57,7 @@ public final class ServitorShare extends AbstractEffect
|
||||
for (L2Summon summon : info.getEffected().getActingPlayer().getServitors().values())
|
||||
{
|
||||
summon.broadcastInfo();
|
||||
summon.getStatus().startHpMpRegeneration();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -81,6 +82,14 @@ public final class ServitorShare extends AbstractEffect
|
||||
{
|
||||
for (L2Summon summon : info.getEffected().getActingPlayer().getServitors().values())
|
||||
{
|
||||
if (summon.getCurrentHp() > summon.getMaxHp())
|
||||
{
|
||||
summon.setCurrentHp(summon.getMaxHp());
|
||||
}
|
||||
if (summon.getCurrentMp() > summon.getMaxMp())
|
||||
{
|
||||
summon.setCurrentMp(summon.getMaxMp());
|
||||
}
|
||||
summon.broadcastInfo();
|
||||
}
|
||||
}
|
||||
|
@@ -52,6 +52,10 @@ public class Seed implements IItemHandler
|
||||
}
|
||||
|
||||
final L2Object tgt = playable.getTarget();
|
||||
if (tgt == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (!tgt.isNpc())
|
||||
{
|
||||
playable.sendPacket(SystemMessageId.INVALID_TARGET);
|
||||
|
Reference in New Issue
Block a user