537 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			537 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| /*
 | |
|  * Copyright (C) 2004-2015 L2J DataPack
 | |
|  * 
 | |
|  * This file is part of L2J DataPack.
 | |
|  * 
 | |
|  * L2J DataPack is free software: you can redistribute it and/or modify
 | |
|  * it under the terms of the GNU General Public License as published by
 | |
|  * the Free Software Foundation, either version 3 of the License, or
 | |
|  * (at your option) any later version.
 | |
|  * 
 | |
|  * L2J DataPack is distributed in the hope that it will be useful,
 | |
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 | |
|  * General Public License for more details.
 | |
|  * 
 | |
|  * You should have received a copy of the GNU General Public License
 | |
|  * along with this program. If not, see <http://www.gnu.org/licenses/>.
 | |
|  */
 | |
| package instances.MonasteryOfSilence2;
 | |
| 
 | |
| import java.util.List;
 | |
| 
 | |
| import javolution.util.FastList;
 | |
| import javolution.util.FastMap;
 | |
| import quests.Q10294_SevenSignsToTheMonasteryOfSilence.Q10294_SevenSignsToTheMonasteryOfSilence;
 | |
| import quests.Q10295_SevenSignsSolinasTomb.Q10295_SevenSignsSolinasTomb;
 | |
| import quests.Q10296_SevenSignsPowerOfTheSeal.Q10296_SevenSignsPowerOfTheSeal;
 | |
| import ai.npc.AbstractNpcAI;
 | |
| 
 | |
| import com.l2jserver.gameserver.ai.CtrlIntention;
 | |
| import com.l2jserver.gameserver.datatables.SkillData;
 | |
| import com.l2jserver.gameserver.instancemanager.InstanceManager;
 | |
| import com.l2jserver.gameserver.model.actor.L2Character;
 | |
| import com.l2jserver.gameserver.model.actor.L2Npc;
 | |
| import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 | |
| import com.l2jserver.gameserver.model.entity.Instance;
 | |
| import com.l2jserver.gameserver.model.instancezone.InstanceWorld;
 | |
| import com.l2jserver.gameserver.model.quest.QuestState;
 | |
| import com.l2jserver.gameserver.model.quest.State;
 | |
| import com.l2jserver.gameserver.network.NpcStringId;
 | |
| import com.l2jserver.gameserver.network.SystemMessageId;
 | |
| import com.l2jserver.gameserver.network.serverpackets.NpcSay;
 | |
| import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 | |
| 
 | |
| public class MonasteryOfSilence2 extends AbstractNpcAI
 | |
