Sync with L2jServer HighFive Dec 21st 2015.

This commit is contained in:
MobiusDev
2015-12-21 11:05:04 +00:00
parent 130fa65bbd
commit 4bfbad7c46
74 changed files with 2194 additions and 307 deletions

View File

@@ -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);

View File

@@ -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":

View File

@@ -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");

View File

@@ -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

View File

@@ -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();
}
}

View File

@@ -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);