Underground update.

This commit is contained in:
MobiusDev
2015-11-07 01:36:06 +00:00
parent cf1f829606
commit 37dbd02716
750 changed files with 102520 additions and 58051 deletions

View File

@@ -86,6 +86,7 @@ import com.l2jserver.gameserver.model.actor.tasks.character.QueuedMagicUseTask;
import com.l2jserver.gameserver.model.actor.templates.L2CharTemplate;
import com.l2jserver.gameserver.model.actor.transform.Transform;
import com.l2jserver.gameserver.model.actor.transform.TransformTemplate;
import com.l2jserver.gameserver.model.effects.AbstractEffect;
import com.l2jserver.gameserver.model.effects.EffectFlag;
import com.l2jserver.gameserver.model.effects.L2EffectType;
import com.l2jserver.gameserver.model.entity.Instance;
@@ -119,6 +120,7 @@ import com.l2jserver.gameserver.model.options.OptionsSkillHolder;
import com.l2jserver.gameserver.model.options.OptionsSkillType;
import com.l2jserver.gameserver.model.skills.AbnormalType;
import com.l2jserver.gameserver.model.skills.AbnormalVisualEffect;
import com.l2jserver.gameserver.model.skills.BlowSuccess;
import com.l2jserver.gameserver.model.skills.BuffInfo;
import com.l2jserver.gameserver.model.skills.CommonSkill;
import com.l2jserver.gameserver.model.skills.EffectScope;
@@ -1853,7 +1855,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
{
if (!destroyItemByItemId("Consume", skill.getItemConsumeId(), skill.getItemConsumeCount(), null, true))
{
getActingPlayer().sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT2);
getActingPlayer().sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT);
abortCast();
return;
}
@@ -1880,7 +1882,18 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
// Send a Server->Client packet MagicSkillUser with target, displayId, level, skillTime, reuseDelay
// to the L2Character AND to all L2PcInstance in the _KnownPlayers of the L2Character
broadcastPacket(new MagicSkillUse(this, target, skill.getDisplayId(), skill.getDisplayLevel(), skillTime, reuseDelay));
if (skill.getBlowChance() > 0)
{
for (AbstractEffect effect : skill.getEffects(EffectScope.GENERAL))
{
BlowSuccess.getInstance().set(this, skill, effect.calcSuccess(new BuffInfo(this, target, skill)));
}
broadcastPacket(new MagicSkillUse(this, target, skill.getDisplayId(), skill.getDisplayLevel(), skillTime, reuseDelay, BlowSuccess.getInstance().get(this, skill)));
}
else
{
broadcastPacket(new MagicSkillUse(this, target, skill.getDisplayId(), skill.getDisplayLevel(), skillTime, reuseDelay));
}
// Send a system message to the player.
if (isPlayer() && !skill.isAbnormalInstant())

View File

@@ -395,7 +395,7 @@ public final class L2ClassMasterInstance extends L2MerchantInstance
{
if (player.getInventory().getInventoryItemCount(holder.getId(), -1) < holder.getCount())
{
player.sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT2);
player.sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT);
return false;
}
}
@@ -419,11 +419,11 @@ public final class L2ClassMasterInstance extends L2MerchantInstance
if (player.isSubClassActive())
{
player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass());
player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClassId());
}
else
{
player.setBaseClass(player.getActiveClass());
player.setBaseClassId(player.getActiveClassId());
}
player.broadcastUserInfo();

View File