| {
 | |
| 	// Values
 | |
| 	private static final int INSTANCE_ID = 151;
 | |
| 	// NPC's
 | |
| 	private static final int OddGlobe = 32815;
 | |
| 	private static final int Elcadia_First_Room = 32787;
 | |
| 	private static final int Elcadia_Support = 32785;
 | |
| 	private static final int ErissEvilThoughts = 32792;
 | |
| 	private static final int SolinasEvilThoughts = 32793;
 | |
| 	private static final int RelicGuardian = 32803;
 | |
| 	private static final int WestRelicWatcher = 32804;
 | |
| 	private static final int NorthRelicWatcher = 32805;
 | |
| 	private static final int EastRelicWatcher = 32806;
 | |
| 	private static final int SouthRelicWatcher = 32807;
 | |
| 	private static final int EtisVanEtina = 32808;
 | |
| 	private static final int WestTeleportControlDevice = 32816;
 | |
| 	private static final int NorthTeleportControlDevice = 32817;
 | |
| 	private static final int EastTeleportControlDevice = 32818;
 | |
| 	private static final int SouthTeleportControlDevice = 32819;
 | |
| 	private static final int JudeVanEtinasEvilThoughts = 32888;
 | |
| 	private static final int TeleportControlDevice1 = 32837;
 | |
| 	private static final int TeleportControlDevice2 = 32842;
 | |
| 	private static final int TombOfTheSaintess = 32843;
 | |
| 	private static final int AltarOfHallows_Staff = 32857;
 | |
| 	private static final int AltarOfHallows_Sword = 32858;
 | |
| 	private static final int AltarOfHallows_Scroll = 32859;
 | |
| 	private static final int AltarOfHallows_Shield = 32860;
 | |
| 	// Teleport's
 | |
| 	private static final int ENTER = 0;
 | |
| 	private static final int HOLYGRAL = 1;
 | |
| 	private static final int EXIT = 2;
 | |
| 	private static final int TW = 3;
 | |
| 	private static final int TN = 4;
 | |
| 	private static final int TE = 5;
 | |
| 	private static final int TS = 6;
 | |
| 	private static final int RTE = 7;
 | |
| 	private static final int RTG = 8;
 | |
| 	private static final int ENTER1 = 9;
 | |
| 	private static final int MTS = 10;
 | |
| 	private static final int MTS2 = 11;
 | |
| 	private static final int EE = 12;
 | |
| 	private static final int[][] TELEPORTS =
 | |
| 	{
 | |
| 		{
 | |
| 			120664,
 | |
| 			-86968,
 | |
| 			-3392
 | |
| 		}, // Enter
 | |
| 		{
 | |
| 			85937,
 | |
| 			-249618,
 | |
| 			-8320
 | |
| 		}, // HolyBurailOpen
 | |
| 		{
 | |
| 			115944,
 | |
| 			-86952,
 | |
| 			-3392
 | |
| 		}, // ExitInstance
 | |
| 		{
 | |
| 			82434,
 | |
| 			-249546,
 | |
| 			-8320
 | |
| 		}, // TeleWest
 | |
| 		{
 | |
| 			85691,
 | |
| 			-252426,
 | |
| 			-8320
 | |
| 		}, // TeleNorth
 | |
| 		{
 | |
| 			88573,
 | |
| 			-249556,
 | |
| 			-8320
 | |
| 		}, // TeleEast
 | |
| 		{
 | |
| 			85675,
 | |
| 			-246630,
 | |
| 			-8320
 | |
| 		}, // TeleSouth
 | |
| 		{
 | |
| 			120727,
 | |
| 			-86868,
 | |
| 			-3392
 | |
| 		}, // ReturnToEris
 | |
| 		{
 | |
| 			85937,
 | |
| 			-249618,
 | |
| 			-8320
 | |
| 		}, // ReturnToGuardian
 | |
| 		{
 | |
| 			45545,
 | |
| 			-249423,
 | |
| 			-6760
 | |
| 		}, // Enter1
 | |
| 		{
 | |
| 			56033,
 | |
| 			-252944,
 | |
| 			-6760
 | |
| 		}, // MoveToSaintness
 | |
| 		{
 | |
| 			55955,
 | |
| 			-250394,
 | |
| 			-6760
 | |
| 		}, // MoveToSaintness2
 | |
| 		{
 | |
| 			76707,
 | |
| 			-241022,
 | |
| 			-10832
 | |
| 		}
 | |
| 	// EtisEtina
 | |
| 	};
 | |
| 	
 | |
| 	private static final int[] TALK =
 | |
| 	{
 | |
| 		OddGlobe,
 | |
| 		Elcadia_Support,
 | |
| 		WestTeleportControlDevice,
 | |
| 		NorthTeleportControlDevice,
 | |
| 		EastTeleportControlDevice,
 | |
| 		SouthTeleportControlDevice,
 | |
| 		RelicGuardian,
 | |
| 		WestRelicWatcher,
 | |
| 		NorthRelicWatcher,
 | |
| 		EastRelicWatcher,
 | |
| 		SouthRelicWatcher,
 | |
| 		ErissEvilThoughts,
 | |
| 		EtisVanEtina,
 | |
| 		JudeVanEtinasEvilThoughts,
 | |
| 		SolinasEvilThoughts,
 | |
| 		TeleportControlDevice1,
 | |
| 		TeleportControlDevice2,
 | |
| 		TombOfTheSaintess,
 | |
| 		AltarOfHallows_Staff,
 | |
| 		AltarOfHallows_Sword,
 | |
| 		AltarOfHallows_Scroll,
 | |
| 		AltarOfHallows_Shield
 | |
| 	};
 | |
| 	
 | |
| 	private static final int[] MageBuff =
 | |
| 	{
 | |
| 		6725,
 | |
| 		6721,
 | |
| 		6722,
 | |
| 		6717
 | |
| 	};
 | |
| 	private static final int[] FighterBuff =
 | |
| 	{
 | |
| 		6714,
 | |
| 		6715,
 | |
| 		6716,
 | |
| 		6717
 | |
| 	};
 | |
| 	
 | |
| 	private final FastMap<Integer, InstanceHolder> instanceWorlds = new FastMap<>();
 | |
| 	
 | |
| 	public static class InstanceHolder
 | |
| 	{
 | |
| 		List<L2Npc> mobs = new FastList<>();
 | |
| 	}
 | |
| 	
 | |
| 	private class MoSWorld2 extends InstanceWorld
 | |
| 	{
 | |
| 		public MoSWorld2()
 | |
| 		{
 | |
| 		}
 | |
| 	}
 | |
| 	
 | |
| 	private MonasteryOfSilence2()
 | |
| 	{
 | |
| 		super(MonasteryOfSilence2.class.getSimpleName(), "instances");
 | |
| 		addStartNpc(OddGlobe);
 | |
| 		addStartNpc(WestTeleportControlDevice);
 | |
| 		addStartNpc(NorthTeleportControlDevice);
 | |
| 		addStartNpc(EastTeleportControlDevice);
 | |
| 		addStartNpc(SouthTeleportControlDevice);
 | |
| 		for (int NPC : TALK)
 | |
| 		{
 | |
| 			addTalkId(NPC);
 | |
| 		}
 | |
| 	}
 | |
| 	
 | |
| 	private void teleportPlayer(L2Npc npc, L2PcInstance player, int[] coords, int instanceId)
 | |
| 	{
 | |
| 		for (L2Character cha : player.getKnownList().getKnownCharacters())
 | |
| 		{
 | |
| 			if (cha.isNpc() && ((((L2Npc) cha).getId() == Elcadia_Support) || (((L2Npc) cha).getId() == Elcadia_First_Room)))
 | |
| 			{
 | |
| 				cha.deleteMe();
 | |
| 			}
 | |
| 		}
 | |
| 		
 | |
| 		InstanceHolder holder = instanceWorlds.get(instanceId);
 | |
| 		if ((holder == null) && (instanceId > 0))
 | |
| 		{
 | |
| 			holder = new InstanceHolder();
 | |
| 			this.instanceWorlds.put(Integer.valueOf(instanceId), holder);
 | |
| 		}
 | |
| 		player.stopAllEffectsExceptThoseThatLastThroughDeath();
 | |
| 		player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
 | |
| 		player.setInstanceId(instanceId);
 | |
| 		player.teleToLocation(coords[0], coords[1], coords[2], false);
 | |
| 		cancelQuestTimer("check_follow", npc, player);
 | |
| 		if (holder != null)
 | |
| 		{
 | |
| 			for (L2Npc h : holder.mobs)
 | |
| 			{
 | |
| 				h.deleteMe();
 | |
| 			}
 | |
| 			holder.mobs.clear();
 | |
| 		}
 | |
| 		
 | |
| 		if ((holder != null) && (instanceId > 0))
 | |
| 		{
 | |
| 			L2Npc support = addSpawn(Elcadia_Support, player.getX(), player.getY(), player.getZ(), 0, false, 0L, false, player.getInstanceId());
 | |
| 			holder.mobs.add(support);
 | |
| 			startQuestTimer("check_follow", 3000, support, player);
 | |
| 		}
 | |
| 	}
 | |
| 	
 | |
| 	protected void enterInstance(L2Npc npc, L2PcInstance player)
 | |
| 	{
 | |
| 		InstanceWorld world = InstanceManager.getInstance().getPlayerWorld(player);
 | |
| 		if (world != null)
 | |
| 		{
 | |
| 			if (!(world instanceof MoSWorld2))
 | |
| 			{
 | |
| 				player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_ENTERED_ANOTHER_INSTANT_ZONE_THEREFORE_YOU_CANNOT_ENTER_CORRESPONDING_DUNGEON));
 | |
| 				return;
 | |
| 			}
 | |
| 			Instance inst = InstanceManager.getInstance().getInstance(world.getInstanceId());
 | |
| 			if (inst != null)
 | |
| 			{
 | |
| 				teleportPlayer(npc, player, TELEPORTS[ENTER], world.getInstanceId());
 | |
| 			}
 | |
| 			return;
 | |
| 		}
 | |
