Sfoglia il codice sorgente

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

St3eT 11 anni fa
parent
commit
e9b0c7380f

+ 1 - 1
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>

+ 5 - 4
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);
 				}
 			}
 			

+ 1 - 1
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

+ 6 - 0
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