From e9b0c7380fa147b1fbfd7e9d1f5dde71700bbb80 Mon Sep 17 00:00:00 2001 From: St3eT <St3eT@users.noreply.github.com> Date: Tue, 11 Feb 2014 23:25:03 +0000 Subject: [PATCH] BETA: Misc fixes: * Fixed exploit in '''!CastleChamberlain'''. * Reported by: malyelfik * Reviewed by: Adry_85, !UnAfraid * Match list shouldn't show when olympiad don't run. * Reviewed by: Adry_85, !UnAfraid * Fixed {{{ClassCastException}}} in '''!PrimevalIsle''' AI. * Reported by: d!g0 * Reviewed by: xban1x, Adry_85, !UnAfraid * Fixed little typo in HTML. * Reviewed by: Adry_85, !UnAfraid --- L2J_DataPack_BETA/dist/game/data/html/guard/30710.htm | 2 +- .../data/scripts/ai/group_template/PrimevalIsle.java | 9 +++++---- .../ai/npc/CastleChamberlain/CastleChamberlain.java | 2 +- .../handlers/bypasshandlers/OlympiadObservation.java | 6 ++++++ 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/L2J_DataPack_BETA/dist/game/data/html/guard/30710.htm b/L2J_DataPack_BETA/dist/game/data/html/guard/30710.htm index e6141c4cd7..3720d6d86c 100644 --- a/L2J_DataPack_BETA/dist/game/data/html/guard/30710.htm +++ b/L2J_DataPack_BETA/dist/game/data/html/guard/30710.htm @@ -1,5 +1,5 @@ <html><body>Guard Weston:<br> -The town of<font color="LEVEL">Oren</font> is like its name implies, a part of<font color="LEVEL">Oren</font>. And as you may know, the Hunters Village and the Enchanted Valley are part of Aden. Don't be mistaken.<br> +The town of <font color="LEVEL">Oren</font> is like its name implies, a part of <font color="LEVEL">Oren</font>. And as you may know, the Hunters Village and the Enchanted Valley are part of Aden. Don't be mistaken.<br> <a action="bypass -h npc_%objectId%_Chat 1">Ask about the town of Oren.</a><br> <a action="bypass -h npc_%objectId%_Chat 2">Ask about Oren.</a><br> <a action="bypass -h npc_%objectId%_Quest">Quest</a> diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PrimevalIsle.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PrimevalIsle.java index 1528a99750..cc3d5aab06 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PrimevalIsle.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/PrimevalIsle.java @@ -358,7 +358,7 @@ public final class PrimevalIsle extends AbstractNpcAI else if (Util.contains(TREX, npc.getId())) { final L2Attackable mob = (L2Attackable) npc; - final L2PcInstance target = (L2PcInstance) mob.getMostHated(); + final L2Character target = mob.getMostHated(); if (((npc.getCurrentHp() / npc.getMaxHp()) * 100) <= 30) { @@ -419,7 +419,7 @@ public final class PrimevalIsle extends AbstractNpcAI } else { - L2PcInstance target = null; + L2Character target = null; final int probPhysicalSpecial1 = npc.getTemplate().getParameters().getInt("ProbPhysicalSpecial1", 0); final int probPhysicalSpecial2 = npc.getTemplate().getParameters().getInt("ProbPhysicalSpecial2", 0); final SkillHolder selfRangeBuff1 = npc.getTemplate().getParameters().getObject("SelfRangeBuff1", SkillHolder.class); @@ -438,13 +438,14 @@ public final class PrimevalIsle extends AbstractNpcAI if ((((npc.getCurrentHp() / npc.getMaxHp()) * 100) <= 30) && (npc.getVariables().getInt("SELFBUFF_USED") == 0)) { final L2Attackable mob = (L2Attackable) npc; - target = (L2PcInstance) mob.getMostHated(); + target = mob.getMostHated(); mob.clearAggroList(); if (!npc.isSkillDisabled(selfRangeBuff1.getSkillId())) { npc.getVariables().set("SELFBUFF_USED", 1); npc.doCast(selfRangeBuff1.getSkill()); - attackPlayer(mob, target); + npc.setIsRunning(true); + npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, target); } } diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleChamberlain/CastleChamberlain.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleChamberlain/CastleChamberlain.java index 3aa81e2b2f..7bddc88bb3 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleChamberlain/CastleChamberlain.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleChamberlain/CastleChamberlain.java @@ -385,7 +385,7 @@ public final class CastleChamberlain extends AbstractNpcAI private final boolean isOwner(final L2PcInstance player, final L2Npc npc) { - return player.canOverrideCond(PcCondOverride.CASTLE_CONDITIONS) || npc.isMyLord(player) || (player.getClanId() == npc.getCastle().getOwnerId()); + return player.canOverrideCond(PcCondOverride.CASTLE_CONDITIONS) || (player.getClanId() == npc.getCastle().getOwnerId()); } @Override diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/OlympiadObservation.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/OlympiadObservation.java index 6d188d628c..4e30f53062 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/OlympiadObservation.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/OlympiadObservation.java @@ -52,6 +52,12 @@ public class OlympiadObservation implements IBypassHandler if (command.startsWith(COMMANDS[0])) // list { + if (!Olympiad.getInstance().inCompPeriod()) + { + activeChar.sendPacket(SystemMessageId.THE_OLYMPIAD_GAME_IS_NOT_CURRENTLY_IN_PROGRESS); + return false; + } + activeChar.sendPacket(new ExOlympiadMatchList()); } else -- GitLab