| 		final int instanceId = InstanceManager.getInstance().createDynamicInstance("MonasteryOfSilence.xml");
 | |
| 		
 | |
| 		world = new MoSWorld2();
 | |
| 		world.setInstanceId(instanceId);
 | |
| 		world.setTemplateId(INSTANCE_ID);
 | |
| 		world.setStatus(0);
 | |
| 		InstanceManager.getInstance().addWorld(world);
 | |
| 		
 | |
| 		world.addAllowed(player.getObjectId());
 | |
| 		
 | |
| 		teleportPlayer(npc, player, TELEPORTS[ENTER], instanceId);
 | |
| 		return;
 | |
| 	}
 | |
| 	
 | |
| 	@Override
 | |
| 	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
 | |
| 	{
 | |
| 		String htmltext = getNoQuestMsg(player);
 | |
| 		QuestState st = player.getQuestState(MonasteryOfSilence2.class.getSimpleName());
 | |
| 		QuestState qs = player.getQuestState(Q10294_SevenSignsToTheMonasteryOfSilence.class.getSimpleName());
 | |
| 		QuestState qs1 = player.getQuestState(Q10295_SevenSignsSolinasTomb.class.getSimpleName());
 | |
| 		if (st == null)
 | |
| 		{
 | |
| 			st = newQuestState(player);
 | |
| 		}
 | |
| 		if ("check_follow".equals(event))
 | |
| 		{
 | |
| 			cancelQuestTimer("check_follow", npc, player);
 | |
| 			npc.getAI().stopFollow();
 | |
| 			npc.setIsRunning(true);
 | |
| 			npc.getAI().startFollow(player);
 | |
| 			if ((qs != null) && (qs.getCond() == 2))
 | |
| 			{
 | |
| 				if (getRandom(10) < 1)
 | |
| 				{
 | |
| 					npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getId(), NpcStringId.IT_SEEMS_THAT_YOU_CANNOT_REMEMBER_TO_THE_ROOM_OF_THE_WATCHER_WHO_FOUND_THE_BOOK));
 | |
| 				}
 | |
| 				else
 | |
| 				{
 | |
| 					npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getId(), NpcStringId.REMEMBER_THE_CONTENT_OF_THE_BOOKS_THAT_YOU_FOUND_YOU_CAN_T_TAKE_THEM_OUT_WITH_YOU));
 | |