@@ -429,6 +429,7 @@ public final class L2PcInstance extends L2Playable
private long _uptime;
private final ReentrantLock _subclassLock = new ReentrantLock();
protected int _initialClass;
protected int _baseClass;
protected int _activeClass;
protected int _classIndex = 0;
@@ -954,6 +955,8 @@ public final class L2PcInstance extends L2Playable
player.setName(name);
// Set Character's create time
player.setCreateDate(Calendar.getInstance());
// Set the initial class ID to that of the actual class ID.
player.setInitialClassId(player.getClassId().getId());
// Set the base class ID to that of the actual class ID.
player.setBaseClass(player.getClassId());
// Give 20 recommendations
@@ -1234,14 +1237,19 @@ public final class L2PcInstance extends L2Playable
return super.getLevelMod();
}
public void setBaseClass(int baseClass)
public void setInitialClassId(int classId)
{
_initialClass = classId;
}
public void setBaseClassId(int baseClass)
{
_baseClass = baseClass;
}
public void setBaseClass(ClassId classId)
{
_baseClass = classId.ordinal();
_baseClass = classId.getId();
}
public boolean isInStoreMode()
@@ -3125,7 +3133,7 @@ public final class L2PcInstance extends L2Playable
{
if (sendMessage)
{
sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT2);
sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT);
}
return false;
}
@@ -3459,7 +3467,7 @@ public final class L2PcInstance extends L2Playable
{
if (sendMessage)
{
sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT2);
sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT);
}
return false;
}
@@ -3519,7 +3527,7 @@ public final class L2PcInstance extends L2Playable
{
if (sendMessage)
{
sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT2);
sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT);
}
return false;
@@ -3544,7 +3552,7 @@ public final class L2PcInstance extends L2Playable
{
if (sendMessage)
{
sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT2);
sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT);
}
return false;
@@ -3576,7 +3584,7 @@ public final class L2PcInstance extends L2Playable
{
if (sendMessage)
{
sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT2);
sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT);
}
return false;
@@ -3771,7 +3779,7 @@ public final class L2PcInstance extends L2Playable
{
if (sendMessage)
{
sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT2);
sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT);
}
return false;
@@ -3864,7 +3872,7 @@ public final class L2PcInstance extends L2Playable
{
if (sendMessage)
{
sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT2);
sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT);
}
return null;
@@ -6616,7 +6624,7 @@ public final class L2PcInstance extends L2Playable
{
// You can't mount, dismount, break and drop items while fishing
sendPacket(ActionFailed.STATIC_PACKET);
sendPacket(SystemMessageId.YOU_CANNOT_DO_THAT_WHILE_FISHING2);
sendPacket(SystemMessageId.YOU_CANNOT_DO_THAT_WHILE_FISHING);
return false;
}
else if (isTransformed() || isCursedWeaponEquipped())
@@ -7020,7 +7028,7 @@ public final class L2PcInstance extends L2Playable
ps.setInt(30, isOnlineInt());
ps.setInt(31, getClanPrivileges().getBitmask());
ps.setInt(32, getWantsPeace());
ps.setInt(33, getBaseClass());
ps.setInt(33, getBaseClassId());
ps.setInt(34, isNoble() ? 1 : 0);
ps.setLong(35, 0);
ps.setTimestamp(36, new Timestamp(getCreateDate().getTimeInMillis()));
@@ -7125,18 +7133,18 @@ public final class L2PcInstance extends L2Playable
player._classIndex = 0;
try
{
player.setBaseClass(rset.getInt("base_class"));
player.setBaseClassId(rset.getInt("base_class"));
}
catch (Exception e)
{
// TODO: Should this be logged?
player.setBaseClass(activeClassId);
player.setBaseClassId(activeClassId);
}
player.setInitialClassId(ClassId.getInitialClassId(player));
// Restore Subclass Data (cannot be done earlier in function)
if (restoreSubClassData(player))
{
if (activeClassId != player.getBaseClass())
if (activeClassId != player.getBaseClassId())
{
for (SubClass subClass : player.getSubClasses().values())
{
@@ -7147,12 +7155,12 @@ public final class L2PcInstance extends L2Playable
}
}
}
if ((player.getClassIndex() == 0) && (activeClassId != player.getBaseClass()))
if ((player.getClassIndex() == 0) && (activeClassId != player.getBaseClassId()))
{
// Subclass in use but doesn't exist in DB -
// a possible restart-while-modifysubclass cheat has been attempted.
// Switching to use base class
player.setClassId(player.getBaseClass());
player.setClassId(player.getBaseClassId());
_log.warning("Player " + player.getName() + " reverted to base class. Possibly has tried a relogin exploit while subclassing.");
}
else
@@ -7651,7 +7659,7 @@ public final class L2PcInstance extends L2Playable
ps.setInt(31, isOnlineInt());
ps.setInt(32, getClanPrivileges().getBitmask());
ps.setInt(33, getWantsPeace());
ps.setInt(34, getBaseClass());
ps.setInt(34, getBaseClassId());
long totalOnlineTime = _onlineTime;
if (_onlineBeginTime > 0)
@@ -9657,8 +9665,32 @@ public final class L2PcInstance extends L2Playable
{
if (_activeSoulShots.contains(itemId))
{
removeAutoSoulShot(itemId);
sendPacket(new ExAutoSoulShot(itemId, 0));
final L2ItemInstance item = getInventory().getItemByItemId(itemId);
switch (item.getEtcItem().getDefaultAction())
{
case SOULSHOT:
case FISHINGSHOT:
{
sendPacket(new ExAutoSoulShot(itemId, 0, 0));
break;
}
case SPIRITSHOT:
{
sendPacket(new ExAutoSoulShot(itemId, 0, 1));
break;
}
case SUMMON_SOULSHOT:
{
sendPacket(new ExAutoSoulShot(itemId, 0, 2));
break;
}
case SUMMON_SPIRITSHOT:
{
sendPacket(new ExAutoSoulShot(itemId, 0, 3));
break;
}
}
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THE_AUTOMATIC_USE_OF_S1_HAS_BEEN_DEACTIVATED);
sm.addItemName(itemId);
@@ -9675,7 +9707,33 @@ public final class L2PcInstance extends L2Playable
{
for (int itemId : _activeSoulShots)
{
sendPacket(new ExAutoSoulShot(itemId, 0));
final L2ItemInstance item = getInventory().getItemByItemId(itemId);
switch (item.getEtcItem().getDefaultAction())
{
case SOULSHOT:
case FISHINGSHOT:
{
sendPacket(new ExAutoSoulShot(itemId, 0, 0));
break;
}
case SPIRITSHOT:
{
sendPacket(new ExAutoSoulShot(itemId, 0, 1));
break;
}
case SUMMON_SOULSHOT:
{
sendPacket(new ExAutoSoulShot(itemId, 0, 2));
break;
}
case SUMMON_SPIRITSHOT:
{
sendPacket(new ExAutoSoulShot(itemId, 0, 3));
break;
}
}
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THE_AUTOMATIC_USE_OF_S1_HAS_BEEN_DEACTIVATED);
sm.addItemName(itemId);
sendPacket(sm);
@@ -10573,12 +10631,27 @@ public final class L2PcInstance extends L2Playable
return getSubClasses().size();
}
public int getBaseClass()
public int getInitialClassId()
{
return _initialClass;
}
public ClassId getInitialClass()
{
return ClassId.getClassId(_initialClass);
}
public int getBaseClassId()
{
return _baseClass;
}
public int getActiveClass()
public ClassId getBaseClass()
{
return ClassId.getClassId(_baseClass);
}
public int getActiveClassId()
{
return _activeClass;
}
@@ -10663,7 +10736,7 @@ public final class L2PcInstance extends L2Playable
if (classIndex == 0)
{
setClassTemplate(getBaseClass());
setClassTemplate(getBaseClassId());
}
else
{
@@ -14888,7 +14961,7 @@ public final class L2PcInstance extends L2Playable
public boolean isAwaken()
{
if (((getActiveClass() >= 139) && (getActiveClass() <= 181)) || (getActiveClass() >= 188))
if (((getActiveClassId() >= 139) && (getActiveClassId() <= 181)) || (getActiveClassId() >= 188))
{
return true;
}
@@ -15298,7 +15371,7 @@ public final class L2PcInstance extends L2Playable
*/
public int getVitalityPoints()
{
if (getClassId().getId() == getBaseClass())
if (getClassId().getId() == getBaseClassId())
{
return _vitalityPoints;
}
@@ -15311,7 +15384,7 @@ public final class L2PcInstance extends L2Playable
public void setVitalityPoints(int points)
{
if (getClassId().getId() == getBaseClass())
if (getClassId().getId() == getBaseClassId())
{
_vitalityPoints = points;
return;

View File

@@ -395,7 +395,7 @@ public class L2PetInstance extends L2Summon
{
if (sendMessage)
{
sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT2);
sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT);
}
return false;
@@ -443,7 +443,7 @@ public class L2PetInstance extends L2Summon
{
if (sendMessage)
{
sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT2);
sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT);
}
return false;
}

View File

@@ -218,8 +218,6 @@ public final class L2TeleporterInstance extends L2Npc
}
/**
* For characters below level 77 teleport service is free.<br>
* From 8.00 pm to 00.00 from Monday till Tuesday for all characters there's a 50% discount on teleportation services
* @param player
* @param type
* @param loc
@@ -247,7 +245,7 @@ public final class L2TeleporterInstance extends L2Npc
protected boolean shouldPayFee(L2PcInstance player, TeleportType type, TeleportLocation loc)
{
return (type != TeleportType.NORMAL) || (!Config.ALT_GAME_FREE_TELEPORT && ((player.getLevel() > 76) || player.isSubClassActive()) && ((loc.getFeeId() != 0) && (loc.getFeeCount() > 0)));
return (type != TeleportType.NORMAL) || (!Config.FREE_TELEPORTING && ((player.getLevel() > 76) || player.isSubClassActive()) && ((loc.getFeeId() != 0) && (loc.getFeeCount() > 0)));
}
protected int parseNextInt(StringTokenizer st, int defaultVal)
@@ -556,7 +554,7 @@ public final class L2TeleporterInstance extends L2Npc
}
}
if (Config.ALT_GAME_FREE_TELEPORT || player.destroyItemByItemId("Teleport " + (list.getIsForNoble() ? " nobless" : ""), list.getItemId(), price, this, true))
if (Config.FREE_TELEPORTING || player.destroyItemByItemId("Teleport " + (list.getIsForNoble() ? " nobless" : ""), list.getItemId(), price, this, true))
{
if (Config.DEBUG)
{