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