| 				}
 | |
| 			}
 | |
| 			if ((qs != null) && (qs.getCond() == 3))
 | |
| 			{
 | |
| 				if (getRandom(8) < 1)
 | |
| 				{
 | |
| 					npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getId(), NpcStringId.YOUR_WORK_HERE_IS_DONE_SO_RETURN_TO_THE_CENTRAL_GUARDIAN));
 | |
| 				}
 | |
| 			}
 | |
| 			if ((qs1 != null) && (qs1.getCond() == 1))
 | |
| 			{
 | |
| 				if (getRandom(5) < 1)
 | |
| 				{
 | |
| 					if (getRandom(10) < 1)
 | |
| 					{
 | |
| 						npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getId(), NpcStringId.TO_REMOVE_THE_BARRIER_YOU_MUST_FIND_THE_RELICS_THAT_FIT_THE_BARRIER_AND_ACTIVATE_THE_DEVICE));
 | |
| 					}
 | |
| 					else if (getRandom(15) < 1)
 | |
| 					{
 | |
| 						npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getId(), NpcStringId.THE_GUARDIAN_OF_THE_SEAL_DOESN_T_SEEM_TO_GET_INJURED_AT_ALL_UNTIL_THE_BARRIER_IS_DESTROYED));
 | |
| 					}
 | |
| 					else
 | |
| 					{
 | |
| 						npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getId(), NpcStringId.THE_DEVICE_LOCATED_IN_THE_ROOM_IN_FRONT_OF_THE_GUARDIAN_OF_THE_SEAL_IS_DEFINITELY_THE_BARRIER_THAT_CONTROLS_THE_GUARDIAN_S_POWER));
 | |
| 					}
 | |
| 				}
 | |
| 			}
 | |
| 			if (player.getCurrentHp() < (player.getMaxHp() * 0.8D))
 | |
| 			{
 | |
| 				npc.setTarget(player);
 | |
| 				npc.doSimultaneousCast(SkillData.getInstance().getSkill(6724, 1));
 | |
| 			}
 | |
| 			if (player.getCurrentMp() < (player.getMaxMp() * 0.5D))
 | |
| 			{
 | |
| 				npc.setTarget(player);
 | |
| 				npc.doSimultaneousCast(SkillData.getInstance().getSkill(6728, 1));
 | |
| 			}
 | |
| 			startQuestTimer("check_follow", 20000, npc, player);
 | |
| 			return "";
 | |
| 		}
 | |
| 		else if ("enter".equals(event))
 | |
| 		{
 | |
| 			enterInstance(npc, player);
 | |
| 			return null;
 | |
| 		}
 | |
