From 1f703d504c23f929ce4e7eb05b8d8fb509d78f40 Mon Sep 17 00:00:00 2001 From: Rumen Nikiforov <unafraid89@gmail.com> Date: Tue, 15 Apr 2014 21:44:31 +0000 Subject: [PATCH] BETA: DP-Part for [L6501] * Also including new admin command !//setinvis which will toggle visibility/invisibility of your target. --- .../dist/game/config/adminCommands.xml | 1 + .../admincommandhandlers/AdminEffects.java | 23 ++++++++++++++----- .../handlers/effecthandlers/Detection.java | 2 +- .../scripts/handlers/effecthandlers/Hide.java | 20 ++++++---------- .../IceQueensCastleNormalBattle.java | 4 ++-- 5 files changed, 28 insertions(+), 22 deletions(-) diff --git a/L2J_DataPack_BETA/dist/game/config/adminCommands.xml b/L2J_DataPack_BETA/dist/game/config/adminCommands.xml index 3bbc97f568..2cf8232042 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 3f84bb4a38..7346f2b62b 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 9a8f8fbd24..8885ae9822 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 40df5f1662..3309b4b18f 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 761860db67..39812e3fa1 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); -- GitLab