diff --git a/L2J_DataPack_BETA/dist/game/config/adminCommands.xml b/L2J_DataPack_BETA/dist/game/config/adminCommands.xml index 3bbc97f56886dcfffe2910465edd96d25379b4de..2cf8232042cbb35f5b727fc2836dab07de57d90f 100644 --- a/L2J_DataPack_BETA/dist/game/config/adminCommands.xml +++ b/L2J_DataPack_BETA/dist/game/config/adminCommands.xml @@ -155,6 +155,7 @@ <!-- ADMIN EFFECTS --> <admin command="admin_invis" accessLevel="7" /> <admin command="admin_invisible" accessLevel="7" /> + <admin command="admin_setinvis" accessLevel="7" /> <admin command="admin_vis" accessLevel="7" /> <admin command="admin_visible" accessLevel="7" /> <admin command="admin_invis_menu" accessLevel="7" /> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminEffects.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminEffects.java index 3f84bb4a384a19c50f98c6a2ab1870898bbbae7c..7346f2b62b6f4b33b579f88a12f7640563f1562f 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminEffects.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminEffects.java @@ -62,6 +62,7 @@ public class AdminEffects implements IAdminCommandHandler { "admin_invis", "admin_invisible", + "admin_setinvis", "admin_vis", "admin_visible", "admin_invis_menu", @@ -109,16 +110,16 @@ public class AdminEffects implements IAdminCommandHandler if (command.equals("admin_invis_menu")) { - if (!activeChar.getAppearance().getInvisible()) + if (!activeChar.isInvisible()) { - activeChar.getAppearance().setInvisible(); + activeChar.setInvisible(true); activeChar.broadcastUserInfo(); activeChar.decayMe(); activeChar.spawnMe(); } else { - activeChar.getAppearance().setVisible(); + activeChar.setInvisible(false); activeChar.broadcastUserInfo(); } RegionBBSManager.getInstance().changeCommunityBoard(); @@ -127,16 +128,26 @@ public class AdminEffects implements IAdminCommandHandler } else if (command.startsWith("admin_invis")) { - activeChar.getAppearance().setInvisible(); + activeChar.setInvisible(false); activeChar.broadcastUserInfo(); activeChar.decayMe(); activeChar.spawnMe(); RegionBBSManager.getInstance().changeCommunityBoard(); } - + else if (command.startsWith("admin_setinvis")) + { + if ((activeChar.getTarget() == null) || !activeChar.getTarget().isCharacter()) + { + activeChar.sendPacket(SystemMessageId.INCORRECT_TARGET); + return false; + } + final L2Character target = (L2Character) activeChar.getTarget(); + target.setInvisible(!target.isInvisible()); + activeChar.sendMessage("You've made " + target.getName() + " " + (target.isInvisible() ? "invisible" : "visible") + "."); + } else if (command.startsWith("admin_vis")) { - activeChar.getAppearance().setVisible(); + activeChar.setInvisible(false); activeChar.broadcastUserInfo(); RegionBBSManager.getInstance().changeCommunityBoard(); } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Detection.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Detection.java index 9a8f8fbd244f2c4f0a3b613816708801a3606431..8885ae9822dd5b7485ffa6905786483ad316c946 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Detection.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Detection.java @@ -56,7 +56,7 @@ public final class Detection extends AbstractEffect final boolean hasClan = player.getClanId() > 0; final boolean hasAlly = player.getAllyId() > 0; - if (target.getAppearance().getInvisible()) + if (target.isInvisible()) { if (hasParty && (target.isInParty()) && (player.getParty().getLeaderObjectId() == target.getParty().getLeaderObjectId())) { diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Hide.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Hide.java index 40df5f1662ff34726787b829a731cc22359b7fb7..3309b4b18f2ea9389460e9954e264b8020ecab17 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Hide.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Hide.java @@ -45,7 +45,7 @@ public final class Hide extends AbstractEffect L2PcInstance activeChar = info.getEffected().getActingPlayer(); if (!activeChar.inObserverMode()) { - activeChar.getAppearance().setVisible(); + activeChar.setInvisible(false); } } } @@ -56,7 +56,7 @@ public final class Hide extends AbstractEffect if (info.getEffected().isPlayer()) { L2PcInstance activeChar = info.getEffected().getActingPlayer(); - activeChar.getAppearance().setInvisible(); + activeChar.setInvisible(true); if ((activeChar.getAI().getNextIntention() != null) && (activeChar.getAI().getNextIntention().getCtrlIntention() == CtrlIntention.AI_INTENTION_ATTACK)) { @@ -65,18 +65,12 @@ public final class Hide extends AbstractEffect for (L2Character target : activeChar.getKnownList().getKnownCharacters()) { - try - { - if (target.getTarget() == activeChar) - { - target.setTarget(null); - target.abortAttack(); - target.abortCast(); - target.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); - } - } - catch (NullPointerException e) + if ((target != null) && (target.getTarget() == activeChar)) { + target.setTarget(null); + target.abortAttack(); + target.abortCast(); + target.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); } } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/instances/IceQueensCastleNormalBattle/IceQueensCastleNormalBattle.java b/L2J_DataPack_BETA/dist/game/data/scripts/instances/IceQueensCastleNormalBattle/IceQueensCastleNormalBattle.java index 761860db67a440766d28fbd9c2efa77cfe5a237d..39812e3fa15bb3907bc75d6171a0e2415cff9547 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/instances/IceQueensCastleNormalBattle/IceQueensCastleNormalBattle.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/instances/IceQueensCastleNormalBattle/IceQueensCastleNormalBattle.java @@ -1301,14 +1301,14 @@ public final class IceQueensCastleNormalBattle extends AbstractNpcAI final List<L2PcInstance> players = new ArrayList<>(); for (L2PcInstance player : world.playersInside) { - if ((player != null) && !player.isDead() && (player.getInstanceId() == world.getInstanceId()) && !player.getAppearance().getInvisible()) + if ((player != null) && !player.isDead() && (player.getInstanceId() == world.getInstanceId()) && !player.isInvisible()) { players.add(player); } } Collections.shuffle(players); - final L2PcInstance target = (players.size() > 0) ? players.get(0) : null; + final L2PcInstance target = (!players.isEmpty()) ? players.get(0) : null; if (target != null) { mob.addDamageHate(target, 0, 999);