| 		if (npc.getId() == ErissEvilThoughts)
 | |
| 		{
 | |
| 			if ("Enter1".equals(event))
 | |
| 			{
 | |
| 				if (qs1.getInt("seal_removed") != 1)
 | |
| 				{
 | |
| 					qs1.startQuestTimer("StartMovie", 1000);
 | |
| 					teleportPlayer(npc, player, TELEPORTS[ENTER1], player.getInstanceId());
 | |
| 				}
 | |
| 				else
 | |
| 				{
 | |
| 					teleportPlayer(npc, player, TELEPORTS[MTS2], player.getInstanceId());
 | |
| 				}
 | |
| 				return null;
 | |
| 			}
 | |
| 			if ("Enter3".equals(event))
 | |
| 			{
 | |
| 				if ((qs.getInt("book_" + 32821) + qs.getInt("book_" + 32828) + qs.getInt("book_" + 32831) + qs.getInt("book_" + 32834)) != 4)
 | |
| 				{
 | |
| 					qs.startQuestTimer("OpenMovie", 4000);
 | |
| 				}
 | |
| 				teleportPlayer(npc, player, TELEPORTS[HOLYGRAL], player.getInstanceId());
 | |
| 				return null;
 | |
| 			}
 | |
| 			else if ("video".equals(event))
 | |
| 			{
 | |
| 				player.showQuestMovie(29);
 | |
| 				startQuestTimer("teleport", 60000, npc, player);
 | |
| 				cancelQuestTimer("check_follow", npc, player);
 | |
| 				InstanceHolder holder = instanceWorlds.get(player.getInstanceId());
 | |
| 				if (holder != null)
 | |
| 				{
 | |
| 					for (L2Npc h : holder.mobs)
 | |
| 					{
 | |
| 						h.deleteMe();
 | |
| 					}
 | |
| 					holder.mobs.clear();
 | |
| 				}
 | |
| 				return null;
 | |
| 			}
 | |
| 			else if ("teleport".equals(event))
 | |
| 			{
 | |
| 				teleportPlayer(npc, player, TELEPORTS[EE], player.getInstanceId());
 | |
| 				return null;
 | |
| 			}
 | |
| 		}
 | |
| 		else if ("buff".equals(event))
 | |
| 		{
 | |
| 			if (player.isMageClass())
 | |
| 			{
 | |
| 				for (int h : MageBuff)
 | |
| 				{
 | |
| 					npc.setTarget(player);
 | |
| 					npc.doSimultaneousCast(SkillData.getInstance().getSkill(h, 1));
 | |
| 				}
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				for (int h : FighterBuff)
 | |
| 				{
 | |
| 					npc.setTarget(player);
 | |
| 					npc.doSimultaneousCast(SkillData.getInstance().getSkill(h, 1));
 | |
| 				}
 | |
| 			}
 | |
| 			return null;
 | |
| 		}
 | |
| 		else if ("Exit".equals(event))
 | |
| 		{
 | |
| 			cancelQuestTimer("check_follow", npc, player);
 | |
| 			InstanceHolder holder = instanceWorlds.get(player.getInstanceId());
 | |
| 			if (holder != null)
 | |
| 			{
 | |
| 				for (L2Npc h : holder.mobs)
 | |
| 				{
 | |
| 					h.deleteMe();
 | |
| 				}
 | |
| 				holder.mobs.clear();
 | |
| 			}
 | |
| 			teleportPlayer(npc, player, TELEPORTS[EXIT], 0);
 | |
| 			return null;
 | |
| 		}
 | |
| 		else if ("TeleWest".equals(event))
 | |
| 		{
 | |
| 			teleportPlayer(npc, player, TELEPORTS[TW], player.getInstanceId());
 | |
| 			return null;
 | |
| 		}
 | |
| 		else if (event.equalsIgnoreCase("TeleNorth"))
 | |
| 		{
 | |
| 			teleportPlayer(npc, player, TELEPORTS[TN], player.getInstanceId());
 | |
| 			return null;
 | |
| 		}
 | |
| 		else if ("TeleEast".equals(event))
 | |
| 		{
 | |
| 			teleportPlayer(npc, player, TELEPORTS[TE], player.getInstanceId());
 | |
| 			return null;
 | |
| 		}
 | |
| 		else if ("TeleSouth".equals(event))
 | |
