Code improvements.
This commit is contained in:
@@ -53,14 +53,8 @@ public final class AnswerJoinPartyRoom extends L2GameClientPacket
|
||||
}
|
||||
|
||||
final L2PcInstance partner = player.getActiveRequester();
|
||||
if (partner == null)
|
||||
{
|
||||
// Partner hasn't been found, cancel the invitation
|
||||
player.sendPacket(SystemMessageId.THAT_PLAYER_IS_NOT_ONLINE);
|
||||
player.setActiveRequester(null);
|
||||
return;
|
||||
}
|
||||
else if (L2World.getInstance().getPlayer(partner.getObjectId()) == null)
|
||||
// Partner hasn't been found, cancel the invitation
|
||||
if ((partner == null) || (L2World.getInstance().getPlayer(partner.getObjectId()) == null))
|
||||
{
|
||||
// Partner hasn't been found, cancel the invitation
|
||||
player.sendPacket(SystemMessageId.THAT_PLAYER_IS_NOT_ONLINE);
|
||||
|
||||
@@ -57,15 +57,7 @@ public final class AnswerTradeRequest extends L2GameClientPacket
|
||||
}
|
||||
|
||||
final L2PcInstance partner = player.getActiveRequester();
|
||||
if (partner == null)
|
||||
{
|
||||
// Trade partner not found, cancel trade
|
||||
player.sendPacket(new TradeDone(0));
|
||||
player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.THAT_PLAYER_IS_NOT_ONLINE));
|
||||
player.setActiveRequester(null);
|
||||
return;
|
||||
}
|
||||
else if (L2World.getInstance().getPlayer(partner.getObjectId()) == null)
|
||||
if ((partner == null) || (L2World.getInstance().getPlayer(partner.getObjectId()) == null))
|
||||
{
|
||||
// Trade partner not found, cancel trade
|
||||
player.sendPacket(new TradeDone(0));
|
||||
|
||||
@@ -87,16 +87,7 @@ public final class Attack extends L2GameClientPacket
|
||||
}
|
||||
|
||||
// avoid using expensive operations if not needed
|
||||
final L2Object target;
|
||||
if (activeChar.getTargetId() == _objectId)
|
||||
{
|
||||
target = activeChar.getTarget();
|
||||
}
|
||||
else
|
||||
{
|
||||
target = L2World.getInstance().findObject(_objectId);
|
||||
}
|
||||
|
||||
final L2Object target = activeChar.getTargetId() == _objectId ? activeChar.getTarget() : L2World.getInstance().findObject(_objectId);
|
||||
if (target == null)
|
||||
{
|
||||
return;
|
||||
@@ -110,14 +101,14 @@ public final class Attack extends L2GameClientPacket
|
||||
|
||||
// Players can't attack objects in the other instances
|
||||
// except from multiverse
|
||||
else if ((target.getInstanceId() != activeChar.getInstanceId()) && (activeChar.getInstanceId() != -1))
|
||||
if ((target.getInstanceId() != activeChar.getInstanceId()) && (activeChar.getInstanceId() != -1))
|
||||
{
|
||||
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Only GMs can directly attack invisible characters
|
||||
else if (!target.isVisibleFor(activeChar))
|
||||
if (!target.isVisibleFor(activeChar))
|
||||
{
|
||||
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
|
||||
@@ -76,16 +76,7 @@ public final class AttackRequest extends L2GameClientPacket
|
||||
}
|
||||
|
||||
// avoid using expensive operations if not needed
|
||||
final L2Object target;
|
||||
if (activeChar.getTargetId() == _objectId)
|
||||
{
|
||||
target = activeChar.getTarget();
|
||||
}
|
||||
else
|
||||
{
|
||||
target = L2World.getInstance().findObject(_objectId);
|
||||
}
|
||||
|
||||
final L2Object target = activeChar.getTargetId() == _objectId ? activeChar.getTarget() : L2World.getInstance().findObject(_objectId);
|
||||
if (target == null)
|
||||
{
|
||||
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
@@ -100,14 +91,14 @@ public final class AttackRequest extends L2GameClientPacket
|
||||
|
||||
// Players can't attack objects in the other instances
|
||||
// except from multiverse
|
||||
else if ((target.getInstanceId() != activeChar.getInstanceId()) && (activeChar.getInstanceId() != -1))
|
||||
if ((target.getInstanceId() != activeChar.getInstanceId()) && (activeChar.getInstanceId() != -1))
|
||||
{
|
||||
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Only GMs can directly attack invisible characters
|
||||
else if (!target.isVisibleFor(activeChar))
|
||||
if (!target.isVisibleFor(activeChar))
|
||||
{
|
||||
activeChar.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
|
||||
@@ -42,10 +42,7 @@ public class BrEventRankerList extends L2GameClientPacket
|
||||
protected void runImpl()
|
||||
{
|
||||
// TODO count, bestScore, myScore
|
||||
final int count = 0;
|
||||
final int bestScore = 0;
|
||||
final int myScore = 0;
|
||||
getClient().sendPacket(new ExBrLoadEventTopRankers(_eventId, _day, count, bestScore, myScore));
|
||||
getClient().sendPacket(new ExBrLoadEventTopRankers(_eventId, _day, 0, 0, 0));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -47,20 +47,13 @@ public final class CannotMoveAnymoreInVehicle extends L2GameClientPacket
|
||||
protected void runImpl()
|
||||
{
|
||||
final L2PcInstance player = getClient().getActiveChar();
|
||||
if (player == null)
|
||||
if ((player == null) || !player.isInBoat() || (player.getBoat().getObjectId() != _boatId))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (player.isInBoat())
|
||||
{
|
||||
if (player.getBoat().getObjectId() == _boatId)
|
||||
{
|
||||
player.setInVehiclePosition(new Location(_x, _y, _z));
|
||||
player.setHeading(_heading);
|
||||
final StopMoveInVehicle msg = new StopMoveInVehicle(player, _boatId);
|
||||
player.broadcastPacket(msg);
|
||||
}
|
||||
}
|
||||
player.setInVehiclePosition(new Location(_x, _y, _z));
|
||||
player.setHeading(_heading);
|
||||
player.broadcastPacket((new StopMoveInVehicle(player, _boatId)));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -167,7 +167,7 @@ public final class CharacterCreate extends L2GameClientPacket
|
||||
sendPacket(new CharCreateFail(CharCreateFail.REASON_TOO_MANY_CHARACTERS));
|
||||
return;
|
||||
}
|
||||
else if (CharNameTable.getInstance().doesCharNameExist(_name))
|
||||
if (CharNameTable.getInstance().doesCharNameExist(_name))
|
||||
{
|
||||
if (Config.DEBUG)
|
||||
{
|
||||
@@ -258,9 +258,7 @@ public final class CharacterCreate extends L2GameClientPacket
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
final PcAppearance app = new PcAppearance(_face, _hairColor, _hairStyle, _sex != 0);
|
||||
newChar = L2PcInstance.create(template, getClient().getAccountName(), _name, app);
|
||||
newChar = L2PcInstance.create(template, getClient().getAccountName(), _name, (new PcAppearance(_face, _hairColor, _hairStyle, _sex != 0)));
|
||||
}
|
||||
|
||||
// HP and MP are at maximum and CP is zero by default.
|
||||
|
||||
@@ -60,9 +60,7 @@ public final class CharacterDelete extends L2GameClientPacket
|
||||
|
||||
try
|
||||
{
|
||||
final byte answer = getClient().markToDeleteChar(_charSlot);
|
||||
|
||||
switch (answer)
|
||||
switch (getClient().markToDeleteChar(_charSlot))
|
||||
{
|
||||
default:
|
||||
case -1: // Error
|
||||
|
||||
@@ -88,107 +88,102 @@ public class CharacterSelect extends L2GameClientPacket
|
||||
|
||||
// We should always be able to acquire the lock
|
||||
// But if we can't lock then nothing should be done (i.e. repeated packet)
|
||||
if (client.getActiveCharLock().tryLock())
|
||||
if (!client.getActiveCharLock().tryLock())
|
||||
{
|
||||
try
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
// should always be null
|
||||
// but if not then this is repeated packet and nothing should be done here
|
||||
if (client.getActiveChar() == null)
|
||||
{
|
||||
// should always be null
|
||||
// but if not then this is repeated packet and nothing should be done here
|
||||
if (client.getActiveChar() == null)
|
||||
final CharSelectInfoPackage info = client.getCharSelection(_charSlot);
|
||||
if (info == null)
|
||||
{
|
||||
final CharSelectInfoPackage info = client.getCharSelection(_charSlot);
|
||||
if (info == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Banned?
|
||||
if (PunishmentManager.getInstance().hasPunishment(info.getObjectId(), PunishmentAffect.CHARACTER, PunishmentType.BAN) || PunishmentManager.getInstance().hasPunishment(client.getAccountName(), PunishmentAffect.ACCOUNT, PunishmentType.BAN) || PunishmentManager.getInstance().hasPunishment(client.getConnectionAddress().getHostAddress(), PunishmentAffect.IP, PunishmentType.BAN))
|
||||
{
|
||||
client.close(ServerClose.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Selected character is banned (compatibility with previous versions).
|
||||
if (info.getAccessLevel() < 0)
|
||||
{
|
||||
client.close(ServerClose.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((Config.L2JMOD_DUALBOX_CHECK_MAX_PLAYERS_PER_IP > 0) && !AntiFeedManager.getInstance().tryAddClient(AntiFeedManager.GAME_ID, client, Config.L2JMOD_DUALBOX_CHECK_MAX_PLAYERS_PER_IP))
|
||||
return;
|
||||
}
|
||||
|
||||
// Banned?
|
||||
if (PunishmentManager.getInstance().hasPunishment(info.getObjectId(), PunishmentAffect.CHARACTER, PunishmentType.BAN) || PunishmentManager.getInstance().hasPunishment(client.getAccountName(), PunishmentAffect.ACCOUNT, PunishmentType.BAN) || PunishmentManager.getInstance().hasPunishment(client.getConnectionAddress().getHostAddress(), PunishmentAffect.IP, PunishmentType.BAN) || (info.getAccessLevel() < 0))
|
||||
{
|
||||
client.close(ServerClose.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((Config.L2JMOD_DUALBOX_CHECK_MAX_PLAYERS_PER_IP > 0) && !AntiFeedManager.getInstance().tryAddClient(AntiFeedManager.GAME_ID, client, Config.L2JMOD_DUALBOX_CHECK_MAX_PLAYERS_PER_IP))
|
||||
{
|
||||
final NpcHtmlMessage msg = new NpcHtmlMessage();
|
||||
msg.setFile(info.getHtmlPrefix(), "html/mods/IPRestriction.htm");
|
||||
msg.replace("%max%", String.valueOf(AntiFeedManager.getInstance().getLimit(client, Config.L2JMOD_DUALBOX_CHECK_MAX_PLAYERS_PER_IP)));
|
||||
client.sendPacket(msg);
|
||||
return;
|
||||
}
|
||||
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_BALANCE_ONLINE_PLAYERS)
|
||||
{
|
||||
if (info.isGood() && (L2World.getInstance().getAllGoodPlayersCount() >= ((L2World.getInstance().getAllEvilPlayersCount() + Config.FACTION_BALANCE_PLAYER_EXCEED_LIMIT))))
|
||||
{
|
||||
final NpcHtmlMessage msg = new NpcHtmlMessage();
|
||||
msg.setFile(info.getHtmlPrefix(), "html/mods/IPRestriction.htm");
|
||||
msg.replace("%max%", String.valueOf(AntiFeedManager.getInstance().getLimit(client, Config.L2JMOD_DUALBOX_CHECK_MAX_PLAYERS_PER_IP)));
|
||||
msg.setFile(info.getHtmlPrefix(), "html/mods/Faction/ExceededOnlineLimit.htm");
|
||||
msg.replace("%more%", Config.FACTION_GOOD_TEAM_NAME);
|
||||
msg.replace("%less%", Config.FACTION_EVIL_TEAM_NAME);
|
||||
client.sendPacket(msg);
|
||||
return;
|
||||
}
|
||||
|
||||
if (Config.FACTION_SYSTEM_ENABLED && Config.FACTION_BALANCE_ONLINE_PLAYERS)
|
||||
if (info.isEvil() && (L2World.getInstance().getAllEvilPlayersCount() >= ((L2World.getInstance().getAllGoodPlayersCount() + Config.FACTION_BALANCE_PLAYER_EXCEED_LIMIT))))
|
||||
{
|
||||
if (info.isGood() && (L2World.getInstance().getAllGoodPlayersCount() >= ((L2World.getInstance().getAllEvilPlayersCount() + Config.FACTION_BALANCE_PLAYER_EXCEED_LIMIT))))
|
||||
{
|
||||
final NpcHtmlMessage msg = new NpcHtmlMessage();
|
||||
msg.setFile(info.getHtmlPrefix(), "html/mods/Faction/ExceededOnlineLimit.htm");
|
||||
msg.replace("%more%", Config.FACTION_GOOD_TEAM_NAME);
|
||||
msg.replace("%less%", Config.FACTION_EVIL_TEAM_NAME);
|
||||
client.sendPacket(msg);
|
||||
return;
|
||||
}
|
||||
if (info.isEvil() && (L2World.getInstance().getAllEvilPlayersCount() >= ((L2World.getInstance().getAllGoodPlayersCount() + Config.FACTION_BALANCE_PLAYER_EXCEED_LIMIT))))
|
||||
{
|
||||
final NpcHtmlMessage msg = new NpcHtmlMessage();
|
||||
msg.setFile(info.getHtmlPrefix(), "html/mods/Faction/ExceededOnlineLimit.htm");
|
||||
msg.replace("%more%", Config.FACTION_EVIL_TEAM_NAME);
|
||||
msg.replace("%less%", Config.FACTION_GOOD_TEAM_NAME);
|
||||
client.sendPacket(msg);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// The L2PcInstance must be created here, so that it can be attached to the L2GameClient
|
||||
if (Config.DEBUG)
|
||||
{
|
||||
_log.fine("selected slot:" + _charSlot);
|
||||
}
|
||||
|
||||
// load up character from disk
|
||||
final L2PcInstance cha = client.loadCharFromDisk(_charSlot);
|
||||
if (cha == null)
|
||||
{
|
||||
return; // handled in L2GameClient
|
||||
}
|
||||
L2World.getInstance().addPlayerToWorld(cha);
|
||||
CharNameTable.getInstance().addName(cha);
|
||||
|
||||
cha.setClient(client);
|
||||
client.setActiveChar(cha);
|
||||
cha.setOnlineStatus(true, true);
|
||||
|
||||
final TerminateReturn terminate = EventDispatcher.getInstance().notifyEvent(new OnPlayerSelect(cha, cha.getObjectId(), cha.getName(), getClient()), Containers.Players(), TerminateReturn.class);
|
||||
if ((terminate != null) && terminate.terminate())
|
||||
{
|
||||
cha.deleteMe();
|
||||
final NpcHtmlMessage msg = new NpcHtmlMessage();
|
||||
msg.setFile(info.getHtmlPrefix(), "html/mods/Faction/ExceededOnlineLimit.htm");
|
||||
msg.replace("%more%", Config.FACTION_EVIL_TEAM_NAME);
|
||||
msg.replace("%less%", Config.FACTION_GOOD_TEAM_NAME);
|
||||
client.sendPacket(msg);
|
||||
return;
|
||||
}
|
||||
|
||||
client.setState(GameClientState.IN_GAME);
|
||||
sendPacket(new CharSelected(cha, client.getSessionId().playOkID1));
|
||||
}
|
||||
|
||||
// The L2PcInstance must be created here, so that it can be attached to the L2GameClient
|
||||
if (Config.DEBUG)
|
||||
{
|
||||
_log.fine("selected slot:" + _charSlot);
|
||||
}
|
||||
|
||||
// load up character from disk
|
||||
final L2PcInstance cha = client.loadCharFromDisk(_charSlot);
|
||||
if (cha == null)
|
||||
{
|
||||
return; // handled in L2GameClient
|
||||
}
|
||||
L2World.getInstance().addPlayerToWorld(cha);
|
||||
CharNameTable.getInstance().addName(cha);
|
||||
|
||||
cha.setClient(client);
|
||||
client.setActiveChar(cha);
|
||||
cha.setOnlineStatus(true, true);
|
||||
|
||||
final TerminateReturn terminate = EventDispatcher.getInstance().notifyEvent(new OnPlayerSelect(cha, cha.getObjectId(), cha.getName(), getClient()), Containers.Players(), TerminateReturn.class);
|
||||
if ((terminate != null) && terminate.terminate())
|
||||
{
|
||||
cha.deleteMe();
|
||||
return;
|
||||
}
|
||||
|
||||
client.setState(GameClientState.IN_GAME);
|
||||
sendPacket(new CharSelected(cha, client.getSessionId().playOkID1));
|
||||
}
|
||||
finally
|
||||
{
|
||||
client.getActiveCharLock().unlock();
|
||||
}
|
||||
|
||||
final LogRecord record = new LogRecord(Level.INFO, "Logged in");
|
||||
record.setParameters(new Object[]
|
||||
{
|
||||
client
|
||||
});
|
||||
_logAccounting.log(record);
|
||||
}
|
||||
finally
|
||||
{
|
||||
client.getActiveCharLock().unlock();
|
||||
}
|
||||
|
||||
final LogRecord record = new LogRecord(Level.INFO, "Logged in");
|
||||
record.setParameters(new Object[]
|
||||
{
|
||||
client
|
||||
});
|
||||
_logAccounting.log(record);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -20,7 +20,6 @@ import com.l2jmobius.Config;
|
||||
import com.l2jmobius.gameserver.data.xml.impl.AdminData;
|
||||
import com.l2jmobius.gameserver.enums.PlayerAction;
|
||||
import com.l2jmobius.gameserver.handler.AdminCommandHandler;
|
||||
import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.events.EventDispatcher;
|
||||
import com.l2jmobius.gameserver.model.events.impl.character.player.OnPlayerDlgAnswer;
|
||||
@@ -81,14 +80,13 @@ public final class DlgAnswer extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
final String command = cmd.split(" ")[0];
|
||||
final IAdminCommandHandler ach = AdminCommandHandler.getInstance().getHandler(command);
|
||||
if (AdminData.getInstance().hasAccess(command, activeChar.getAccessLevel()))
|
||||
{
|
||||
if (Config.GMAUDIT)
|
||||
{
|
||||
GMAudit.auditGMAction(activeChar.getName() + " [" + activeChar.getObjectId() + "]", cmd, (activeChar.getTarget() != null ? activeChar.getTarget().getName() : "no-target"));
|
||||
}
|
||||
ach.useAdminCommand(cmd, activeChar);
|
||||
AdminCommandHandler.getInstance().getHandler(command).useAdminCommand(cmd, activeChar);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,11 +37,7 @@ public final class EndScenePlayer extends L2GameClientPacket
|
||||
protected void runImpl()
|
||||
{
|
||||
final L2PcInstance activeChar = getClient().getActiveChar();
|
||||
if (activeChar == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (_movieId == 0)
|
||||
if ((activeChar == null) || (_movieId == 0))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -171,12 +171,9 @@ public class EnterWorld extends L2GameClientPacket
|
||||
}
|
||||
}
|
||||
|
||||
if (Config.DEBUG)
|
||||
if (Config.DEBUG && (L2World.getInstance().findObject(activeChar.getObjectId()) != null))
|
||||
{
|
||||
if (L2World.getInstance().findObject(activeChar.getObjectId()) != null)
|
||||
{
|
||||
_log.warning("User already exists in Object ID map! User " + activeChar.getName() + " is a character clone.");
|
||||
}
|
||||
_log.warning("User already exists in Object ID map! User " + activeChar.getName() + " is a character clone.");
|
||||
}
|
||||
|
||||
// Apply special GM properties to the GM when entering
|
||||
@@ -334,12 +331,9 @@ public class EnterWorld extends L2GameClientPacket
|
||||
notifySponsorOrApprentice(activeChar);
|
||||
|
||||
final AuctionableHall clanHall = ClanHallManager.getInstance().getClanHallByOwner(clan);
|
||||
if (clanHall != null)
|
||||
if ((clanHall != null) && !clanHall.getPaid())
|
||||
{
|
||||
if (!clanHall.getPaid())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.PAYMENT_FOR_YOUR_CLAN_HALL_HAS_NOT_BEEN_MADE_PLEASE_MAKE_PAYMENT_TO_YOUR_CLAN_WAREHOUSE_BY_S1_TOMORROW);
|
||||
}
|
||||
activeChar.sendPacket(SystemMessageId.PAYMENT_FOR_YOUR_CLAN_HALL_HAS_NOT_BEEN_MADE_PLEASE_MAKE_PAYMENT_TO_YOUR_CLAN_WAREHOUSE_BY_S1_TOMORROW);
|
||||
}
|
||||
|
||||
for (Siege siege : SiegeManager.getInstance().getSieges())
|
||||
@@ -601,12 +595,9 @@ public class EnterWorld extends L2GameClientPacket
|
||||
activeChar.destroyItem("Akamanah", activeChar.getInventory().getItemByItemId(8689), null, true);
|
||||
}
|
||||
|
||||
if (Config.ALLOW_MAIL)
|
||||
if (Config.ALLOW_MAIL && MailManager.getInstance().hasUnreadPost(activeChar))
|
||||
{
|
||||
if (MailManager.getInstance().hasUnreadPost(activeChar))
|
||||
{
|
||||
sendPacket(ExNoticePostArrived.valueOf(false));
|
||||
}
|
||||
sendPacket(ExNoticePostArrived.valueOf(false));
|
||||
}
|
||||
|
||||
TvTEvent.onLogin(activeChar);
|
||||
@@ -712,16 +703,18 @@ public class EnterWorld extends L2GameClientPacket
|
||||
private void notifyClanMembers(L2PcInstance activeChar)
|
||||
{
|
||||
final L2Clan clan = activeChar.getClan();
|
||||
if (clan != null)
|
||||
if (clan == null)
|
||||
{
|
||||
clan.getClanMember(activeChar.getObjectId()).setPlayerInstance(activeChar);
|
||||
|
||||
final SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.CLAN_MEMBER_S1_HAS_LOGGED_INTO_GAME);
|
||||
msg.addString(activeChar.getName());
|
||||
clan.broadcastToOtherOnlineMembers(msg, activeChar);
|
||||
clan.broadcastToOtherOnlineMembers(new PledgeShowMemberListUpdate(activeChar), activeChar);
|
||||
clan.broadcastToOnlineMembers(new ExPledgeCount(clan));
|
||||
return;
|
||||
}
|
||||
|
||||
clan.getClanMember(activeChar.getObjectId()).setPlayerInstance(activeChar);
|
||||
|
||||
final SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.CLAN_MEMBER_S1_HAS_LOGGED_INTO_GAME);
|
||||
msg.addString(activeChar.getName());
|
||||
clan.broadcastToOtherOnlineMembers(msg, activeChar);
|
||||
clan.broadcastToOtherOnlineMembers(new PledgeShowMemberListUpdate(activeChar), activeChar);
|
||||
clan.broadcastToOnlineMembers(new ExPledgeCount(clan));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -71,9 +71,7 @@ public class GameGuardReply extends L2GameClientPacket
|
||||
final L2GameClient client = getClient();
|
||||
try
|
||||
{
|
||||
final MessageDigest md = MessageDigest.getInstance("SHA");
|
||||
final byte[] result = md.digest(_reply);
|
||||
if (Arrays.equals(result, VALID))
|
||||
if (Arrays.equals(MessageDigest.getInstance("SHA").digest(_reply), VALID))
|
||||
{
|
||||
client.setGameGuardOk(true);
|
||||
}
|
||||
|
||||
@@ -52,12 +52,7 @@ public class MoveToLocationAirShip extends L2GameClientPacket
|
||||
protected void runImpl()
|
||||
{
|
||||
final L2PcInstance activeChar = getClient().getActiveChar();
|
||||
if (activeChar == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!activeChar.isInAirShip())
|
||||
if ((activeChar == null) || !activeChar.isInAirShip())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -104,13 +104,10 @@ public class MultiSellChoose extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.isGM() && (npc != null) && !list.isNpcAllowed(-1))
|
||||
if (!player.isGM() && (npc != null) && !list.isNpcAllowed(-1) && (!player.isInsideRadius(npc, INTERACTION_DISTANCE, true, false) || (player.getInstanceId() != npc.getInstanceId())))
|
||||
{
|
||||
if (!player.isInsideRadius(npc, INTERACTION_DISTANCE, true, false) || (player.getInstanceId() != npc.getInstanceId()))
|
||||
{
|
||||
player.setMultiSell(null);
|
||||
return;
|
||||
}
|
||||
player.setMultiSell(null);
|
||||
return;
|
||||
}
|
||||
|
||||
for (Entry entry : list.getEntries())
|
||||
@@ -451,7 +448,6 @@ public class MultiSellChoose extends L2GameClientPacket
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_EARNED_S2_S1_S);
|
||||
sm.addItemName(e.getItemId());
|
||||
sm.addLong(e.getItemCount() * _amount);
|
||||
player.sendPacket(sm);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -459,15 +455,14 @@ public class MultiSellChoose extends L2GameClientPacket
|
||||
{
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.ACQUIRED_S1_S2);
|
||||
sm.addLong(e.getEnchantLevel());
|
||||
sm.addItemName(e.getItemId());
|
||||
}
|
||||
else
|
||||
{
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_EARNED_S1);
|
||||
sm.addItemName(e.getItemId());
|
||||
}
|
||||
player.sendPacket(sm);
|
||||
sm.addItemName(e.getItemId());
|
||||
}
|
||||
player.sendPacket(sm);
|
||||
}
|
||||
|
||||
if (matched)
|
||||
|
||||
@@ -136,8 +136,7 @@ public final class RequestAcquireSkill extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
final int tmpLv = (prevSkillLevel == -1) ? 0 : prevSkillLevel;
|
||||
if (tmpLv != (_level - 1))
|
||||
if (((prevSkillLevel == -1) ? 0 : prevSkillLevel) != (_level - 1))
|
||||
{
|
||||
// The previous level skill has not been learned.
|
||||
activeChar.sendPacket(SystemMessageId.THE_PREVIOUS_LEVEL_SKILL_HAS_NOT_BEEN_LEARNED);
|
||||
@@ -227,14 +226,12 @@ public final class RequestAcquireSkill extends L2GameClientPacket
|
||||
clan.broadcastToOnlineMembers(new PledgeSkillList(clan));
|
||||
|
||||
activeChar.sendPacket(new AcquireSkillDone());
|
||||
|
||||
L2VillageMasterInstance.showPledgeSkillList(activeChar);
|
||||
}
|
||||
else
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.THE_ATTEMPT_TO_ACQUIRE_THE_SKILL_HAS_FAILED_BECAUSE_OF_AN_INSUFFICIENT_CLAN_REPUTATION);
|
||||
L2VillageMasterInstance.showPledgeSkillList(activeChar);
|
||||
}
|
||||
L2VillageMasterInstance.showPledgeSkillList(activeChar);
|
||||
break;
|
||||
}
|
||||
case SUBPLEDGE:
|
||||
@@ -552,103 +549,100 @@ public final class RequestAcquireSkill extends L2GameClientPacket
|
||||
*/
|
||||
private boolean checkPlayerSkill(L2PcInstance player, L2Npc trainer, L2SkillLearn s)
|
||||
{
|
||||
if (s != null)
|
||||
if ((s != null) && (s.getSkillId() == _id) && (s.getSkillLevel() == _level))
|
||||
{
|
||||
if ((s.getSkillId() == _id) && (s.getSkillLevel() == _level))
|
||||
// Hack check.
|
||||
if (s.getGetLevel() > player.getLevel())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_MEET_THE_SKILL_LEVEL_REQUIREMENTS);
|
||||
Util.handleIllegalPlayerAction(player, "Player " + player.getName() + ", level " + player.getLevel() + " is requesting skill Id: " + _id + " level " + _level + " without having minimum required level, " + s.getGetLevel() + "!", IllegalActionPunishmentType.NONE);
|
||||
return false;
|
||||
}
|
||||
|
||||
// First it checks that the skill require SP and the player has enough SP to learn it.
|
||||
final int levelUpSp = s.getCalculatedLevelUpSp(player.getClassId(), player.getLearningClass());
|
||||
if ((levelUpSp > 0) && (levelUpSp > player.getSp()))
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_SP_TO_LEARN_THIS_SKILL);
|
||||
showSkillList(trainer, player);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!Config.DIVINE_SP_BOOK_NEEDED && (_id == CommonSkill.DIVINE_INSPIRATION.getId()))
|
||||
{
|
||||
// Hack check.
|
||||
if (s.getGetLevel() > player.getLevel())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_MEET_THE_SKILL_LEVEL_REQUIREMENTS);
|
||||
Util.handleIllegalPlayerAction(player, "Player " + player.getName() + ", level " + player.getLevel() + " is requesting skill Id: " + _id + " level " + _level + " without having minimum required level, " + s.getGetLevel() + "!", IllegalActionPunishmentType.NONE);
|
||||
return false;
|
||||
}
|
||||
|
||||
// First it checks that the skill require SP and the player has enough SP to learn it.
|
||||
final int levelUpSp = s.getCalculatedLevelUpSp(player.getClassId(), player.getLearningClass());
|
||||
if ((levelUpSp > 0) && (levelUpSp > player.getSp()))
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_SP_TO_LEARN_THIS_SKILL);
|
||||
showSkillList(trainer, player);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!Config.DIVINE_SP_BOOK_NEEDED && (_id == CommonSkill.DIVINE_INSPIRATION.getId()))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// Check for required skills.
|
||||
if (!s.getPreReqSkills().isEmpty())
|
||||
{
|
||||
for (SkillHolder skill : s.getPreReqSkills())
|
||||
{
|
||||
if (player.getSkillLevel(skill.getSkillId()) != skill.getSkillLvl())
|
||||
{
|
||||
if (skill.getSkillId() == CommonSkill.ONYX_BEAST_TRANSFORMATION.getId())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOU_MUST_LEARN_THE_ONYX_BEAST_SKILL_BEFORE_YOU_CAN_LEARN_FURTHER_SKILLS);
|
||||
}
|
||||
else
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_NECESSARY_MATERIALS_OR_PREREQUISITES_TO_LEARN_THIS_SKILL);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check for required items.
|
||||
if (!s.getRequiredItems().isEmpty())
|
||||
{
|
||||
// Then checks that the player has all the items
|
||||
long reqItemCount = 0;
|
||||
for (ItemHolder item : s.getRequiredItems())
|
||||
{
|
||||
reqItemCount = player.getInventory().getInventoryItemCount(item.getId(), -1);
|
||||
if (reqItemCount < item.getCount())
|
||||
{
|
||||
// Player doesn't have required item.
|
||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_NECESSARY_MATERIALS_OR_PREREQUISITES_TO_LEARN_THIS_SKILL);
|
||||
showSkillList(trainer, player);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// If the player has all required items, they are consumed.
|
||||
for (ItemHolder itemIdCount : s.getRequiredItems())
|
||||
{
|
||||
if (!player.destroyItemByItemId("SkillLearn", itemIdCount.getId(), itemIdCount.getCount(), trainer, true))
|
||||
{
|
||||
Util.handleIllegalPlayerAction(player, "Somehow player " + player.getName() + ", level " + player.getLevel() + " lose required item Id: " + itemIdCount.getId() + " to learn skill while learning skill Id: " + _id + " level " + _level + "!", IllegalActionPunishmentType.NONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!s.getRemoveSkills().isEmpty())
|
||||
{
|
||||
s.getRemoveSkills().forEach(skillId ->
|
||||
{
|
||||
if (player.getSkillLevel(skillId) > 0)
|
||||
{
|
||||
final Skill skillToRemove = player.getKnownSkill(skillId);
|
||||
if (skillToRemove != null)
|
||||
{
|
||||
player.removeSkill(skillToRemove, true);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// If the player has SP and all required items then consume SP.
|
||||
if (levelUpSp > 0)
|
||||
{
|
||||
player.setSp(player.getSp() - levelUpSp);
|
||||
final UserInfo ui = new UserInfo(player);
|
||||
ui.addComponentType(UserInfoType.CURRENT_HPMPCP_EXP_SP);
|
||||
player.sendPacket(ui);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Check for required skills.
|
||||
if (!s.getPreReqSkills().isEmpty())
|
||||
{
|
||||
for (SkillHolder skill : s.getPreReqSkills())
|
||||
{
|
||||
if (player.getSkillLevel(skill.getSkillId()) != skill.getSkillLvl())
|
||||
{
|
||||
if (skill.getSkillId() == CommonSkill.ONYX_BEAST_TRANSFORMATION.getId())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOU_MUST_LEARN_THE_ONYX_BEAST_SKILL_BEFORE_YOU_CAN_LEARN_FURTHER_SKILLS);
|
||||
}
|
||||
else
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_NECESSARY_MATERIALS_OR_PREREQUISITES_TO_LEARN_THIS_SKILL);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check for required items.
|
||||
if (!s.getRequiredItems().isEmpty())
|
||||
{
|
||||
// Then checks that the player has all the items
|
||||
long reqItemCount = 0;
|
||||
for (ItemHolder item : s.getRequiredItems())
|
||||
{
|
||||
reqItemCount = player.getInventory().getInventoryItemCount(item.getId(), -1);
|
||||
if (reqItemCount < item.getCount())
|
||||
{
|
||||
// Player doesn't have required item.
|
||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_NECESSARY_MATERIALS_OR_PREREQUISITES_TO_LEARN_THIS_SKILL);
|
||||
showSkillList(trainer, player);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// If the player has all required items, they are consumed.
|
||||
for (ItemHolder itemIdCount : s.getRequiredItems())
|
||||
{
|
||||
if (!player.destroyItemByItemId("SkillLearn", itemIdCount.getId(), itemIdCount.getCount(), trainer, true))
|
||||
{
|
||||
Util.handleIllegalPlayerAction(player, "Somehow player " + player.getName() + ", level " + player.getLevel() + " lose required item Id: " + itemIdCount.getId() + " to learn skill while learning skill Id: " + _id + " level " + _level + "!", IllegalActionPunishmentType.NONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!s.getRemoveSkills().isEmpty())
|
||||
{
|
||||
s.getRemoveSkills().forEach(skillId ->
|
||||
{
|
||||
if (player.getSkillLevel(skillId) > 0)
|
||||
{
|
||||
final Skill skillToRemove = player.getKnownSkill(skillId);
|
||||
if (skillToRemove != null)
|
||||
{
|
||||
player.removeSkill(skillToRemove, true);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// If the player has SP and all required items then consume SP.
|
||||
if (levelUpSp > 0)
|
||||
{
|
||||
player.setSp(player.getSp() - levelUpSp);
|
||||
final UserInfo ui = new UserInfo(player);
|
||||
ui.addComponentType(UserInfoType.CURRENT_HPMPCP_EXP_SP);
|
||||
player.sendPacket(ui);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -124,15 +124,11 @@ public final class RequestActionUse extends L2GameClientPacket
|
||||
}
|
||||
|
||||
// Don't allow to do some action if player is transformed
|
||||
if (activeChar.isTransformed())
|
||||
if (activeChar.isTransformed() && !(Arrays.binarySearch((activeChar.isTransformed() ? ExBasicActionList.ACTIONS_ON_TRANSFORM : ExBasicActionList.DEFAULT_ACTION_LIST), _actionId) >= 0))
|
||||
{
|
||||
final int[] allowedActions = activeChar.isTransformed() ? ExBasicActionList.ACTIONS_ON_TRANSFORM : ExBasicActionList.DEFAULT_ACTION_LIST;
|
||||
if (!(Arrays.binarySearch(allowedActions, _actionId) >= 0))
|
||||
{
|
||||
sendPacket(ActionFailed.STATIC_PACKET);
|
||||
_log.warning("Player " + activeChar + " used action which he does not have! Id = " + _actionId + " transform: " + activeChar.getTransformation());
|
||||
return;
|
||||
}
|
||||
sendPacket(ActionFailed.STATIC_PACKET);
|
||||
_log.warning("Player " + activeChar + " used action which he does not have! Id = " + _actionId + " transform: " + activeChar.getTransformation());
|
||||
return;
|
||||
}
|
||||
|
||||
final L2Summon pet = activeChar.getPet();
|
||||
@@ -148,12 +144,7 @@ public final class RequestActionUse extends L2GameClientPacket
|
||||
}
|
||||
else
|
||||
{
|
||||
// Sit when arrive using next action.
|
||||
// Creating next action class.
|
||||
final NextAction nextAction = new NextAction(CtrlEvent.EVT_ARRIVED, CtrlIntention.AI_INTENTION_MOVE_TO, () -> useSit(activeChar, target));
|
||||
|
||||
// Binding next action to AI.
|
||||
activeChar.getAI().setNextAction(nextAction);
|
||||
activeChar.getAI().setNextAction((new NextAction(CtrlEvent.EVT_ARRIVED, CtrlIntention.AI_INTENTION_MOVE_TO, () -> useSit(activeChar, target))));
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -184,12 +175,9 @@ public final class RequestActionUse extends L2GameClientPacket
|
||||
}
|
||||
case 16: // Attack (Pets)
|
||||
{
|
||||
if (validateSummon(pet, true))
|
||||
if (validateSummon(pet, true) && pet.canAttack(_ctrlPressed))
|
||||
{
|
||||
if (pet.canAttack(_ctrlPressed))
|
||||
{
|
||||
pet.doAttack();
|
||||
}
|
||||
pet.doAttack();
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -246,12 +234,9 @@ public final class RequestActionUse extends L2GameClientPacket
|
||||
}
|
||||
case 22: // Attack (Servitors)
|
||||
{
|
||||
if (validateSummon(servitor, false))
|
||||
if (validateSummon(servitor, false) && servitor.canAttack(_ctrlPressed))
|
||||
{
|
||||
if (servitor.canAttack(_ctrlPressed))
|
||||
{
|
||||
servitor.doAttack();
|
||||
}
|
||||
servitor.doAttack();
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -394,25 +379,19 @@ public final class RequestActionUse extends L2GameClientPacket
|
||||
}
|
||||
case 53: // Move to target (Servitors)
|
||||
{
|
||||
if (validateSummon(servitor, false))
|
||||
if (validateSummon(servitor, false) && (target != null) && (servitor != target) && !servitor.isMovementDisabled())
|
||||
{
|
||||
if ((target != null) && (servitor != target) && !servitor.isMovementDisabled())
|
||||
{
|
||||
servitor.setFollowStatus(false);
|
||||
servitor.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, target.getLocation());
|
||||
}
|
||||
servitor.setFollowStatus(false);
|
||||
servitor.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, target.getLocation());
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 54: // Move to target (Pets)
|
||||
{
|
||||
if (validateSummon(pet, true))
|
||||
if (validateSummon(pet, true) && (target != null) && (pet != target) && !pet.isMovementDisabled())
|
||||
{
|
||||
if ((target != null) && (pet != target) && !pet.isMovementDisabled())
|
||||
{
|
||||
pet.setFollowStatus(false);
|
||||
pet.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, target.getLocation());
|
||||
}
|
||||
pet.setFollowStatus(false);
|
||||
pet.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, target.getLocation());
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -435,23 +414,17 @@ public final class RequestActionUse extends L2GameClientPacket
|
||||
}
|
||||
case 67: // Steer
|
||||
{
|
||||
if (activeChar.isInAirShip())
|
||||
if (activeChar.isInAirShip() && activeChar.getAirShip().setCaptain(activeChar))
|
||||
{
|
||||
if (activeChar.getAirShip().setCaptain(activeChar))
|
||||
{
|
||||
activeChar.broadcastUserInfo();
|
||||
}
|
||||
activeChar.broadcastUserInfo();
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 68: // Cancel Control
|
||||
{
|
||||
if (activeChar.isInAirShip() && activeChar.getAirShip().isCaptain(activeChar))
|
||||
if (activeChar.isInAirShip() && activeChar.getAirShip().isCaptain(activeChar) && activeChar.getAirShip().setCaptain(null))
|
||||
{
|
||||
if (activeChar.getAirShip().setCaptain(null))
|
||||
{
|
||||
activeChar.broadcastUserInfo();
|
||||
}
|
||||
activeChar.broadcastUserInfo();
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -953,12 +926,9 @@ public final class RequestActionUse extends L2GameClientPacket
|
||||
{
|
||||
activeChar.getServitors().values().forEach(s ->
|
||||
{
|
||||
if (validateSummon(s, false))
|
||||
if (validateSummon(s, false) && s.canAttack(_ctrlPressed))
|
||||
{
|
||||
if (s.canAttack(_ctrlPressed))
|
||||
{
|
||||
s.doAttack();
|
||||
}
|
||||
s.doAttack();
|
||||
}
|
||||
});
|
||||
break;
|
||||
@@ -967,13 +937,10 @@ public final class RequestActionUse extends L2GameClientPacket
|
||||
{
|
||||
activeChar.getServitors().values().forEach(s ->
|
||||
{
|
||||
if (validateSummon(s, false))
|
||||
if (validateSummon(s, false) && (target != null) && (s != target) && !s.isMovementDisabled())
|
||||
{
|
||||
if ((target != null) && (s != target) && !s.isMovementDisabled())
|
||||
{
|
||||
s.setFollowStatus(false);
|
||||
s.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, target.getLocation());
|
||||
}
|
||||
s.setFollowStatus(false);
|
||||
s.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, target.getLocation());
|
||||
}
|
||||
});
|
||||
break;
|
||||
@@ -1427,12 +1394,7 @@ public final class RequestActionUse extends L2GameClientPacket
|
||||
if (pet)
|
||||
{
|
||||
final L2Summon summon = activeChar.getPet();
|
||||
if (!validateSummon(summon, pet))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!canControl(summon))
|
||||
if (!validateSummon(summon, pet) || !canControl(summon))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -1487,13 +1449,10 @@ public final class RequestActionUse extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
if (summon instanceof L2BabyPetInstance)
|
||||
if ((summon instanceof L2BabyPetInstance) && !((L2BabyPetInstance) summon).isInSupportMode())
|
||||
{
|
||||
if (!((L2BabyPetInstance) summon).isInSupportMode())
|
||||
{
|
||||
sendPacket(SystemMessageId.A_PET_ON_AUXILIARY_MODE_CANNOT_USE_SKILLS);
|
||||
return;
|
||||
}
|
||||
sendPacket(SystemMessageId.A_PET_ON_AUXILIARY_MODE_CANNOT_USE_SKILLS);
|
||||
return;
|
||||
}
|
||||
final Skill skill = summon.getTemplate().getParameters().getSkillHolder(skillName).getSkill();
|
||||
|
||||
@@ -1511,22 +1470,16 @@ public final class RequestActionUse extends L2GameClientPacket
|
||||
|
||||
private boolean canControl(L2Summon summon)
|
||||
{
|
||||
if (summon instanceof L2BabyPetInstance)
|
||||
if ((summon instanceof L2BabyPetInstance) && !((L2BabyPetInstance) summon).isInSupportMode())
|
||||
{
|
||||
if (!((L2BabyPetInstance) summon).isInSupportMode())
|
||||
{
|
||||
sendPacket(SystemMessageId.A_PET_ON_AUXILIARY_MODE_CANNOT_USE_SKILLS);
|
||||
return false;
|
||||
}
|
||||
sendPacket(SystemMessageId.A_PET_ON_AUXILIARY_MODE_CANNOT_USE_SKILLS);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (summon.isPet())
|
||||
if (summon.isPet() && ((summon.getLevel() - getActiveChar().getLevel()) > 20))
|
||||
{
|
||||
if ((summon.getLevel() - getActiveChar().getLevel()) > 20)
|
||||
{
|
||||
sendPacket(SystemMessageId.YOUR_PET_IS_TOO_HIGH_LEVEL_TO_CONTROL);
|
||||
return false;
|
||||
}
|
||||
sendPacket(SystemMessageId.YOUR_PET_IS_TOO_HIGH_LEVEL_TO_CONTROL);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -87,14 +87,12 @@ public final class RequestAnswerJoinParty extends L2GameClientPacket
|
||||
requestor.sendPacket(sm);
|
||||
return;
|
||||
}
|
||||
player.joinParty(requestor.getParty());
|
||||
}
|
||||
else
|
||||
{
|
||||
requestor.setParty(new L2Party(requestor, requestor.getPartyDistributionType()));
|
||||
player.joinParty(requestor.getParty());
|
||||
}
|
||||
|
||||
player.joinParty(requestor.getParty());
|
||||
if (requestor.isInPartyMatchRoom() && player.isInPartyMatchRoom())
|
||||
{
|
||||
final PartyMatchRoomList list = PartyMatchRoomList.getInstance();
|
||||
|
||||
@@ -46,153 +46,150 @@ public final class RequestAutoSoulShot extends L2GameClientPacket
|
||||
protected void runImpl()
|
||||
{
|
||||
final L2PcInstance activeChar = getClient().getActiveChar();
|
||||
if (activeChar == null)
|
||||
if ((activeChar == null) || (activeChar.getPrivateStoreType() != PrivateStoreType.NONE) || (activeChar.getActiveRequester() != null) || activeChar.isDead())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ((activeChar.getPrivateStoreType() == PrivateStoreType.NONE) && (activeChar.getActiveRequester() == null) && !activeChar.isDead())
|
||||
final L2ItemInstance item = activeChar.getInventory().getItemByItemId(_itemId);
|
||||
if (item == null)
|
||||
{
|
||||
final L2ItemInstance item = activeChar.getInventory().getItemByItemId(_itemId);
|
||||
if (item == null)
|
||||
return;
|
||||
}
|
||||
|
||||
if (_type == 1)
|
||||
{
|
||||
if (!activeChar.getInventory().canManipulateWithItemId(item.getId()))
|
||||
{
|
||||
activeChar.sendMessage("Cannot use this item.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (_type == 1)
|
||||
if (isSummonShot(item.getItem()))
|
||||
{
|
||||
if (!activeChar.getInventory().canManipulateWithItemId(item.getId()))
|
||||
if (activeChar.hasSummon())
|
||||
{
|
||||
activeChar.sendMessage("Cannot use this item.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (isSummonShot(item.getItem()))
|
||||
{
|
||||
if (activeChar.hasSummon())
|
||||
final boolean isSoulshot = item.getEtcItem().getDefaultAction() == ActionType.SUMMON_SOULSHOT;
|
||||
final boolean isSpiritshot = item.getEtcItem().getDefaultAction() == ActionType.SUMMON_SPIRITSHOT;
|
||||
if (isSoulshot)
|
||||
{
|
||||
final boolean isSoulshot = item.getEtcItem().getDefaultAction() == ActionType.SUMMON_SOULSHOT;
|
||||
final boolean isSpiritshot = item.getEtcItem().getDefaultAction() == ActionType.SUMMON_SPIRITSHOT;
|
||||
if (isSoulshot)
|
||||
{
|
||||
int soulshotCount = 0;
|
||||
final L2Summon pet = activeChar.getPet();
|
||||
if (pet != null)
|
||||
{
|
||||
soulshotCount += pet.getSoulShotsPerHit();
|
||||
}
|
||||
for (L2Summon servitor : activeChar.getServitors().values())
|
||||
{
|
||||
soulshotCount += servitor.getSoulShotsPerHit();
|
||||
}
|
||||
if (soulshotCount > item.getCount())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_DON_T_HAVE_ENOUGH_SOULSHOTS_NEEDED_FOR_A_PET_SERVITOR);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else if (isSpiritshot)
|
||||
{
|
||||
int spiritshotCount = 0;
|
||||
final L2Summon pet = activeChar.getPet();
|
||||
if (pet != null)
|
||||
{
|
||||
spiritshotCount += pet.getSpiritShotsPerHit();
|
||||
}
|
||||
for (L2Summon servitor : activeChar.getServitors().values())
|
||||
{
|
||||
spiritshotCount += servitor.getSpiritShotsPerHit();
|
||||
}
|
||||
if (spiritshotCount > item.getCount())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_DON_T_HAVE_ENOUGH_SOULSHOTS_NEEDED_FOR_A_PET_SERVITOR);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Activate shots
|
||||
activeChar.addAutoSoulShot(_itemId);
|
||||
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 1, isSoulshot ? 2 : 3));
|
||||
|
||||
// Send message
|
||||
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THE_AUTOMATIC_USE_OF_S1_HAS_BEEN_ACTIVATED);
|
||||
sm.addItemName(item);
|
||||
activeChar.sendPacket(sm);
|
||||
|
||||
// Recharge summon's shots
|
||||
int soulshotCount = 0;
|
||||
final L2Summon pet = activeChar.getPet();
|
||||
if (pet != null)
|
||||
{
|
||||
pet.rechargeShots(isSoulshot, isSpiritshot);
|
||||
soulshotCount += pet.getSoulShotsPerHit();
|
||||
}
|
||||
activeChar.getServitors().values().forEach(s ->
|
||||
for (L2Summon servitor : activeChar.getServitors().values())
|
||||
{
|
||||
s.rechargeShots(isSoulshot, isSpiritshot);
|
||||
});
|
||||
soulshotCount += servitor.getSoulShotsPerHit();
|
||||
}
|
||||
if (soulshotCount > item.getCount())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_DON_T_HAVE_ENOUGH_SOULSHOTS_NEEDED_FOR_A_PET_SERVITOR);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
else if (isSpiritshot)
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_SERVITOR_OR_PET_AND_THEREFORE_CANNOT_USE_THE_AUTOMATIC_USE_FUNCTION);
|
||||
}
|
||||
}
|
||||
else if (isPlayerShot(item.getItem()))
|
||||
{
|
||||
final boolean isSoulshot = (item.getEtcItem().getDefaultAction() == ActionType.SOULSHOT) || (item.getEtcItem().getDefaultAction() == ActionType.FISHINGSHOT);
|
||||
final boolean isSpiritshot = item.getEtcItem().getDefaultAction() == ActionType.SPIRITSHOT;
|
||||
if ((activeChar.getActiveWeaponItem() == activeChar.getFistsWeaponItem()) || (item.getItem().getCrystalType() != activeChar.getActiveWeaponItem().getCrystalTypePlus()))
|
||||
{
|
||||
activeChar.sendPacket(isSoulshot ? SystemMessageId.THE_SOULSHOT_YOU_ARE_ATTEMPTING_TO_USE_DOES_NOT_MATCH_THE_GRADE_OF_YOUR_EQUIPPED_WEAPON : SystemMessageId.YOUR_SPIRITSHOT_DOES_NOT_MATCH_THE_WEAPON_S_GRADE);
|
||||
return;
|
||||
int spiritshotCount = 0;
|
||||
final L2Summon pet = activeChar.getPet();
|
||||
if (pet != null)
|
||||
{
|
||||
spiritshotCount += pet.getSpiritShotsPerHit();
|
||||
}
|
||||
for (L2Summon servitor : activeChar.getServitors().values())
|
||||
{
|
||||
spiritshotCount += servitor.getSpiritShotsPerHit();
|
||||
}
|
||||
if (spiritshotCount > item.getCount())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_DON_T_HAVE_ENOUGH_SOULSHOTS_NEEDED_FOR_A_PET_SERVITOR);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Activate shots
|
||||
activeChar.addAutoSoulShot(_itemId);
|
||||
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 1, isSoulshot ? 0 : 1));
|
||||
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 1, isSoulshot ? 2 : 3));
|
||||
|
||||
// Send message
|
||||
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THE_AUTOMATIC_USE_OF_S1_HAS_BEEN_ACTIVATED);
|
||||
sm.addItemName(item);
|
||||
activeChar.sendPacket(sm);
|
||||
|
||||
// Recharge player's shots
|
||||
activeChar.rechargeShots(isSoulshot, isSpiritshot);
|
||||
// Recharge summon's shots
|
||||
final L2Summon pet = activeChar.getPet();
|
||||
if (pet != null)
|
||||
{
|
||||
pet.rechargeShots(isSoulshot, isSpiritshot);
|
||||
}
|
||||
activeChar.getServitors().values().forEach(s ->
|
||||
{
|
||||
s.rechargeShots(isSoulshot, isSpiritshot);
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_A_SERVITOR_OR_PET_AND_THEREFORE_CANNOT_USE_THE_AUTOMATIC_USE_FUNCTION);
|
||||
}
|
||||
}
|
||||
else if (_type == 0)
|
||||
else if (isPlayerShot(item.getItem()))
|
||||
{
|
||||
// Cancel auto shots
|
||||
activeChar.removeAutoSoulShot(_itemId);
|
||||
switch (item.getEtcItem().getDefaultAction())
|
||||
final boolean isSoulshot = (item.getEtcItem().getDefaultAction() == ActionType.SOULSHOT) || (item.getEtcItem().getDefaultAction() == ActionType.FISHINGSHOT);
|
||||
final boolean isSpiritshot = item.getEtcItem().getDefaultAction() == ActionType.SPIRITSHOT;
|
||||
if ((activeChar.getActiveWeaponItem() == activeChar.getFistsWeaponItem()) || (item.getItem().getCrystalType() != activeChar.getActiveWeaponItem().getCrystalTypePlus()))
|
||||
{
|
||||
case SOULSHOT:
|
||||
case FISHINGSHOT:
|
||||
{
|
||||
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 0, 0));
|
||||
break;
|
||||
}
|
||||
case SPIRITSHOT:
|
||||
{
|
||||
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 0, 1));
|
||||
break;
|
||||
}
|
||||
case SUMMON_SOULSHOT:
|
||||
{
|
||||
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 0, 2));
|
||||
break;
|
||||
}
|
||||
case SUMMON_SPIRITSHOT:
|
||||
{
|
||||
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 0, 3));
|
||||
break;
|
||||
}
|
||||
activeChar.sendPacket(isSoulshot ? SystemMessageId.THE_SOULSHOT_YOU_ARE_ATTEMPTING_TO_USE_DOES_NOT_MATCH_THE_GRADE_OF_YOUR_EQUIPPED_WEAPON : SystemMessageId.YOUR_SPIRITSHOT_DOES_NOT_MATCH_THE_WEAPON_S_GRADE);
|
||||
return;
|
||||
}
|
||||
|
||||
// Activate shots
|
||||
activeChar.addAutoSoulShot(_itemId);
|
||||
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 1, isSoulshot ? 0 : 1));
|
||||
|
||||
// Send message
|
||||
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THE_AUTOMATIC_USE_OF_S1_HAS_BEEN_DEACTIVATED);
|
||||
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THE_AUTOMATIC_USE_OF_S1_HAS_BEEN_ACTIVATED);
|
||||
sm.addItemName(item);
|
||||
activeChar.sendPacket(sm);
|
||||
|
||||
// Recharge player's shots
|
||||
activeChar.rechargeShots(isSoulshot, isSpiritshot);
|
||||
}
|
||||
}
|
||||
else if (_type == 0)
|
||||
{
|
||||
// Cancel auto shots
|
||||
activeChar.removeAutoSoulShot(_itemId);
|
||||
switch (item.getEtcItem().getDefaultAction())
|
||||
{
|
||||
case SOULSHOT:
|
||||
case FISHINGSHOT:
|
||||
{
|
||||
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 0, 0));
|
||||
break;
|
||||
}
|
||||
case SPIRITSHOT:
|
||||
{
|
||||
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 0, 1));
|
||||
break;
|
||||
}
|
||||
case SUMMON_SOULSHOT:
|
||||
{
|
||||
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 0, 2));
|
||||
break;
|
||||
}
|
||||
case SUMMON_SPIRITSHOT:
|
||||
{
|
||||
activeChar.sendPacket(new ExAutoSoulShot(_itemId, 0, 3));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Send message
|
||||
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THE_AUTOMATIC_USE_OF_S1_HAS_BEEN_DEACTIVATED);
|
||||
sm.addItemName(item);
|
||||
activeChar.sendPacket(sm);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -190,14 +190,11 @@ public final class RequestBuyItem extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
if (product.hasLimitedStock())
|
||||
// trying to buy more then available
|
||||
if (product.hasLimitedStock() && (i.getCount() > product.getCount()))
|
||||
{
|
||||
// trying to buy more then available
|
||||
if (i.getCount() > product.getCount())
|
||||
{
|
||||
sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((MAX_ADENA / i.getCount()) < price)
|
||||
|
||||
@@ -80,19 +80,13 @@ public class RequestChangeAttributeItem extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
if (!item.isWeapon())
|
||||
if (!item.isWeapon() || (_newAttributeID == -1))
|
||||
{
|
||||
player.removeRequest(request.getClass());
|
||||
player.sendPacket(new ExChangeAttributeItemList(player, _attributeOID));
|
||||
return;
|
||||
}
|
||||
|
||||
if (_newAttributeID == -1)
|
||||
{
|
||||
player.removeRequest(request.getClass());
|
||||
player.sendPacket(new ExChangeAttributeItemList(player, _attributeOID));
|
||||
return;
|
||||
}
|
||||
final L2ItemInstance attribute = player.getInventory().getItemByObjectId(_attributeOID);
|
||||
player.getInventory().destroyItem("ChangingAttribute", _attributeOID, 1, player, null);
|
||||
|
||||
|
||||
@@ -81,5 +81,4 @@ public class RequestConfirmRefinerItem extends AbstractRefinePacket
|
||||
{
|
||||
return _C__D0_27_REQUESTCONFIRMREFINERITEM;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -247,8 +247,7 @@ public final class RequestCrystallizeItem extends L2GameClientPacket
|
||||
|
||||
for (ItemChanceHolder holder : items)
|
||||
{
|
||||
final double rand = Rnd.nextDouble() * 100;
|
||||
if (rand < holder.getChance())
|
||||
if ((Rnd.nextDouble() * 100) < holder.getChance())
|
||||
{
|
||||
// add crystals
|
||||
final L2ItemInstance createdItem = activeChar.getInventory().addItem("Crystalize", holder.getId(), holder.getCount(), activeChar, activeChar);
|
||||
|
||||
@@ -95,22 +95,17 @@ public final class RequestDestroyItem extends L2GameClientPacket
|
||||
}
|
||||
|
||||
// Cannot discard item that the skill is consuming
|
||||
if (activeChar.isCastingNow())
|
||||
if (activeChar.isCastingNow() && (activeChar.getCurrentSkill() != null) && (activeChar.getCurrentSkill().getSkill().getItemConsumeId() == itemToRemove.getId()))
|
||||
{
|
||||
if ((activeChar.getCurrentSkill() != null) && (activeChar.getCurrentSkill().getSkill().getItemConsumeId() == itemToRemove.getId()))
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DESTROYED);
|
||||
return;
|
||||
}
|
||||
activeChar.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DESTROYED);
|
||||
return;
|
||||
}
|
||||
|
||||
// Cannot discard item that the skill is consuming
|
||||
if (activeChar.isCastingSimultaneouslyNow())
|
||||
if (activeChar.isCastingSimultaneouslyNow() && (activeChar.getLastSimultaneousSkillCast() != null) && (activeChar.getLastSimultaneousSkillCast().getItemConsumeId() == itemToRemove.getId()))
|
||||
{
|
||||
if ((activeChar.getLastSimultaneousSkillCast() != null) && (activeChar.getLastSimultaneousSkillCast().getItemConsumeId() == itemToRemove.getId()))
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DESTROYED);
|
||||
return;
|
||||
}
|
||||
activeChar.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DESTROYED);
|
||||
return;
|
||||
}
|
||||
|
||||
final int itemId = itemToRemove.getId();
|
||||
|
||||
@@ -63,5 +63,4 @@ public class RequestDismissPartyRoom extends L2GameClientPacket
|
||||
{
|
||||
return _C__D0_0A_REQUESTDISMISSPARTYROOM;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -136,23 +136,17 @@ public final class RequestDropItem extends L2GameClientPacket
|
||||
}
|
||||
|
||||
// Cannot discard item that the skill is consuming
|
||||
if (activeChar.isCastingNow())
|
||||
if (activeChar.isCastingNow() && (activeChar.getCurrentSkill() != null) && (activeChar.getCurrentSkill().getSkill().getItemConsumeId() == item.getId()))
|
||||
{
|
||||
if ((activeChar.getCurrentSkill() != null) && (activeChar.getCurrentSkill().getSkill().getItemConsumeId() == item.getId()))
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DESTROYED);
|
||||
return;
|
||||
}
|
||||
activeChar.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DESTROYED);
|
||||
return;
|
||||
}
|
||||
|
||||
// Cannot discard item that the skill is consuming
|
||||
if (activeChar.isCastingSimultaneouslyNow())
|
||||
if (activeChar.isCastingSimultaneouslyNow() && (activeChar.getLastSimultaneousSkillCast() != null) && (activeChar.getLastSimultaneousSkillCast().getItemConsumeId() == item.getId()))
|
||||
{
|
||||
if ((activeChar.getLastSimultaneousSkillCast() != null) && (activeChar.getLastSimultaneousSkillCast().getItemConsumeId() == item.getId()))
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DESTROYED);
|
||||
return;
|
||||
}
|
||||
activeChar.sendPacket(SystemMessageId.THIS_ITEM_CANNOT_BE_DESTROYED);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((L2Item.TYPE2_QUEST == item.getItem().getType2()) && !activeChar.canOverrideCond(PcCondOverride.DROP_ALL_ITEMS))
|
||||
@@ -198,8 +192,7 @@ public final class RequestDropItem extends L2GameClientPacket
|
||||
activeChar.sendPacket(iu);
|
||||
activeChar.broadcastUserInfo();
|
||||
|
||||
final ItemList il = new ItemList(activeChar, true);
|
||||
activeChar.sendPacket(il);
|
||||
activeChar.sendPacket((new ItemList(activeChar, true)));
|
||||
}
|
||||
|
||||
final L2ItemInstance dropedItem = activeChar.dropItem("Drop", _objectId, _count, _x, _y, _z, null, false, false);
|
||||
|
||||
@@ -47,7 +47,7 @@ public final class RequestDuelStart extends L2GameClientPacket
|
||||
{
|
||||
final L2PcInstance activeChar = getClient().getActiveChar();
|
||||
final L2PcInstance targetChar = L2World.getInstance().getPlayer(_player);
|
||||
final boolean isPartyDuel = _partyDuel == 1 ? true : false;
|
||||
final boolean isPartyDuel = _partyDuel == 1;
|
||||
if ((activeChar == null) || (targetChar == null))
|
||||
{
|
||||
return;
|
||||
@@ -73,11 +73,7 @@ public final class RequestDuelStart extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
// Check if duel is possible
|
||||
if (!DuelManager.canDuel(activeChar, activeChar, isPartyDuel))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (!DuelManager.canDuel(activeChar, targetChar, isPartyDuel))
|
||||
if (!DuelManager.canDuel(activeChar, activeChar, isPartyDuel) || !DuelManager.canDuel(activeChar, targetChar, isPartyDuel))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -149,16 +149,13 @@ public final class RequestEnchantItem extends L2GameClientPacket
|
||||
}
|
||||
|
||||
// attempting to destroy support if exist
|
||||
if (support != null)
|
||||
if ((support != null) && (activeChar.getInventory().destroyItem("Enchant", support.getObjectId(), 1, activeChar, item) == null))
|
||||
{
|
||||
if (activeChar.getInventory().destroyItem("Enchant", support.getObjectId(), 1, activeChar, item) == null)
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT);
|
||||
Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " tried to enchant with a support item he doesn't have", Config.DEFAULT_PUNISH);
|
||||
activeChar.removeRequest(request.getClass());
|
||||
activeChar.sendPacket(new EnchantResult(EnchantResult.ERROR, 0, 0));
|
||||
return;
|
||||
}
|
||||
activeChar.sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT);
|
||||
Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " tried to enchant with a support item he doesn't have", Config.DEFAULT_PUNISH);
|
||||
activeChar.removeRequest(request.getClass());
|
||||
activeChar.sendPacket(new EnchantResult(EnchantResult.ERROR, 0, 0));
|
||||
return;
|
||||
}
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
|
||||
@@ -40,40 +40,42 @@ public final class RequestExAcceptJoinMPCC extends L2GameClientPacket
|
||||
protected void runImpl()
|
||||
{
|
||||
final L2PcInstance player = getClient().getActiveChar();
|
||||
if (player != null)
|
||||
if (player == null)
|
||||
{
|
||||
final L2PcInstance requestor = player.getActiveRequester();
|
||||
SystemMessage sm;
|
||||
if (requestor == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (_response == 1)
|
||||
{
|
||||
boolean newCc = false;
|
||||
if (!requestor.getParty().isInCommandChannel())
|
||||
{
|
||||
new L2CommandChannel(requestor); // Create new CC
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.THE_COMMAND_CHANNEL_HAS_BEEN_FORMED);
|
||||
requestor.sendPacket(sm);
|
||||
newCc = true;
|
||||
}
|
||||
requestor.getParty().getCommandChannel().addParty(player.getParty());
|
||||
if (!newCc)
|
||||
{
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_JOINED_THE_COMMAND_CHANNEL);
|
||||
player.sendPacket(sm);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
requestor.sendMessage("The player declined to join your Command Channel.");
|
||||
}
|
||||
|
||||
player.setActiveRequester(null);
|
||||
requestor.onTransactionResponse();
|
||||
return;
|
||||
}
|
||||
|
||||
final L2PcInstance requestor = player.getActiveRequester();
|
||||
SystemMessage sm;
|
||||
if (requestor == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (_response == 1)
|
||||
{
|
||||
boolean newCc = false;
|
||||
if (!requestor.getParty().isInCommandChannel())
|
||||
{
|
||||
new L2CommandChannel(requestor); // Create new CC
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.THE_COMMAND_CHANNEL_HAS_BEEN_FORMED);
|
||||
requestor.sendPacket(sm);
|
||||
newCc = true;
|
||||
}
|
||||
requestor.getParty().getCommandChannel().addParty(player.getParty());
|
||||
if (!newCc)
|
||||
{
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_JOINED_THE_COMMAND_CHANNEL);
|
||||
player.sendPacket(sm);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
requestor.sendMessage("The player declined to join your Command Channel.");
|
||||
}
|
||||
|
||||
player.setActiveRequester(null);
|
||||
requestor.onTransactionResponse();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -38,12 +38,7 @@ public class RequestExAddContactToContactList extends L2GameClientPacket
|
||||
@Override
|
||||
protected void runImpl()
|
||||
{
|
||||
if (!Config.ALLOW_MAIL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (_name == null)
|
||||
if (!Config.ALLOW_MAIL || (_name == null))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -54,8 +49,7 @@ public class RequestExAddContactToContactList extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
final boolean charAdded = activeChar.getContactList().add(_name);
|
||||
activeChar.sendPacket(new ExConfirmAddingContact(_name, charAdded));
|
||||
activeChar.sendPacket(new ExConfirmAddingContact(_name, activeChar.getContactList().add(_name)));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -49,86 +49,83 @@ public final class RequestExAskJoinMPCC extends L2GameClientPacket
|
||||
}
|
||||
|
||||
final L2PcInstance player = L2World.getInstance().getPlayer(_name);
|
||||
if (player == null)
|
||||
if ((player == null) || (activeChar.isInParty() && player.isInParty() && activeChar.getParty().equals(player.getParty())))
|
||||
{
|
||||
return;
|
||||
}
|
||||
// invite yourself? ;)
|
||||
if (activeChar.isInParty() && player.isInParty() && activeChar.getParty().equals(player.getParty()))
|
||||
|
||||
if (!activeChar.isInParty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
SystemMessage sm;
|
||||
// activeChar is in a Party?
|
||||
if (activeChar.isInParty())
|
||||
final L2Party activeParty = activeChar.getParty();
|
||||
// activeChar is PartyLeader? && activeChars Party is already in a CommandChannel?
|
||||
if (activeParty.getLeader().equals(activeChar))
|
||||
{
|
||||
final L2Party activeParty = activeChar.getParty();
|
||||
// activeChar is PartyLeader? && activeChars Party is already in a CommandChannel?
|
||||
if (activeParty.getLeader().equals(activeChar))
|
||||
// if activeChars Party is in CC, is activeChar CCLeader?
|
||||
if (activeParty.isInCommandChannel() && activeParty.getCommandChannel().getLeader().equals(activeChar))
|
||||
{
|
||||
// if activeChars Party is in CC, is activeChar CCLeader?
|
||||
if (activeParty.isInCommandChannel() && activeParty.getCommandChannel().getLeader().equals(activeChar))
|
||||
// in CC and the CCLeader
|
||||
// target in a party?
|
||||
if (player.isInParty())
|
||||
{
|
||||
// in CC and the CCLeader
|
||||
// target in a party?
|
||||
if (player.isInParty())
|
||||
// targets party already in a CChannel?
|
||||
if (player.getParty().isInCommandChannel())
|
||||
{
|
||||
// targets party already in a CChannel?
|
||||
if (player.getParty().isInCommandChannel())
|
||||
{
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_S_PARTY_IS_ALREADY_A_MEMBER_OF_THE_COMMAND_CHANNEL);
|
||||
sm.addString(player.getName());
|
||||
activeChar.sendPacket(sm);
|
||||
}
|
||||
else
|
||||
{
|
||||
// ready to open a new CC
|
||||
// send request to targets Party's PartyLeader
|
||||
askJoinMPCC(activeChar, player);
|
||||
}
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_S_PARTY_IS_ALREADY_A_MEMBER_OF_THE_COMMAND_CHANNEL);
|
||||
sm.addString(player.getName());
|
||||
activeChar.sendPacket(sm);
|
||||
}
|
||||
else
|
||||
{
|
||||
activeChar.sendMessage(player.getName() + " doesn't have party and cannot be invited to Command Channel.");
|
||||
// ready to open a new CC
|
||||
// send request to targets Party's PartyLeader
|
||||
askJoinMPCC(activeChar, player);
|
||||
}
|
||||
}
|
||||
else if (activeParty.isInCommandChannel() && !activeParty.getCommandChannel().getLeader().equals(activeChar))
|
||||
{
|
||||
// in CC, but not the CCLeader
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_AUTHORITY_TO_INVITE_SOMEONE_TO_THE_COMMAND_CHANNEL);
|
||||
activeChar.sendPacket(sm);
|
||||
}
|
||||
else
|
||||
{
|
||||
// target in a party?
|
||||
if (player.isInParty())
|
||||
{
|
||||
// targets party already in a CChannel?
|
||||
if (player.getParty().isInCommandChannel())
|
||||
{
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_S_PARTY_IS_ALREADY_A_MEMBER_OF_THE_COMMAND_CHANNEL);
|
||||
sm.addString(player.getName());
|
||||
activeChar.sendPacket(sm);
|
||||
}
|
||||
else
|
||||
{
|
||||
// ready to open a new CC
|
||||
// send request to targets Party's PartyLeader
|
||||
askJoinMPCC(activeChar, player);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
activeChar.sendMessage(player.getName() + " doesn't have party and cannot be invited to Command Channel.");
|
||||
}
|
||||
activeChar.sendMessage(player.getName() + " doesn't have party and cannot be invited to Command Channel.");
|
||||
}
|
||||
}
|
||||
else if (activeParty.isInCommandChannel() && !activeParty.getCommandChannel().getLeader().equals(activeChar))
|
||||
{
|
||||
// in CC, but not the CCLeader
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_AUTHORITY_TO_INVITE_SOMEONE_TO_THE_COMMAND_CHANNEL);
|
||||
activeChar.sendPacket(sm);
|
||||
}
|
||||
else
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_AUTHORITY_TO_INVITE_SOMEONE_TO_THE_COMMAND_CHANNEL);
|
||||
// target in a party?
|
||||
if (player.isInParty())
|
||||
{
|
||||
// targets party already in a CChannel?
|
||||
if (player.getParty().isInCommandChannel())
|
||||
{
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_S_PARTY_IS_ALREADY_A_MEMBER_OF_THE_COMMAND_CHANNEL);
|
||||
sm.addString(player.getName());
|
||||
activeChar.sendPacket(sm);
|
||||
}
|
||||
else
|
||||
{
|
||||
// ready to open a new CC
|
||||
// send request to targets Party's PartyLeader
|
||||
askJoinMPCC(activeChar, player);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
activeChar.sendMessage(player.getName() + " doesn't have party and cannot be invited to Command Channel.");
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_AUTHORITY_TO_INVITE_SOMEONE_TO_THE_COMMAND_CHANNEL);
|
||||
}
|
||||
}
|
||||
|
||||
private void askJoinMPCC(L2PcInstance requestor, L2PcInstance target)
|
||||
|
||||
@@ -37,12 +37,7 @@ public class RequestExDeleteContactFromContactList extends L2GameClientPacket
|
||||
@Override
|
||||
protected void runImpl()
|
||||
{
|
||||
if (!Config.ALLOW_MAIL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (_name == null)
|
||||
if (!Config.ALLOW_MAIL || (_name == null))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -258,12 +258,7 @@ public class RequestExEnchantItemAttribute extends L2GameClientPacket
|
||||
player.sendPacket(SystemMessageId.YOU_HAVE_FAILED_TO_ADD_ELEMENTAL_POWER);
|
||||
}
|
||||
|
||||
int result = 0;
|
||||
if (successfulAttempts == 0)
|
||||
{
|
||||
// Failed
|
||||
result = 2;
|
||||
}
|
||||
final int result = successfulAttempts == 0 ? 2 : 0;
|
||||
|
||||
// Stone must be removed
|
||||
if (stone.getCount() == 0)
|
||||
|
||||
@@ -364,8 +364,7 @@ public final class RequestExEnchantSkill extends L2GameClientPacket
|
||||
}
|
||||
else
|
||||
{
|
||||
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_SP_TO_ENCHANT_THAT_SKILL);
|
||||
player.sendPacket(sm);
|
||||
player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_SP_TO_ENCHANT_THAT_SKILL));
|
||||
}
|
||||
}
|
||||
else if (_type == 2) // untrain
|
||||
@@ -414,13 +413,10 @@ public final class RequestExEnchantSkill extends L2GameClientPacket
|
||||
if (player.getSp() >= requiredSp)
|
||||
{
|
||||
final L2ItemInstance spb = player.getInventory().getItemByItemId(reqItemId);
|
||||
if (Config.ES_SP_BOOK_NEEDED)
|
||||
if (Config.ES_SP_BOOK_NEEDED && (spb == null))
|
||||
{
|
||||
if (spb == null)
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ALL_OF_THE_ITEMS_NEEDED_TO_ENCHANT_SKILL_ROUTE_CHANGE);
|
||||
return;
|
||||
}
|
||||
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ALL_OF_THE_ITEMS_NEEDED_TO_ENCHANT_SKILL_ROUTE_CHANGE);
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.getInventory().getAdena() < requireditems)
|
||||
@@ -429,8 +425,7 @@ public final class RequestExEnchantSkill extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
boolean check;
|
||||
check = player.getStat().removeExpAndSp(0, requiredSp, false);
|
||||
boolean check = player.getStat().removeExpAndSp(0, requiredSp, false);
|
||||
if (Config.ES_SP_BOOK_NEEDED)
|
||||
{
|
||||
check &= player.destroyItem("Consume", spb.getObjectId(), 1, player, true);
|
||||
@@ -503,8 +498,7 @@ public final class RequestExEnchantSkill extends L2GameClientPacket
|
||||
}
|
||||
else
|
||||
{
|
||||
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_SP_TO_ENCHANT_THAT_SKILL);
|
||||
player.sendPacket(sm);
|
||||
player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_SP_TO_ENCHANT_THAT_SKILL));
|
||||
}
|
||||
}
|
||||
else if (_type == 4) // 100% enchant
|
||||
|
||||
@@ -55,13 +55,7 @@ public class RequestExRemoveItemAttribute extends L2GameClientPacket
|
||||
}
|
||||
|
||||
final L2ItemInstance targetItem = activeChar.getInventory().getItemByObjectId(_objectId);
|
||||
|
||||
if (targetItem == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ((targetItem.getElementals() == null) || (targetItem.getElemental(_element) == null))
|
||||
if ((targetItem == null) || (targetItem.getElementals() == null) || (targetItem.getElemental(_element) == null))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -41,22 +41,23 @@ public class RequestExRqItemLink extends L2GameClientPacket
|
||||
protected void runImpl()
|
||||
{
|
||||
final L2GameClient client = getClient();
|
||||
if (client != null)
|
||||
if (client == null)
|
||||
{
|
||||
final L2Object object = L2World.getInstance().findObject(_objectId);
|
||||
if (object instanceof L2ItemInstance)
|
||||
return;
|
||||
}
|
||||
|
||||
final L2Object object = L2World.getInstance().findObject(_objectId);
|
||||
if (object instanceof L2ItemInstance)
|
||||
{
|
||||
if (((L2ItemInstance) object).isPublished())
|
||||
{
|
||||
final L2ItemInstance item = (L2ItemInstance) object;
|
||||
if (item.isPublished())
|
||||
client.sendPacket(new ExRpItemLink((L2ItemInstance) object));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Config.DEBUG)
|
||||
{
|
||||
client.sendPacket(new ExRpItemLink(item));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Config.DEBUG)
|
||||
{
|
||||
_log.info(getClient() + " requested item link for item which wasnt published! ID:" + _objectId);
|
||||
}
|
||||
_log.info(getClient() + " requested item link for item which wasnt published! ID:" + _objectId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,13 +104,7 @@ public final class RequestGiveItemToPet extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
if (!pet.getInventory().validateCapacity(item))
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOUR_PET_CANNOT_CARRY_ANY_MORE_ITEMS);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!pet.getInventory().validateWeight(item, _amount))
|
||||
if (!pet.getInventory().validateCapacity(item) || !pet.getInventory().validateWeight(item, _amount))
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOUR_PET_CANNOT_CARRY_ANY_MORE_ITEMS);
|
||||
return;
|
||||
|
||||
@@ -43,12 +43,7 @@ public final class RequestHennaEquip extends L2GameClientPacket
|
||||
protected void runImpl()
|
||||
{
|
||||
final L2PcInstance activeChar = getActiveChar();
|
||||
if (activeChar == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!getClient().getFloodProtectors().getTransaction().tryPerformAction("HennaEquip"))
|
||||
if ((activeChar == null) || !getClient().getFloodProtectors().getTransaction().tryPerformAction("HennaEquip"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -41,12 +41,7 @@ public final class RequestInfoItemAuction extends L2GameClientPacket
|
||||
protected final void runImpl()
|
||||
{
|
||||
final L2PcInstance activeChar = super.getClient().getActiveChar();
|
||||
if (activeChar == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!getClient().getFloodProtectors().getItemAuction().tryPerformAction("RequestInfoItemAuction"))
|
||||
if ((activeChar == null) || !getClient().getFloodProtectors().getItemAuction().tryPerformAction("RequestInfoItemAuction"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -37,8 +37,7 @@ public final class RequestItemList extends L2GameClientPacket
|
||||
{
|
||||
if ((getClient() != null) && (getClient().getActiveChar() != null) && !getClient().getActiveChar().isInventoryDisabled())
|
||||
{
|
||||
final ItemList il = new ItemList(getClient().getActiveChar(), true);
|
||||
sendPacket(il);
|
||||
sendPacket((new ItemList(getClient().getActiveChar(), true)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -64,11 +64,7 @@ public final class RequestJoinAlly extends L2GameClientPacket
|
||||
|
||||
final L2PcInstance target = ob;
|
||||
final L2Clan clan = activeChar.getClan();
|
||||
if (!clan.checkAllyJoinCondition(activeChar, target))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (!activeChar.getRequest().setRequest(target, this))
|
||||
if (!clan.checkAllyJoinCondition(activeChar, target) || !activeChar.getRequest().setRequest(target, this))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -124,13 +124,10 @@ public final class RequestJoinParty extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
if (target.isInOlympiadMode() || requestor.isInOlympiadMode())
|
||||
if ((target.isInOlympiadMode() || requestor.isInOlympiadMode()) && ((target.isInOlympiadMode() != requestor.isInOlympiadMode()) || (target.getOlympiadGameId() != requestor.getOlympiadGameId()) || (target.getOlympiadSide() != requestor.getOlympiadSide())))
|
||||
{
|
||||
if ((target.isInOlympiadMode() != requestor.isInOlympiadMode()) || (target.getOlympiadGameId() != requestor.getOlympiadGameId()) || (target.getOlympiadSide() != requestor.getOlympiadSide()))
|
||||
{
|
||||
requestor.sendPacket(SystemMessageId.A_USER_CURRENTLY_PARTICIPATING_IN_THE_OLYMPIAD_CANNOT_SEND_PARTY_AND_FRIEND_INVITATIONS);
|
||||
return;
|
||||
}
|
||||
requestor.sendPacket(SystemMessageId.A_USER_CURRENTLY_PARTICIPATING_IN_THE_OLYMPIAD_CANNOT_SEND_PARTY_AND_FRIEND_INVITATIONS);
|
||||
return;
|
||||
}
|
||||
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_BEEN_INVITED_TO_THE_PARTY);
|
||||
|
||||
@@ -62,12 +62,7 @@ public final class RequestJoinPledge extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
if (!clan.checkClanJoinCondition(activeChar, target, _pledgeType))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!activeChar.getRequest().setRequest(target, this))
|
||||
if (!clan.checkClanJoinCondition(activeChar, target, _pledgeType) || !activeChar.getRequest().setRequest(target, this))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -94,23 +94,25 @@ public final class RequestJoinSiege extends L2GameClientPacket
|
||||
}
|
||||
|
||||
final SiegableHall hall = CHSiegeManager.getInstance().getSiegableHall(_castleId);
|
||||
if (hall != null)
|
||||
if (hall == null)
|
||||
{
|
||||
if (_isJoining == 1)
|
||||
{
|
||||
if (System.currentTimeMillis() < clan.getDissolvingExpiryTime())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOUR_CLAN_MAY_NOT_REGISTER_TO_PARTICIPATE_IN_A_SIEGE_WHILE_UNDER_A_GRACE_PERIOD_OF_THE_CLAN_S_DISSOLUTION);
|
||||
return;
|
||||
}
|
||||
CHSiegeManager.getInstance().registerClan(clan, hall, activeChar);
|
||||
}
|
||||
else
|
||||
{
|
||||
CHSiegeManager.getInstance().unRegisterClan(clan, hall);
|
||||
}
|
||||
activeChar.sendPacket(new SiegeInfo(hall));
|
||||
return;
|
||||
}
|
||||
|
||||
if (_isJoining == 1)
|
||||
{
|
||||
if (System.currentTimeMillis() < clan.getDissolvingExpiryTime())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOUR_CLAN_MAY_NOT_REGISTER_TO_PARTICIPATE_IN_A_SIEGE_WHILE_UNDER_A_GRACE_PERIOD_OF_THE_CLAN_S_DISSOLUTION);
|
||||
return;
|
||||
}
|
||||
CHSiegeManager.getInstance().registerClan(clan, hall, activeChar);
|
||||
}
|
||||
else
|
||||
{
|
||||
CHSiegeManager.getInstance().unRegisterClan(clan, hall);
|
||||
}
|
||||
activeChar.sendPacket(new SiegeInfo(hall));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -57,5 +57,4 @@ public class RequestListPartyMatchingWaitingRoom extends L2GameClientPacket
|
||||
{
|
||||
return _C__D0_31_REQUESTLISTPARTYMATCHINGWAITINGROOM;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -99,8 +99,7 @@ public final class RequestOustPledgeMember extends L2GameClientPacket
|
||||
|
||||
if (member.isOnline())
|
||||
{
|
||||
final L2PcInstance player = member.getPlayerInstance();
|
||||
player.sendPacket(SystemMessageId.YOU_HAVE_RECENTLY_BEEN_DISMISSED_FROM_A_CLAN_YOU_ARE_NOT_ALLOWED_TO_JOIN_ANOTHER_CLAN_FOR_24_HOURS);
|
||||
member.getPlayerInstance().sendPacket(SystemMessageId.YOU_HAVE_RECENTLY_BEEN_DISMISSED_FROM_A_CLAN_YOU_ARE_NOT_ALLOWED_TO_JOIN_ANOTHER_CLAN_FOR_24_HOURS);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
package com.l2jmobius.gameserver.network.clientpackets;
|
||||
|
||||
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.PackageSendableList;
|
||||
|
||||
/**
|
||||
@@ -37,8 +36,7 @@ public class RequestPackageSendableItemList extends L2GameClientPacket
|
||||
@Override
|
||||
public void runImpl()
|
||||
{
|
||||
final L2ItemInstance[] items = getClient().getActiveChar().getInventory().getAvailableItems(true, true, true);
|
||||
sendPacket(new PackageSendableList(items, _objectID));
|
||||
sendPacket(new PackageSendableList(getClient().getActiveChar().getInventory().getAvailableItems(true, true, true), _objectID));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -89,9 +89,7 @@ public final class RequestPartyMatchConfig extends L2GameClientPacket
|
||||
PartyMatchWaitingList.getInstance().addPlayer(_activeChar);
|
||||
|
||||
// Send Room list
|
||||
final ListPartyWating matchList = new ListPartyWating(_activeChar, _auto, _loc, _lvl);
|
||||
|
||||
_activeChar.sendPacket(matchList);
|
||||
_activeChar.sendPacket((new ListPartyWating(_activeChar, _auto, _loc, _lvl)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -99,18 +99,12 @@ public class RequestPartyMatchList extends L2GameClientPacket
|
||||
{
|
||||
for (L2PcInstance ptmember : _activeChar.getParty().getMembers())
|
||||
{
|
||||
if (ptmember == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (ptmember == _activeChar)
|
||||
if ((ptmember == null) || (ptmember == _activeChar))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
ptmember.setPartyRoom(_maxid);
|
||||
// ptmember.setPartyMatching(1);
|
||||
|
||||
_room.addMember(ptmember);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,8 +48,7 @@ public final class RequestPetGetItem extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
final int castleId = MercTicketManager.getInstance().getTicketCastleId(item.getId());
|
||||
if (castleId > 0)
|
||||
if (MercTicketManager.getInstance().getTicketCastleId(item.getId()) > 0)
|
||||
{
|
||||
sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
|
||||
@@ -78,13 +78,9 @@ public final class RequestPetUseItem extends L2GameClientPacket
|
||||
// If the item has reuse time and it has not passed.
|
||||
// Message from reuse delay must come from item.
|
||||
final int reuseDelay = item.getReuseDelay();
|
||||
if (reuseDelay > 0)
|
||||
if ((reuseDelay > 0) && (pet.getItemRemainingReuseTime(item.getObjectId()) > 0))
|
||||
{
|
||||
final long reuse = pet.getItemRemainingReuseTime(item.getObjectId());
|
||||
if (reuse > 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (!item.isEquipped() && !item.getItem().checkCondition(pet, pet, true))
|
||||
|
||||
@@ -79,8 +79,7 @@ public final class RequestPetitionCancel extends L2GameClientPacket
|
||||
activeChar.sendPacket(sm);
|
||||
|
||||
// Notify all GMs that the player's pending petition has been cancelled.
|
||||
final String msgContent = activeChar.getName() + " has canceled a pending petition.";
|
||||
AdminData.getInstance().broadcastToGMs(new CreatureSay(activeChar.getObjectId(), ChatType.HERO_VOICE, "Petition System", msgContent));
|
||||
AdminData.getInstance().broadcastToGMs(new CreatureSay(activeChar.getObjectId(), ChatType.HERO_VOICE, "Petition System", (activeChar.getName() + " has canceled a pending petition.")));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -71,5 +71,4 @@ public class RequestPledgeDraftListSearch extends L2GameClientPacket
|
||||
{
|
||||
return _C__D0_DC_REQUESTPLEDGEDRAFTLISTSEARCH;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -45,13 +45,15 @@ public final class RequestPledgeMemberList extends L2GameClientPacket
|
||||
}
|
||||
|
||||
final L2Clan clan = activeChar.getClan();
|
||||
if (clan != null)
|
||||
if (clan == null)
|
||||
{
|
||||
final PledgeShowMemberListAll pm = new PledgeShowMemberListAll(clan);
|
||||
activeChar.sendPacket(pm);
|
||||
activeChar.sendPacket(new PledgeSkillList(clan));
|
||||
activeChar.broadcastUserInfo();
|
||||
return;
|
||||
}
|
||||
|
||||
final PledgeShowMemberListAll pm = new PledgeShowMemberListAll(clan);
|
||||
activeChar.sendPacket(pm);
|
||||
activeChar.sendPacket(new PledgeSkillList(clan));
|
||||
activeChar.broadcastUserInfo();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -64,9 +64,7 @@ public class RequestPledgeWaitingApply extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
final PledgeApplicantInfo info = new PledgeApplicantInfo(activeChar.getObjectId(), activeChar.getName(), activeChar.getLevel(), _karma, _clanId, _message);
|
||||
|
||||
if (ClanEntryManager.getInstance().addPlayerApplicationToClan(_clanId, info))
|
||||
if (ClanEntryManager.getInstance().addPlayerApplicationToClan(_clanId, (new PledgeApplicantInfo(activeChar.getObjectId(), activeChar.getName(), activeChar.getLevel(), _karma, _clanId, _message))))
|
||||
{
|
||||
activeChar.sendPacket(new ExPledgeRecruitApplyInfo(ClanEntryStatus.WAITING));
|
||||
|
||||
@@ -90,5 +88,4 @@ public class RequestPledgeWaitingApply extends L2GameClientPacket
|
||||
{
|
||||
return _C__D0_D7_REQUESTPLEDGEWAITINGAPPLY;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -52,5 +52,4 @@ public class RequestPledgeWaitingList extends L2GameClientPacket
|
||||
{
|
||||
return _C__D0_D9_REQUESTPLEDGEDWAITINGLIST;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -40,19 +40,12 @@ public final class RequestPledgeWarList extends L2GameClientPacket
|
||||
@Override
|
||||
protected void runImpl()
|
||||
{
|
||||
// _log.info("C5: RequestPledgeWarList d:"+_unk1);
|
||||
// _log.info("C5: RequestPledgeWarList d:"+_tab);
|
||||
final L2PcInstance activeChar = getClient().getActiveChar();
|
||||
if (activeChar == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (activeChar.getClan() == null)
|
||||
if ((activeChar == null) || (activeChar.getClan() == null))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// do we need powers to do that??
|
||||
activeChar.sendPacket(new PledgeReceiveWarList(activeChar.getClan(), _tab));
|
||||
}
|
||||
|
||||
|
||||
@@ -202,15 +202,9 @@ public final class RequestPreviewItem extends L2GameClientPacket
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (template instanceof L2Armor)
|
||||
else if ((template instanceof L2Armor) && (activeChar.getRace().ordinal() == 5) && ((template.getItemType() == ArmorType.HEAVY) || (template.getItemType() == ArmorType.MAGIC)))
|
||||
{
|
||||
if (activeChar.getRace().ordinal() == 5)
|
||||
{
|
||||
if ((template.getItemType() == ArmorType.HEAVY) || (template.getItemType() == ArmorType.MAGIC))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if (itemList.containsKey(slot))
|
||||
|
||||
@@ -116,13 +116,10 @@ public final class RequestPrivateStoreBuy extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
if (Config.FACTION_SYSTEM_ENABLED)
|
||||
if (Config.FACTION_SYSTEM_ENABLED && ((storePlayer.isEvil() && player.isGood()) || (storePlayer.isGood() && player.isEvil())))
|
||||
{
|
||||
if ((storePlayer.isEvil() && player.isGood()) || (storePlayer.isGood() && player.isEvil()))
|
||||
{
|
||||
player.sendMessage("You cant buy from different faction members.");
|
||||
return;
|
||||
}
|
||||
player.sendMessage("You cant buy from different faction members.");
|
||||
return;
|
||||
}
|
||||
|
||||
final TradeList storeList = storePlayer.getSellList();
|
||||
@@ -138,14 +135,11 @@ public final class RequestPrivateStoreBuy extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
if (storePlayer.getPrivateStoreType() == PrivateStoreType.PACKAGE_SELL)
|
||||
if ((storePlayer.getPrivateStoreType() == PrivateStoreType.PACKAGE_SELL) && (storeList.getItemCount() > _items.size()))
|
||||
{
|
||||
if (storeList.getItemCount() > _items.size())
|
||||
{
|
||||
final String msgErr = "[RequestPrivateStoreBuy] player " + getClient().getActiveChar().getName() + " tried to buy less items than sold by package-sell, ban this player for bot usage!";
|
||||
Util.handleIllegalPlayerAction(getClient().getActiveChar(), msgErr, Config.DEFAULT_PUNISH);
|
||||
return;
|
||||
}
|
||||
final String msgErr = "[RequestPrivateStoreBuy] player " + getClient().getActiveChar().getName() + " tried to buy less items than sold by package-sell, ban this player for bot usage!";
|
||||
Util.handleIllegalPlayerAction(getClient().getActiveChar(), msgErr, Config.DEFAULT_PUNISH);
|
||||
return;
|
||||
}
|
||||
|
||||
final int result = storeList.privateStoreBuy(player, _items);
|
||||
|
||||
@@ -48,7 +48,6 @@ public final class RequestPrivateStoreManageSell extends L2GameClientPacket
|
||||
if (player.isAlikeDead() || player.isInOlympiadMode())
|
||||
{
|
||||
sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -139,13 +139,10 @@ public final class RequestPrivateStoreSell extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
if (Config.FACTION_SYSTEM_ENABLED)
|
||||
if (Config.FACTION_SYSTEM_ENABLED && ((storePlayer.isEvil() && player.isGood()) || (storePlayer.isGood() && player.isEvil())))
|
||||
{
|
||||
if ((storePlayer.isEvil() && player.isGood()) || (storePlayer.isGood() && player.isEvil()))
|
||||
{
|
||||
player.sendMessage("You cant sell on different faction members.");
|
||||
return;
|
||||
}
|
||||
player.sendMessage("You cant sell on different faction members.");
|
||||
return;
|
||||
}
|
||||
|
||||
// Update offline trade record, if realtime saving is enabled
|
||||
|
||||
@@ -136,7 +136,7 @@ public class RequestProcureCropList extends L2GameClientPacket
|
||||
player.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_THE_WEIGHT_LIMIT);
|
||||
return;
|
||||
}
|
||||
else if (!player.getInventory().validateCapacity(slots))
|
||||
if (!player.getInventory().validateCapacity(slots))
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOUR_INVENTORY_IS_FULL);
|
||||
return;
|
||||
|
||||
@@ -35,8 +35,7 @@ public final class RequestQuestList extends L2GameClientPacket
|
||||
@Override
|
||||
protected void runImpl()
|
||||
{
|
||||
final QuestList ql = new QuestList();
|
||||
sendPacket(ql);
|
||||
sendPacket(new QuestList());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -40,12 +40,7 @@ public final class RequestRecipeBookDestroy extends L2GameClientPacket
|
||||
protected void runImpl()
|
||||
{
|
||||
final L2PcInstance activeChar = getClient().getActiveChar();
|
||||
if (activeChar == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!getClient().getFloodProtectors().getTransaction().tryPerformAction("RecipeDestroy"))
|
||||
if ((activeChar == null) || !getClient().getFloodProtectors().getTransaction().tryPerformAction("RecipeDestroy"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -40,8 +40,7 @@ public final class RequestRecipeItemMakeInfo extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
final RecipeItemMakeInfo response = new RecipeItemMakeInfo(_id, player);
|
||||
sendPacket(response);
|
||||
sendPacket((new RecipeItemMakeInfo(_id, player)));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -39,12 +39,7 @@ public final class RequestRecipeItemMakeSelf extends L2GameClientPacket
|
||||
protected void runImpl()
|
||||
{
|
||||
final L2PcInstance activeChar = getClient().getActiveChar();
|
||||
if (activeChar == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!getClient().getFloodProtectors().getManufacture().tryPerformAction("RecipeMakeSelf"))
|
||||
if ((activeChar == null) || !getClient().getFloodProtectors().getManufacture().tryPerformAction("RecipeMakeSelf"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -57,12 +57,7 @@ public final class RequestRecipeShopMakeItem extends L2GameClientPacket
|
||||
}
|
||||
|
||||
final L2PcInstance manufacturer = L2World.getInstance().getPlayer(_id);
|
||||
if (manufacturer == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ((manufacturer.getInstanceId() != activeChar.getInstanceId()) && (activeChar.getInstanceId() != -1))
|
||||
if ((manufacturer == null) || ((manufacturer.getInstanceId() != activeChar.getInstanceId()) && (activeChar.getInstanceId() != -1)))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ public final class RequestRecipeShopManagePrev extends L2GameClientPacket
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (player.isAlikeDead() || (player.getTarget() == null) || !player.getTarget().isPlayer())
|
||||
if (player.isAlikeDead() || (player.getTarget() == null) || !player.getTarget().isPlayer())
|
||||
{
|
||||
sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
|
||||
@@ -16,8 +16,6 @@
|
||||
*/
|
||||
package com.l2jmobius.gameserver.network.clientpackets;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import com.l2jmobius.gameserver.model.L2Object;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Character;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
@@ -45,8 +43,7 @@ public class RequestRecordInfo extends L2GameClientPacket
|
||||
|
||||
activeChar.sendPacket(new UserInfo(activeChar));
|
||||
|
||||
final Collection<L2Object> objs = activeChar.getKnownList().getKnownObjects().values();
|
||||
for (L2Object object : objs)
|
||||
for (L2Object object : activeChar.getKnownList().getKnownObjects().values())
|
||||
{
|
||||
if (object.getPoly().isMorphed() && object.getPoly().getPolyType().equals("item"))
|
||||
{
|
||||
@@ -57,18 +54,9 @@ public class RequestRecordInfo extends L2GameClientPacket
|
||||
if (!object.isVisibleFor(activeChar))
|
||||
{
|
||||
object.sendInfo(activeChar);
|
||||
|
||||
if (object instanceof L2Character)
|
||||
if ((object instanceof L2Character) && (((L2Character) object).getAI() != null))
|
||||
{
|
||||
// Update the state of the L2Character object client
|
||||
// side by sending Server->Client packet
|
||||
// MoveToPawn/CharMoveToLocation and AutoAttackStart to
|
||||
// the L2PcInstance
|
||||
final L2Character obj = (L2Character) object;
|
||||
if (obj.getAI() != null)
|
||||
{
|
||||
obj.getAI().describeStateToPlayer(activeChar);
|
||||
}
|
||||
((L2Character) object).getAI().describeStateToPlayer(activeChar);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,14 +77,7 @@ public final class RequestRefundItem extends L2GameClientPacket
|
||||
player.sendMessage("You are using refund too fast.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (_items == null)
|
||||
{
|
||||
sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.hasRefund())
|
||||
if ((_items == null) || !player.hasRefund())
|
||||
{
|
||||
sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
@@ -197,8 +190,7 @@ public final class RequestRefundItem extends L2GameClientPacket
|
||||
|
||||
for (int i = 0; i < _items.length; i++)
|
||||
{
|
||||
final L2ItemInstance item = player.getRefund().transferItem("Refund", objectIds[i], Long.MAX_VALUE, player.getInventory(), player, player.getLastFolkNPC());
|
||||
if (item == null)
|
||||
if (player.getRefund().transferItem("Refund", objectIds[i], Long.MAX_VALUE, player.getInventory(), player, player.getLastFolkNPC()) == null)
|
||||
{
|
||||
_log.warning("Error refunding object for char " + player.getName() + " (newitem == null)");
|
||||
continue;
|
||||
|
||||
@@ -107,24 +107,18 @@ public class RequestRegistBeauty extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
if (requiredAdena > 0)
|
||||
if ((requiredAdena > 0) && !player.reduceAdena(getClass().getSimpleName(), requiredAdena, null, true))
|
||||
{
|
||||
if (!player.reduceAdena(getClass().getSimpleName(), requiredAdena, null, true))
|
||||
{
|
||||
player.sendPacket(new ExResponseBeautyRegistReset(player, ExResponseBeautyRegistReset.CHANGE, ExResponseBeautyRegistReset.FAILURE));
|
||||
player.sendPacket(new ExResponseBeautyList(player, ExResponseBeautyList.SHOW_FACESHAPE));
|
||||
return;
|
||||
}
|
||||
player.sendPacket(new ExResponseBeautyRegistReset(player, ExResponseBeautyRegistReset.CHANGE, ExResponseBeautyRegistReset.FAILURE));
|
||||
player.sendPacket(new ExResponseBeautyList(player, ExResponseBeautyList.SHOW_FACESHAPE));
|
||||
return;
|
||||
}
|
||||
|
||||
if (requiredBeautyShopTicket > 0)
|
||||
if ((requiredBeautyShopTicket > 0) && !player.reduceBeautyTickets(getClass().getSimpleName(), requiredBeautyShopTicket, null, true))
|
||||
{
|
||||
if (!player.reduceBeautyTickets(getClass().getSimpleName(), requiredBeautyShopTicket, null, true))
|
||||
{
|
||||
player.sendPacket(new ExResponseBeautyRegistReset(player, ExResponseBeautyRegistReset.CHANGE, ExResponseBeautyRegistReset.FAILURE));
|
||||
player.sendPacket(new ExResponseBeautyList(player, ExResponseBeautyList.SHOW_FACESHAPE));
|
||||
return;
|
||||
}
|
||||
player.sendPacket(new ExResponseBeautyRegistReset(player, ExResponseBeautyRegistReset.CHANGE, ExResponseBeautyRegistReset.FAILURE));
|
||||
player.sendPacket(new ExResponseBeautyList(player, ExResponseBeautyList.SHOW_FACESHAPE));
|
||||
return;
|
||||
}
|
||||
|
||||
if (_hairId > 0)
|
||||
|
||||
@@ -68,13 +68,7 @@ public final class RequestRestartPoint extends L2GameClientPacket
|
||||
protected void runImpl()
|
||||
{
|
||||
final L2PcInstance activeChar = getClient().getActiveChar();
|
||||
|
||||
if (activeChar == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!activeChar.canRevive())
|
||||
if ((activeChar == null) || !activeChar.canRevive())
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -84,25 +78,22 @@ public final class RequestRestartPoint extends L2GameClientPacket
|
||||
activeChar.stopFakeDeath(true);
|
||||
return;
|
||||
}
|
||||
else if (!activeChar.isDead())
|
||||
if (!activeChar.isDead())
|
||||
{
|
||||
_log.warning("Living player [" + activeChar.getName() + "] called RestartPointPacket! Ban this player!");
|
||||
return;
|
||||
}
|
||||
|
||||
final Castle castle = CastleManager.getInstance().getCastle(activeChar.getX(), activeChar.getY(), activeChar.getZ());
|
||||
if ((castle != null) && castle.getSiege().isInProgress())
|
||||
if ((castle != null) && castle.getSiege().isInProgress() && (activeChar.getClan() != null) && castle.getSiege().checkIsAttacker(activeChar.getClan()))
|
||||
{
|
||||
if ((activeChar.getClan() != null) && castle.getSiege().checkIsAttacker(activeChar.getClan()))
|
||||
// Schedule respawn delay for attacker
|
||||
ThreadPoolManager.getInstance().scheduleGeneral(new DeathTask(activeChar), castle.getSiege().getAttackerRespawnDelay());
|
||||
if (castle.getSiege().getAttackerRespawnDelay() > 0)
|
||||
{
|
||||
// Schedule respawn delay for attacker
|
||||
ThreadPoolManager.getInstance().scheduleGeneral(new DeathTask(activeChar), castle.getSiege().getAttackerRespawnDelay());
|
||||
if (castle.getSiege().getAttackerRespawnDelay() > 0)
|
||||
{
|
||||
activeChar.sendMessage("You will be re-spawned in " + (castle.getSiege().getAttackerRespawnDelay() / 1000) + " seconds");
|
||||
}
|
||||
return;
|
||||
activeChar.sendMessage("You will be re-spawned in " + (castle.getSiege().getAttackerRespawnDelay() / 1000) + " seconds");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
portPlayer(activeChar);
|
||||
|
||||
@@ -40,14 +40,11 @@ public final class RequestSaveInventoryOrder extends L2GameClientPacket
|
||||
@Override
|
||||
protected void readImpl()
|
||||
{
|
||||
int sz = readD();
|
||||
sz = Math.min(sz, LIMIT);
|
||||
final int sz = Math.min(readD(), LIMIT);
|
||||
_order = new ArrayList<>(sz);
|
||||
for (int i = 0; i < sz; i++)
|
||||
{
|
||||
final int objectId = readD();
|
||||
final int order = readD();
|
||||
_order.add(new InventoryOrder(objectId, order));
|
||||
_order.add(new InventoryOrder(readD(), readD()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,16 +52,18 @@ public final class RequestSaveInventoryOrder extends L2GameClientPacket
|
||||
protected void runImpl()
|
||||
{
|
||||
final L2PcInstance player = getClient().getActiveChar();
|
||||
if (player != null)
|
||||
if (player == null)
|
||||
{
|
||||
final Inventory inventory = player.getInventory();
|
||||
for (InventoryOrder order : _order)
|
||||
return;
|
||||
}
|
||||
|
||||
final Inventory inventory = player.getInventory();
|
||||
for (InventoryOrder order : _order)
|
||||
{
|
||||
final L2ItemInstance item = inventory.getItemByObjectId(order.objectID);
|
||||
if ((item != null) && (item.getItemLocation() == ItemLocation.INVENTORY))
|
||||
{
|
||||
final L2ItemInstance item = inventory.getItemByObjectId(order.objectID);
|
||||
if ((item != null) && (item.getItemLocation() == ItemLocation.INVENTORY))
|
||||
{
|
||||
item.setItemLocation(ItemLocation.INVENTORY, order.order);
|
||||
}
|
||||
item.setItemLocation(ItemLocation.INVENTORY, order.order);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,12 +64,7 @@ public class RequestSaveKeyMapping extends L2GameClientPacket
|
||||
final int cmdSize = readD();
|
||||
for (int j = 0; j < cmdSize; j++)
|
||||
{
|
||||
final int cmd = readD();
|
||||
final int key = readD();
|
||||
final int tgKey1 = readD();
|
||||
final int tgKey2 = readD();
|
||||
final int show = readD();
|
||||
UIData.addKey(_keyMap, i, new ActionKey(i, cmd, key, tgKey1, tgKey2, show));
|
||||
UIData.addKey(_keyMap, i, new ActionKey(i, readD(), readD(), readD(), readD(), readD()));
|
||||
}
|
||||
}
|
||||
readD();
|
||||
|
||||
@@ -141,13 +141,10 @@ public final class RequestSellItem extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
if (merchant != null)
|
||||
if ((merchant != null) && !buyList.isNpcAllowed(merchant.getId()))
|
||||
{
|
||||
if (!buyList.isNpcAllowed(merchant.getId()))
|
||||
{
|
||||
sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
long totalPrice = 0;
|
||||
|
||||
@@ -74,7 +74,7 @@ public final class RequestSendPost extends L2GameClientPacket
|
||||
protected void readImpl()
|
||||
{
|
||||
_receiver = readS();
|
||||
_isCod = readD() == 0 ? false : true;
|
||||
_isCod = readD() != 0;
|
||||
_subject = readS();
|
||||
_text = readS();
|
||||
|
||||
|
||||
@@ -41,12 +41,7 @@ public final class RequestShortCutDel extends L2GameClientPacket
|
||||
protected void runImpl()
|
||||
{
|
||||
final L2PcInstance activeChar = getClient().getActiveChar();
|
||||
if (activeChar == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ((_page > 10) || (_page < 0))
|
||||
if ((activeChar == null) || (_page > 10) || (_page < 0))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -89,21 +89,12 @@ public class RequestShowResetShopList extends L2GameClientPacket
|
||||
requiredAdena += face.getResetAdena();
|
||||
}
|
||||
|
||||
if ((player.getAdena() < requiredAdena))
|
||||
if ((player.getAdena() < requiredAdena) || ((requiredAdena > 0) && !player.reduceAdena(getClass().getSimpleName(), requiredAdena, null, true)))
|
||||
{
|
||||
player.sendPacket(new ExResponseBeautyRegistReset(player, ExResponseBeautyRegistReset.RESTORE, ExResponseBeautyRegistReset.FAILURE));
|
||||
return;
|
||||
}
|
||||
|
||||
if (requiredAdena > 0)
|
||||
{
|
||||
if (!player.reduceAdena(getClass().getSimpleName(), requiredAdena, null, true))
|
||||
{
|
||||
player.sendPacket(new ExResponseBeautyRegistReset(player, ExResponseBeautyRegistReset.RESTORE, ExResponseBeautyRegistReset.FAILURE));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
player.getVariables().remove("visualHairId");
|
||||
player.getVariables().remove("visualHairColorId");
|
||||
player.getVariables().remove("visualFaceId");
|
||||
|
||||
@@ -45,16 +45,14 @@ public final class RequestSiegeAttackerList extends L2GameClientPacket
|
||||
final Castle castle = CastleManager.getInstance().getCastleById(_castleId);
|
||||
if (castle != null)
|
||||
{
|
||||
final SiegeAttackerList sal = new SiegeAttackerList(castle);
|
||||
sendPacket(sal);
|
||||
sendPacket(new SiegeAttackerList(castle));
|
||||
}
|
||||
else
|
||||
{
|
||||
final SiegableHall hall = CHSiegeManager.getInstance().getSiegableHall(_castleId);
|
||||
if (hall != null)
|
||||
{
|
||||
final SiegeAttackerList sal = new SiegeAttackerList(hall);
|
||||
sendPacket(sal);
|
||||
sendPacket(new SiegeAttackerList(hall));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,8 +45,7 @@ public final class RequestSiegeDefenderList extends L2GameClientPacket
|
||||
{
|
||||
return;
|
||||
}
|
||||
final SiegeDefenderList sdl = new SiegeDefenderList(castle);
|
||||
sendPacket(sdl);
|
||||
sendPacket(new SiegeDefenderList(castle));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -58,7 +58,7 @@ public final class RequestStartPledgeWar extends L2GameClientPacket
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
else if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR))
|
||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR))
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
@@ -72,19 +72,19 @@ public final class RequestStartPledgeWar extends L2GameClientPacket
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
else if ((_clan.getAllyId() == clan.getAllyId()) && (_clan.getAllyId() != 0))
|
||||
if ((_clan.getAllyId() == clan.getAllyId()) && (_clan.getAllyId() != 0))
|
||||
{
|
||||
player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.A_DECLARATION_OF_CLAN_WAR_AGAINST_AN_ALLIED_CLAN_CAN_T_BE_MADE));
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
else if ((clan.getLevel() < 3) || (clan.getMembersCount() < Config.ALT_CLAN_MEMBERS_FOR_WAR))
|
||||
if ((clan.getLevel() < 3) || (clan.getMembersCount() < Config.ALT_CLAN_MEMBERS_FOR_WAR))
|
||||
{
|
||||
player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.A_CLAN_WAR_CAN_ONLY_BE_DECLARED_IF_THE_CLAN_IS_LEVEL_5_OR_ABOVE_AND_THE_NUMBER_OF_CLAN_MEMBERS_IS_FIFTEEN_OR_GREATER));
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
else if (_clan.isAtWarWith(clan.getId()))
|
||||
if (_clan.isAtWarWith(clan.getId()))
|
||||
{
|
||||
final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_ALREADY_BEEN_AT_WAR_WITH_THE_S1_CLAN_5_DAYS_MUST_PASS_BEFORE_YOU_CAN_DECLARE_WAR_AGAIN);
|
||||
sm.addString(clan.getName());
|
||||
|
||||
@@ -46,40 +46,29 @@ public final class RequestWithDrawPremiumItem extends L2GameClientPacket
|
||||
protected void runImpl()
|
||||
{
|
||||
final L2PcInstance activeChar = getClient().getActiveChar();
|
||||
if ((activeChar == null) || (_itemCount <= 0))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (activeChar == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (_itemCount <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
/*
|
||||
* else if (activeChar.getObjectId() != _charId) { Util.handleIllegalPlayerAction(activeChar, "[RequestWithDrawPremiumItem] Incorrect owner, Player: " + activeChar.getName(), Config.DEFAULT_PUNISH); return; }
|
||||
*/
|
||||
else if (activeChar.getPremiumItemList().isEmpty())
|
||||
if (activeChar.getPremiumItemList().isEmpty())
|
||||
{
|
||||
Util.handleIllegalPlayerAction(activeChar, "[RequestWithDrawPremiumItem] Player: " + activeChar.getName() + " try to get item with empty list!", Config.DEFAULT_PUNISH);
|
||||
return;
|
||||
}
|
||||
else if ((activeChar.getWeightPenalty() >= 3) || !activeChar.isInventoryUnder90(false))
|
||||
if ((activeChar.getWeightPenalty() >= 3) || !activeChar.isInventoryUnder90(false))
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_RECEIVE_THE_DIMENSIONAL_ITEM_BECAUSE_YOU_HAVE_EXCEED_YOUR_INVENTORY_WEIGHT_QUANTITY_LIMIT);
|
||||
return;
|
||||
}
|
||||
else if (activeChar.isProcessingTransaction())
|
||||
if (activeChar.isProcessingTransaction())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_RECEIVE_A_DIMENSIONAL_ITEM_DURING_AN_EXCHANGE);
|
||||
return;
|
||||
}
|
||||
|
||||
final L2PremiumItem _item = activeChar.getPremiumItemList().get(_itemNum);
|
||||
if (_item == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (_item.getCount() < _itemCount)
|
||||
if ((_item == null) || (_item.getCount() < _itemCount))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -49,27 +49,27 @@ public final class RequestWithDrawalParty extends L2GameClientPacket
|
||||
}
|
||||
|
||||
final L2Party party = player.getParty();
|
||||
|
||||
if (party != null)
|
||||
if (party == null)
|
||||
{
|
||||
party.removePartyMember(player, messageType.Left);
|
||||
|
||||
if (player.isInPartyMatchRoom())
|
||||
{
|
||||
final PartyMatchRoom _room = PartyMatchRoomList.getInstance().getPlayerRoom(player);
|
||||
if (_room != null)
|
||||
{
|
||||
player.sendPacket(new PartyMatchDetail(player, _room));
|
||||
player.sendPacket(new ExPartyRoomMember(player, _room, 0));
|
||||
player.sendPacket(new ExClosePartyRoom());
|
||||
|
||||
_room.deleteMember(player);
|
||||
}
|
||||
player.setPartyRoom(0);
|
||||
// player.setPartyMatching(0);
|
||||
player.broadcastUserInfo();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
party.removePartyMember(player, messageType.Left);
|
||||
if (!player.isInPartyMatchRoom())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final PartyMatchRoom _room = PartyMatchRoomList.getInstance().getPlayerRoom(player);
|
||||
if (_room != null)
|
||||
{
|
||||
player.sendPacket(new PartyMatchDetail(player, _room));
|
||||
player.sendPacket(new ExPartyRoomMember(player, _room, 0));
|
||||
player.sendPacket(new ExClosePartyRoom());
|
||||
_room.deleteMember(player);
|
||||
}
|
||||
player.setPartyRoom(0);
|
||||
player.broadcastUserInfo();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -39,12 +39,7 @@ public final class RequestWriteHeroWords extends L2GameClientPacket
|
||||
protected void runImpl()
|
||||
{
|
||||
final L2PcInstance player = getClient().getActiveChar();
|
||||
if ((player == null) || !player.isHero())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ((_heroWords == null) || (_heroWords.length() > 300))
|
||||
if ((player == null) || !player.isHero() || (_heroWords == null) || (_heroWords.length() > 300))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -164,13 +164,10 @@ public final class Say2 extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
if (activeChar.isJailed() && Config.JAIL_DISABLE_CHAT)
|
||||
if (activeChar.isJailed() && Config.JAIL_DISABLE_CHAT && ((chatType == ChatType.WHISPER) || (chatType == ChatType.SHOUT) || (chatType == ChatType.TRADE) || (chatType == ChatType.HERO_VOICE)))
|
||||
{
|
||||
if ((chatType == ChatType.WHISPER) || (chatType == ChatType.SHOUT) || (chatType == ChatType.TRADE) || (chatType == ChatType.HERO_VOICE))
|
||||
{
|
||||
activeChar.sendMessage("You can not chat with players outside of the jail.");
|
||||
return;
|
||||
}
|
||||
activeChar.sendMessage("You can not chat with players outside of the jail.");
|
||||
return;
|
||||
}
|
||||
|
||||
if ((chatType == ChatType.PETITION_PLAYER) && activeChar.isGM())
|
||||
@@ -203,12 +200,9 @@ public final class Say2 extends L2GameClientPacket
|
||||
_logChat.log(record);
|
||||
}
|
||||
|
||||
if (_text.indexOf(8) >= 0)
|
||||
if ((_text.indexOf(8) >= 0) && !parseAndPublishItem(activeChar))
|
||||
{
|
||||
if (!parseAndPublishItem(activeChar))
|
||||
{
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
final ChatFilterReturn filter = EventDispatcher.getInstance().notifyEvent(new OnPlayerChat(activeChar, L2World.getInstance().getPlayer(_target), _text, chatType), ChatFilterReturn.class);
|
||||
|
||||
@@ -282,11 +282,7 @@ public final class UseItem extends L2GameClientPacket
|
||||
|
||||
if (activeChar.isCastingNow() || activeChar.isCastingSimultaneouslyNow())
|
||||
{
|
||||
// Creating next action class.
|
||||
final NextAction nextAction = new NextAction(CtrlEvent.EVT_FINISH_CASTING, CtrlIntention.AI_INTENTION_CAST, () -> activeChar.useEquippableItem(item, true));
|
||||
|
||||
// Binding next action to AI.
|
||||
activeChar.getAI().setNextAction(nextAction);
|
||||
activeChar.getAI().setNextAction(new NextAction(CtrlEvent.EVT_FINISH_CASTING, CtrlIntention.AI_INTENTION_CAST, () -> activeChar.useEquippableItem(item, true)));
|
||||
}
|
||||
else if (activeChar.isAttackingNow())
|
||||
{
|
||||
@@ -326,13 +322,10 @@ public final class UseItem extends L2GameClientPacket
|
||||
|
||||
// Item reuse time should be added if the item is successfully used.
|
||||
// Skill reuse delay is done at handlers.itemhandlers.ItemSkillsTemplate;
|
||||
if (handler.useItem(activeChar, item, _ctrlPressed))
|
||||
if (handler.useItem(activeChar, item, _ctrlPressed) && (reuseDelay > 0))
|
||||
{
|
||||
if (reuseDelay > 0)
|
||||
{
|
||||
activeChar.addTimeStampItem(item, reuseDelay);
|
||||
sendSharedGroupUpdate(activeChar, sharedReuseGroup, reuseDelay, reuseDelay);
|
||||
}
|
||||
activeChar.addTimeStampItem(item, reuseDelay);
|
||||
sendSharedGroupUpdate(activeChar, sharedReuseGroup, reuseDelay, reuseDelay);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,12 +66,9 @@ public class ValidatePosition extends L2GameClientPacket
|
||||
_log.fine("server pos: " + realX + " " + realY + " " + realZ + " head " + activeChar.getHeading());
|
||||
}
|
||||
|
||||
if ((_x == 0) && (_y == 0))
|
||||
if ((_x == 0) && (_y == 0) && (realX != 0))
|
||||
{
|
||||
if (realX != 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
int dx, dy, dz;
|
||||
@@ -92,26 +89,10 @@ public class ValidatePosition extends L2GameClientPacket
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (activeChar.isInAirShip())
|
||||
{
|
||||
// Zoey76: TODO: Implement or cleanup.
|
||||
// if (Config.COORD_SYNCHRONIZE == 2)
|
||||
// {
|
||||
// dx = _x - activeChar.getInVehiclePosition().getX();
|
||||
// dy = _y - activeChar.getInVehiclePosition().getY();
|
||||
// dz = _z - activeChar.getInVehiclePosition().getZ();
|
||||
// diffSq = ((dx * dx) + (dy * dy));
|
||||
// if (diffSq > 250000)
|
||||
// {
|
||||
// sendPacket(new GetOnVehicle(activeChar.getObjectId(), _data, activeChar.getInBoatPosition()));
|
||||
// }
|
||||
// }
|
||||
return;
|
||||
}
|
||||
|
||||
if (activeChar.isFalling(_z))
|
||||
if (activeChar.isInAirShip() || activeChar.isFalling(_z))
|
||||
{
|
||||
return; // disable validations during fall to avoid "jumping"
|
||||
return;
|
||||
}
|
||||
|
||||
dx = _x - realX;
|
||||
|
||||
@@ -58,12 +58,8 @@ public class RequestDivideAdena extends L2GameClientPacket
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (request.getDistributor() != player)
|
||||
{
|
||||
cancelDistribution(request);
|
||||
return;
|
||||
}
|
||||
else if (request.getAdenaObjectId() != _adenaObjId)
|
||||
|
||||
if ((request.getDistributor() != player) || (request.getAdenaObjectId() != _adenaObjId))
|
||||
{
|
||||
cancelDistribution(request);
|
||||
return;
|
||||
@@ -86,7 +82,8 @@ public class RequestDivideAdena extends L2GameClientPacket
|
||||
cancelDistribution(request);
|
||||
return;
|
||||
}
|
||||
else if (!party.isLeader(player))
|
||||
|
||||
if (!party.isLeader(player))
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOU_CANNOT_PROCEED_AS_YOU_ARE_NOT_A_PARTY_LEADER);
|
||||
cancelDistribution(request);
|
||||
@@ -108,13 +105,15 @@ public class RequestDivideAdena extends L2GameClientPacket
|
||||
cancelDistribution(request);
|
||||
return;
|
||||
}
|
||||
else if (targets.size() < request.getPlayers().size())
|
||||
|
||||
if (targets.size() < request.getPlayers().size())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.THE_DISTRIBUTION_PARTICIPANTS_HAVE_CHANGED_ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED);
|
||||
cancelDistribution(request);
|
||||
return;
|
||||
}
|
||||
else if (player.getAdena() < _adenaCount)
|
||||
|
||||
if (player.getAdena() < _adenaCount)
|
||||
{
|
||||
player.sendPacket(SystemMessageId.DISTRIBUTION_CANNOT_PROCEED_AS_THERE_IS_INSUFFICIENT_ADENA_FOR_DISTRIBUTION);
|
||||
cancelDistribution(request);
|
||||
|
||||
@@ -48,8 +48,7 @@ public class RequestDivideAdenaCancel extends L2GameClientPacket
|
||||
|
||||
if (_cancel)
|
||||
{
|
||||
final AdenaDistributionRequest request = player.getRequest(AdenaDistributionRequest.class);
|
||||
request.getPlayers().stream().filter(Objects::nonNull).forEach(p ->
|
||||
player.getRequest(AdenaDistributionRequest.class).getPlayers().stream().filter(Objects::nonNull).forEach(p ->
|
||||
{
|
||||
p.sendPacket(SystemMessageId.ADENA_DISTRIBUTION_HAS_BEEN_CANCELLED);
|
||||
p.sendPacket(ExDivideAdenaCancel.STATIC_PACKET);
|
||||
|
||||
@@ -61,7 +61,8 @@ public class RequestDivideAdenaStart extends L2GameClientPacket
|
||||
player.sendPacket(SystemMessageId.YOU_CANNOT_PROCEED_AS_YOU_ARE_NOT_AN_ALLIANCE_LEADER_OR_PARTY_LEADER);
|
||||
return;
|
||||
}
|
||||
else if (!party.isLeader(player))
|
||||
|
||||
if (!party.isLeader(player))
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOU_CANNOT_PROCEED_AS_YOU_ARE_NOT_A_PARTY_LEADER);
|
||||
return;
|
||||
|
||||
@@ -43,9 +43,7 @@ public class RequestAlchemyTryMixCube extends L2GameClientPacket
|
||||
final int count = readD();
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
final int itemObjectId = readD();
|
||||
final long itemCount = readQ();
|
||||
_items.put(itemObjectId, itemCount);
|
||||
_items.put(readD(), readQ());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,23 +94,7 @@ public class RequestAlchemyTryMixCube extends L2GameClientPacket
|
||||
final L2ItemInstance item = activeChar.getInventory().getItemByObjectId(itemObjectId);
|
||||
if (item != null)
|
||||
{
|
||||
if (item.getCount() < itemCount)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (!item.isDestroyable())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (item.getEnchantLevel() > 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (item.isAugmented())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (item.isShadowItem())
|
||||
if ((item.getCount() < itemCount) || !item.isDestroyable() || (item.getEnchantLevel() > 0) || item.isAugmented() || item.isShadowItem())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -69,48 +69,20 @@ public class RequestExTryToPutShapeShiftingEnchantSupportItem extends L2GameClie
|
||||
final L2ItemInstance targetItem = inventory.getItemByObjectId(_targetItemObjId);
|
||||
final L2ItemInstance extracItem = inventory.getItemByObjectId(_extracItemObjId);
|
||||
L2ItemInstance stone = request.getAppearanceStone();
|
||||
if ((targetItem == null) || (extracItem == null) || (stone == null))
|
||||
if ((targetItem == null) || (extracItem == null) || (stone == null) || !extracItem.isAppearanceable() || ((extracItem.getItemLocation() != ItemLocation.INVENTORY) && (extracItem.getItemLocation() != ItemLocation.PAPERDOLL)) || ((stone = inventory.getItemByObjectId(stone.getObjectId())) == null))
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!extracItem.isAppearanceable())
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((extracItem.getItemLocation() != ItemLocation.INVENTORY) && (extracItem.getItemLocation() != ItemLocation.PAPERDOLL))
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((stone = inventory.getItemByObjectId(stone.getObjectId())) == null)
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
final AppearanceStone appearanceStone = AppearanceItemData.getInstance().getStone(stone.getId());
|
||||
if (appearanceStone == null)
|
||||
if ((appearanceStone == null) || (appearanceStone.getType() == AppearanceType.RESTORE) || (appearanceStone.getType() == AppearanceType.FIXED))
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((appearanceStone.getType() == AppearanceType.RESTORE) || (appearanceStone.getType() == AppearanceType.FIXED))
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if (extracItem.getVisualId() > 0)
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
@@ -118,16 +90,12 @@ public class RequestExTryToPutShapeShiftingEnchantSupportItem extends L2GameClie
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if (appearanceStone.getWeaponType() != WeaponType.NONE)
|
||||
if ((appearanceStone.getWeaponType() != WeaponType.NONE) && (!targetItem.isWeapon() || (targetItem.getItemType() != appearanceStone.getWeaponType())))
|
||||
{
|
||||
if (!targetItem.isWeapon() || (targetItem.getItemType() != appearanceStone.getWeaponType()))
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.sendPacket(SystemMessageId.THIS_ITEM_DOES_NOT_MEET_REQUIREMENTS);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.sendPacket(SystemMessageId.THIS_ITEM_DOES_NOT_MEET_REQUIREMENTS);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if (appearanceStone.getWeaponType() != WeaponType.NONE)
|
||||
@@ -139,7 +107,6 @@ public class RequestExTryToPutShapeShiftingEnchantSupportItem extends L2GameClie
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (appearanceStone.getHandType())
|
||||
{
|
||||
case ONE_HANDED:
|
||||
|
||||
@@ -66,57 +66,20 @@ public class RequestExTryToPutShapeShiftingTargetItem extends L2GameClientPacket
|
||||
final PcInventory inventory = player.getInventory();
|
||||
final L2ItemInstance targetItem = inventory.getItemByObjectId(_targetItemObjId);
|
||||
L2ItemInstance stone = request.getAppearanceStone();
|
||||
|
||||
if ((targetItem == null) || (stone == null))
|
||||
if ((targetItem == null) || (stone == null) || !targetItem.isAppearanceable() || ((targetItem.getItemLocation() != ItemLocation.INVENTORY) && (targetItem.getItemLocation() != ItemLocation.PAPERDOLL)) || ((stone = inventory.getItemByObjectId(stone.getObjectId())) == null))
|
||||
{
|
||||
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!targetItem.isAppearanceable())
|
||||
{
|
||||
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((targetItem.getItemLocation() != ItemLocation.INVENTORY) && (targetItem.getItemLocation() != ItemLocation.PAPERDOLL))
|
||||
{
|
||||
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((stone = inventory.getItemByObjectId(stone.getObjectId())) == null)
|
||||
{
|
||||
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
final AppearanceStone appearanceStone = AppearanceItemData.getInstance().getStone(stone.getId());
|
||||
if (appearanceStone == null)
|
||||
if ((appearanceStone == null) || ((appearanceStone.getType() != AppearanceType.RESTORE) && (targetItem.getVisualId() > 0)) || ((appearanceStone.getType() == AppearanceType.RESTORE) && (targetItem.getVisualId() == 0)))
|
||||
{
|
||||
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if (((appearanceStone.getType() != AppearanceType.RESTORE) && (targetItem.getVisualId() > 0)) || ((appearanceStone.getType() == AppearanceType.RESTORE) && (targetItem.getVisualId() == 0)))
|
||||
{
|
||||
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO: Handle hair accessory!
|
||||
// if (!targetItem.isEtcItem() && (targetItem.getItem().getCrystalType() == CrystalType.NONE))
|
||||
{
|
||||
// player.sendPacket(SystemMessageId.YOU_CANNOT_MODIFY_OR_RESTORE_NOGRADE_ITEMS);
|
||||
// return;
|
||||
}
|
||||
|
||||
if (!appearanceStone.getCrystalTypes().isEmpty() && !appearanceStone.getCrystalTypes().contains(targetItem.getItem().getCrystalType()))
|
||||
{
|
||||
player.sendPacket(SystemMessageId.ITEM_GRADES_DO_NOT_MATCH);
|
||||
@@ -131,30 +94,12 @@ public class RequestExTryToPutShapeShiftingTargetItem extends L2GameClientPacket
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!appearanceStone.getTargetTypes().contains(AppearanceTargetType.ALL))
|
||||
if (!appearanceStone.getTargetTypes().contains(AppearanceTargetType.ALL) && ((targetItem.isWeapon() && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.WEAPON)) || (targetItem.isArmor() && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.ARMOR) && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.ACCESSORY)) || (targetItem.isArmor() && !appearanceStone.getBodyParts().isEmpty() && !appearanceStone.getBodyParts().contains(targetItem.getItem().getBodyPart()))))
|
||||
{
|
||||
if (targetItem.isWeapon() && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.WEAPON))
|
||||
{
|
||||
player.sendPacket(SystemMessageId.THIS_ITEM_DOES_NOT_MEET_REQUIREMENTS);
|
||||
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
else if (targetItem.isArmor() && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.ARMOR) && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.ACCESSORY))
|
||||
{
|
||||
player.sendPacket(SystemMessageId.THIS_ITEM_DOES_NOT_MEET_REQUIREMENTS);
|
||||
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
else if (targetItem.isArmor() && !appearanceStone.getBodyParts().isEmpty() && !appearanceStone.getBodyParts().contains(targetItem.getItem().getBodyPart()))
|
||||
{
|
||||
player.sendPacket(SystemMessageId.THIS_ITEM_DOES_NOT_MEET_REQUIREMENTS);
|
||||
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
player.sendPacket(SystemMessageId.THIS_ITEM_DOES_NOT_MEET_REQUIREMENTS);
|
||||
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if (appearanceStone.getWeaponType() != WeaponType.NONE)
|
||||
|
||||
@@ -72,36 +72,7 @@ public class RequestShapeShiftingItem extends L2GameClientPacket
|
||||
final PcInventory inventory = player.getInventory();
|
||||
final L2ItemInstance targetItem = inventory.getItemByObjectId(_targetItemObjId);
|
||||
L2ItemInstance stone = request.getAppearanceStone();
|
||||
|
||||
if ((targetItem == null) || (stone == null))
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if (stone.getOwnerId() != player.getObjectId())
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!targetItem.isAppearanceable())
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((targetItem.getItemLocation() != ItemLocation.INVENTORY) && (targetItem.getItemLocation() != ItemLocation.PAPERDOLL))
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((stone = inventory.getItemByObjectId(stone.getObjectId())) == null)
|
||||
if ((targetItem == null) || (stone == null) || (stone.getOwnerId() != player.getObjectId()) || !targetItem.isAppearanceable() || ((targetItem.getItemLocation() != ItemLocation.INVENTORY) && (targetItem.getItemLocation() != ItemLocation.PAPERDOLL)) || ((stone = inventory.getItemByObjectId(stone.getObjectId())) == null))
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
@@ -109,36 +80,7 @@ public class RequestShapeShiftingItem extends L2GameClientPacket
|
||||
}
|
||||
|
||||
final AppearanceStone appearanceStone = AppearanceItemData.getInstance().getStone(stone.getId());
|
||||
if (appearanceStone == null)
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if (((appearanceStone.getType() != AppearanceType.RESTORE) && (targetItem.getVisualId() > 0)) || ((appearanceStone.getType() == AppearanceType.RESTORE) && (targetItem.getVisualId() == 0)))
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO: Handle hair accessory!
|
||||
// if (!targetItem.isEtcItem() && (targetItem.getItem().getCrystalType() == CrystalType.NONE))
|
||||
{
|
||||
// player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
// player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
// return;
|
||||
}
|
||||
|
||||
if (!appearanceStone.getCrystalTypes().isEmpty() && !appearanceStone.getCrystalTypes().contains(targetItem.getItem().getCrystalType()))
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if (appearanceStone.getTargetTypes().isEmpty())
|
||||
if ((appearanceStone == null) || ((appearanceStone.getType() != AppearanceType.RESTORE) && (targetItem.getVisualId() > 0)) || ((appearanceStone.getType() == AppearanceType.RESTORE) && (targetItem.getVisualId() == 0)) || (!appearanceStone.getCrystalTypes().isEmpty() && !appearanceStone.getCrystalTypes().contains(targetItem.getItem().getCrystalType())) || appearanceStone.getTargetTypes().isEmpty())
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
@@ -147,19 +89,13 @@ public class RequestShapeShiftingItem extends L2GameClientPacket
|
||||
|
||||
if (!appearanceStone.getTargetTypes().contains(AppearanceTargetType.ALL))
|
||||
{
|
||||
if (targetItem.isWeapon() && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.WEAPON))
|
||||
if ((targetItem.isWeapon() && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.WEAPON)) || (targetItem.isArmor() && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.ARMOR) && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.ACCESSORY)))
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
else if (targetItem.isArmor() && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.ARMOR) && !appearanceStone.getTargetTypes().contains(AppearanceTargetType.ACCESSORY))
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
else if (targetItem.isArmor() && !appearanceStone.getBodyParts().isEmpty() && !appearanceStone.getBodyParts().contains(targetItem.getItem().getBodyPart()))
|
||||
if (targetItem.isArmor() && !appearanceStone.getBodyParts().isEmpty() && !appearanceStone.getBodyParts().contains(targetItem.getItem().getBodyPart()))
|
||||
{
|
||||
player.sendPacket(ExPutShapeShiftingTargetItemResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
@@ -255,42 +191,7 @@ public class RequestShapeShiftingItem extends L2GameClientPacket
|
||||
int extracItemId = 0;
|
||||
if ((appearanceStone.getType() != AppearanceType.RESTORE) && (appearanceStone.getType() != AppearanceType.FIXED))
|
||||
{
|
||||
if (extracItem == null)
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!extracItem.isAppearanceable())
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((extracItem.getItemLocation() != ItemLocation.INVENTORY) && (extracItem.getItemLocation() != ItemLocation.PAPERDOLL))
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!extracItem.isEtcItem() && (targetItem.getItem().getCrystalType().ordinal() <= extracItem.getItem().getCrystalType().ordinal()))
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if (extracItem.getVisualId() > 0)
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if (extracItem.getOwnerId() != player.getObjectId())
|
||||
if ((extracItem == null) || !extracItem.isAppearanceable() || ((extracItem.getItemLocation() != ItemLocation.INVENTORY) && (extracItem.getItemLocation() != ItemLocation.PAPERDOLL)) || (!extracItem.isEtcItem() && (targetItem.getItem().getCrystalType().ordinal() <= extracItem.getItem().getCrystalType().ordinal())) || (extracItem.getVisualId() > 0) || (extracItem.getOwnerId() != player.getObjectId()))
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
@@ -314,22 +215,12 @@ public class RequestShapeShiftingItem extends L2GameClientPacket
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
|
||||
if (stone.getCount() < 1L)
|
||||
if ((stone.getCount() < 1L) || ((appearanceStone.getType() == AppearanceType.NORMAL) && (inventory.destroyItem(getClass().getSimpleName(), extracItem, 1, player, this) == null)))
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
if (appearanceStone.getType() == AppearanceType.NORMAL)
|
||||
{
|
||||
if (inventory.destroyItem(getClass().getSimpleName(), extracItem, 1, player, this) == null)
|
||||
{
|
||||
player.sendPacket(ExShapeShiftingResult.FAILED);
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
inventory.destroyItem(getClass().getSimpleName(), stone, 1, player, this);
|
||||
player.reduceAdena(getClass().getSimpleName(), cost, extracItem, true);
|
||||
@@ -367,15 +258,7 @@ public class RequestShapeShiftingItem extends L2GameClientPacket
|
||||
}
|
||||
|
||||
targetItem.getVariables().storeMe();
|
||||
if (appearanceStone.getCost() > 0)
|
||||
{
|
||||
player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_SPENT_S1_ON_A_SUCCESSFUL_APPEARANCE_MODIFICATION).addLong(cost));
|
||||
}
|
||||
else
|
||||
{
|
||||
player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1_S_APPEARANCE_MODIFICATION_HAS_FINISHED).addItemName(targetItem.getDisplayId()));
|
||||
}
|
||||
|
||||
player.sendPacket(appearanceStone.getCost() > 0 ? SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_SPENT_S1_ON_A_SUCCESSFUL_APPEARANCE_MODIFICATION).addLong(cost) : SystemMessage.getSystemMessage(SystemMessageId.S1_S_APPEARANCE_MODIFICATION_HAS_FINISHED).addItemName(targetItem.getDisplayId()));
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addModifiedItem(targetItem);
|
||||
|
||||
@@ -404,19 +287,20 @@ public class RequestShapeShiftingItem extends L2GameClientPacket
|
||||
|
||||
player.removeRequest(ShapeShiftingItemRequest.class);
|
||||
player.sendPacket(new ExShapeShiftingResult(ExShapeShiftingResult.RESULT_SUCCESS, targetItem.getId(), extracItemId));
|
||||
if (targetItem.isEquipped())
|
||||
if (!targetItem.isEquipped())
|
||||
{
|
||||
player.broadcastUserInfo();
|
||||
final ExUserInfoEquipSlot slots = new ExUserInfoEquipSlot(player, false);
|
||||
for (InventorySlot slot : InventorySlot.values())
|
||||
{
|
||||
if (slot.getSlot() == targetItem.getLocationSlot())
|
||||
{
|
||||
slots.addComponentType(slot);
|
||||
}
|
||||
}
|
||||
player.sendPacket(slots);
|
||||
return;
|
||||
}
|
||||
player.broadcastUserInfo();
|
||||
final ExUserInfoEquipSlot slots = new ExUserInfoEquipSlot(player, false);
|
||||
for (InventorySlot slot : InventorySlot.values())
|
||||
{
|
||||
if (slot.getSlot() == targetItem.getLocationSlot())
|
||||
{
|
||||
slots.addComponentType(slot);
|
||||
}
|
||||
}
|
||||
player.sendPacket(slots);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -45,13 +45,13 @@ public class RequestNewEnchantPushOne extends L2GameClientPacket
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (activeChar.isInStoreMode())
|
||||
if (activeChar.isInStoreMode())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_DO_THAT_WHILE_IN_A_PRIVATE_STORE_OR_PRIVATE_WORKSHOP);
|
||||
activeChar.sendPacket(ExEnchantOneFail.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
else if (activeChar.isProcessingTransaction() || activeChar.isProcessingRequest())
|
||||
if (activeChar.isProcessingTransaction() || activeChar.isProcessingRequest())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_USE_THIS_SYSTEM_DURING_TRADING_PRIVATE_STORE_AND_WORKSHOP_SETUP);
|
||||
activeChar.sendPacket(ExEnchantOneFail.STATIC_PACKET);
|
||||
|
||||
@@ -46,13 +46,13 @@ public class RequestNewEnchantPushTwo extends L2GameClientPacket
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (activeChar.isInStoreMode())
|
||||
if (activeChar.isInStoreMode())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_DO_THAT_WHILE_IN_A_PRIVATE_STORE_OR_PRIVATE_WORKSHOP);
|
||||
activeChar.sendPacket(ExEnchantOneFail.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
else if (activeChar.isProcessingTransaction() || activeChar.isProcessingRequest())
|
||||
if (activeChar.isProcessingTransaction() || activeChar.isProcessingRequest())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_USE_THIS_SYSTEM_DURING_TRADING_PRIVATE_STORE_AND_WORKSHOP_SETUP);
|
||||
activeChar.sendPacket(ExEnchantOneFail.STATIC_PACKET);
|
||||
@@ -66,32 +66,10 @@ public class RequestNewEnchantPushTwo extends L2GameClientPacket
|
||||
return;
|
||||
}
|
||||
|
||||
// Make sure player owns this item.
|
||||
request.setItemTwo(_objectId);
|
||||
final L2ItemInstance itemOne = request.getItemOne();
|
||||
final L2ItemInstance itemTwo = request.getItemTwo();
|
||||
if ((itemOne == null) || (itemTwo == null))
|
||||
{
|
||||
activeChar.sendPacket(ExEnchantTwoFail.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Lets prevent using same item twice
|
||||
if (itemOne.getObjectId() == itemTwo.getObjectId())
|
||||
{
|
||||
activeChar.sendPacket(ExEnchantTwoFail.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Combining only same items!
|
||||
if (itemOne.getItem().getId() != itemTwo.getItem().getId())
|
||||
{
|
||||
activeChar.sendPacket(ExEnchantTwoFail.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
|
||||
// Not implemented or not able to merge!
|
||||
if ((itemOne.getItem().getCompoundItem() == 0) || (itemOne.getItem().getCompoundChance() == 0))
|
||||
if ((itemOne == null) || (itemTwo == null) || (itemOne.getObjectId() == itemTwo.getObjectId()) || (itemOne.getItem().getId() != itemTwo.getItem().getId()) || (itemOne.getItem().getCompoundItem() == 0) || (itemOne.getItem().getCompoundChance() == 0))
|
||||
{
|
||||
activeChar.sendPacket(ExEnchantTwoFail.STATIC_PACKET);
|
||||
return;
|
||||
|
||||
@@ -46,13 +46,13 @@ public class RequestNewEnchantRemoveOne extends L2GameClientPacket
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (activeChar.isInStoreMode())
|
||||
if (activeChar.isInStoreMode())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_DO_THAT_WHILE_IN_A_PRIVATE_STORE_OR_PRIVATE_WORKSHOP);
|
||||
activeChar.sendPacket(ExEnchantOneFail.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
else if (activeChar.isProcessingTransaction() || activeChar.isProcessingRequest())
|
||||
if (activeChar.isProcessingTransaction() || activeChar.isProcessingRequest())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_USE_THIS_SYSTEM_DURING_TRADING_PRIVATE_STORE_AND_WORKSHOP_SETUP);
|
||||
activeChar.sendPacket(ExEnchantOneFail.STATIC_PACKET);
|
||||
|
||||
@@ -46,13 +46,13 @@ public class RequestNewEnchantRemoveTwo extends L2GameClientPacket
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (activeChar.isInStoreMode())
|
||||
if (activeChar.isInStoreMode())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_DO_THAT_WHILE_IN_A_PRIVATE_STORE_OR_PRIVATE_WORKSHOP);
|
||||
activeChar.sendPacket(ExEnchantOneFail.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
else if (activeChar.isProcessingTransaction() || activeChar.isProcessingRequest())
|
||||
if (activeChar.isProcessingTransaction() || activeChar.isProcessingRequest())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_USE_THIS_SYSTEM_DURING_TRADING_PRIVATE_STORE_AND_WORKSHOP_SETUP);
|
||||
activeChar.sendPacket(ExEnchantOneFail.STATIC_PACKET);
|
||||
|
||||
@@ -47,13 +47,13 @@ public class RequestNewEnchantTry extends L2GameClientPacket
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if (activeChar.isInStoreMode())
|
||||
if (activeChar.isInStoreMode())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_DO_THAT_WHILE_IN_A_PRIVATE_STORE_OR_PRIVATE_WORKSHOP);
|
||||
activeChar.sendPacket(ExEnchantOneFail.STATIC_PACKET);
|
||||
return;
|
||||
}
|
||||
else if (activeChar.isProcessingTransaction() || activeChar.isProcessingRequest())
|
||||
if (activeChar.isProcessingTransaction() || activeChar.isProcessingRequest())
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_USE_THIS_SYSTEM_DURING_TRADING_PRIVATE_STORE_AND_WORKSHOP_SETUP);
|
||||
activeChar.sendPacket(ExEnchantOneFail.STATIC_PACKET);
|
||||
@@ -77,31 +77,12 @@ public class RequestNewEnchantTry extends L2GameClientPacket
|
||||
activeChar.removeRequest(request.getClass());
|
||||
return;
|
||||
}
|
||||
|
||||
// Lets prevent using same item twice
|
||||
if (itemOne.getObjectId() == itemTwo.getObjectId())
|
||||
if ((itemOne.getObjectId() == itemTwo.getObjectId()) || (itemOne.getItem().getId() != itemTwo.getItem().getId()) || (itemOne.getItem().getCompoundItem() == 0) || (itemOne.getItem().getCompoundChance() == 0))
|
||||
{
|
||||
activeChar.sendPacket(new ExEnchantFail(itemOne.getItem().getId(), itemTwo.getItem().getId()));
|
||||
activeChar.removeRequest(request.getClass());
|
||||
return;
|
||||
}
|
||||
|
||||
// Combining only same items!
|
||||
if (itemOne.getItem().getId() != itemTwo.getItem().getId())
|
||||
{
|
||||
activeChar.sendPacket(new ExEnchantFail(itemOne.getItem().getId(), itemTwo.getItem().getId()));
|
||||
activeChar.removeRequest(request.getClass());
|
||||
return;
|
||||
}
|
||||
|
||||
// Not implemented or not able to merge!
|
||||
if ((itemOne.getItem().getCompoundItem() == 0) || (itemOne.getItem().getCompoundChance() == 0))
|
||||
{
|
||||
activeChar.sendPacket(new ExEnchantFail(itemOne.getItem().getId(), itemTwo.getItem().getId()));
|
||||
activeChar.removeRequest(request.getClass());
|
||||
return;
|
||||
}
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
final double random = Rnd.nextDouble() * 100;
|
||||
|
||||
@@ -110,11 +91,9 @@ public class RequestNewEnchantTry extends L2GameClientPacket
|
||||
{
|
||||
iu.addRemovedItem(itemOne);
|
||||
iu.addRemovedItem(itemTwo);
|
||||
|
||||
if (activeChar.destroyItem("Compound-Item-One", itemOne, null, true) && activeChar.destroyItem("Compound-Item-Two", itemTwo, null, true))
|
||||
{
|
||||
final L2ItemInstance item = activeChar.addItem("Compound-Result", itemOne.getItem().getCompoundItem(), 1, null, true);
|
||||
activeChar.sendPacket(new ExEnchantSucess(item.getItem().getId()));
|
||||
activeChar.sendPacket(new ExEnchantSucess(activeChar.addItem("Compound-Result", itemOne.getItem().getCompoundItem(), 1, null, true).getItem().getId()));
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -85,13 +85,7 @@ public class RequestCrystallizeEstimate extends L2GameClientPacket
|
||||
}
|
||||
|
||||
final L2ItemInstance item = activeChar.getInventory().getItemByObjectId(_objectId);
|
||||
if ((item == null) || item.isShadowItem() || item.isTimeLimitedItem())
|
||||
{
|
||||
sendActionFailed();
|
||||
return;
|
||||
}
|
||||
|
||||
if (item.isHeroItem())
|
||||
if ((item == null) || item.isShadowItem() || item.isTimeLimitedItem() || item.isHeroItem())
|
||||
{
|
||||
sendActionFailed();
|
||||
return;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user