| 		{
 | |
| 			teleportPlayer(npc, player, TELEPORTS[TS], player.getInstanceId());
 | |
| 			return null;
 | |
| 		}
 | |
| 		else if ("ReturnToEris".equals(event))
 | |
| 		{
 | |
| 			teleportPlayer(npc, player, TELEPORTS[RTE], player.getInstanceId());
 | |
| 			return null;
 | |
| 		}
 | |
| 		else if ("ReturnToGuardian".equals(event))
 | |
| 		{
 | |
| 			teleportPlayer(npc, player, TELEPORTS[RTG], player.getInstanceId());
 | |
| 			return null;
 | |
| 		}
 | |
| 		else if ("MoveToSaintess".equals(event))
 | |
| 		{
 | |
| 			teleportPlayer(npc, player, TELEPORTS[MTS], player.getInstanceId());
 | |
| 			return null;
 | |
| 		}
 | |
| 		else if ("MoveToSaintess2".equals(event))
 | |
| 		{
 | |
| 			teleportPlayer(npc, player, TELEPORTS[MTS2], player.getInstanceId());
 | |
| 			return null;
 | |
| 		}
 | |
| 		return htmltext;
 | |
| 	}
 | |
| 	
 | |
| 	@Override
 | |
| 	public String onTalk(L2Npc npc, L2PcInstance player)
 | |
| 	{
 | |
| 		String htmltext = getNoQuestMsg(player);
 | |
| 		QuestState st = player.getQuestState(MonasteryOfSilence2.class.getSimpleName());
 | |
| 		if (st == null)
 | |
| 		{
 | |
| 			st = newQuestState(player);
 | |
| 		}
 | |
| 		int npcId = npc.getId();
 | |
| 		if (npcId == OddGlobe)
 | |
| 		{
 | |
| 			if ((player.getQuestState(Q10294_SevenSignsToTheMonasteryOfSilence.class.getSimpleName()) != null) && (player.getQuestState(Q10294_SevenSignsToTheMonasteryOfSilence.class.getSimpleName()).getState() == State.STARTED))
 | |
| 			{
 | |
| 				enterInstance(npc, player);
 | |
| 				return null;
 | |
| 			}
 | |
| 			if ((player.getQuestState(Q10294_SevenSignsToTheMonasteryOfSilence.class.getSimpleName()) != null) && (player.getQuestState(Q10294_SevenSignsToTheMonasteryOfSilence.class.getSimpleName()).getState() == State.COMPLETED) && (player.getQuestState(Q10295_SevenSignsSolinasTomb.class.getSimpleName()) == null))
 | |
| 			{
 | |
| 				enterInstance(npc, player);
 | |
| 				return null;
 | |
| 			}
 | |
| 			if ((player.getQuestState(Q10295_SevenSignsSolinasTomb.class.getSimpleName()) != null) && (player.getQuestState(Q10295_SevenSignsSolinasTomb.class.getSimpleName()).getState() != State.COMPLETED))
 | |
| 			{
 | |
| 				enterInstance(npc, player);
 | |
| 				return null;
 | |
| 			}
 | |
| 			if ((player.getQuestState(Q10295_SevenSignsSolinasTomb.class.getSimpleName()) != null) && (player.getQuestState(Q10295_SevenSignsSolinasTomb.class.getSimpleName()).getState() == State.COMPLETED) && (player.getQuestState(Q10296_SevenSignsPowerOfTheSeal.class.getSimpleName()) == null))
 | |
| 			{
 | |
| 				enterInstance(npc, player);
 | |
| 				return null;
 | |
| 			}
 | |
| 			if ((player.getQuestState(Q10296_SevenSignsPowerOfTheSeal.class.getSimpleName()) != null) && (player.getQuestState(Q10296_SevenSignsPowerOfTheSeal.class.getSimpleName()).getState() != State.COMPLETED))
 | |
| 			{
 | |
| 				enterInstance(npc, player);
 | |
| 				return null;
 | |
| 			}
 | |
| 			htmltext = "<html><body>Odd Globe:<br>The huge mechanism in the form of the globe. Around silent cottons are heard and in air presence of any unknown energy, which which in a way doesn't come under to your influence is felt.</body></html>";
 | |
| 		}
 | |
| 		return htmltext;
 | |
| 	}
 | |
| 	
 | |
| 	public static void main(String[] args)
 | |
| 	{
 | |
| 		new MonasteryOfSilence2();
 | |
| 	}
 | |
| }
 | 
