protected void spawnNPC(DNPWorld world) { for (Map.Entry<Integer, Location> entry : LILITH_SPAWN.entrySet()) { final L2Npc npc = addSpawn(entry.getKey(), entry.getValue(), false, 0, false, world.getInstanceId()); world.lilithGroup.add(npc); } for (Map.Entry<Integer, Location> entry : ANAKIM_SPAWN.entrySet()) { final L2Npc enpc = addSpawn(entry.getKey(), entry.getValue(), false, 0, false, world.getInstanceId()); world.anakimGroup.add(enpc); } }
@Override public String onTalk(L2Npc npc, L2PcInstance talker) { final QuestState qs = talker.getQuestState(Q00196_SevenSignsSealOfTheEmperor.class.getSimpleName()); String htmltext = getNoQuestMsg(talker); if (qs == null) { return htmltext; } switch (npc.getId()) { case PROMISE_OF_MAMMON: { if (qs.isCond(3) || qs.isCond(4)) { enterInstance(talker, new DNPWorld(), "DisciplesNecropolisPast.xml", TEMPLATE_ID); return ""; } break; } case LEON: { if (qs.getCond() >= 3) { takeItems(talker, SACRED_SWORD_OF_EINHASAD, -1); InstanceWorld world = InstanceManager.getInstance().getPlayerWorld(talker); world.removeAllowed(talker.getObjectId()); talker.teleToLocation(EXIT, 0); htmltext = "32587-01.html"; } break; } case DISCIPLES_GATEKEEPER: { if (qs.getCond() >= 3) { InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc.getInstanceId()); if (tmpworld instanceof DNPWorld) { DNPWorld world = (DNPWorld) tmpworld; openDoor(DISCIPLES_NECROPOLIS_DOOR, world.getInstanceId()); talker.showQuestMovie(12); startQuestTimer("FIGHT", 1000, null, talker); } } break; } } return htmltext; }
private synchronized void checkDoors(L2Npc npc, DNPWorld world) { world.countKill++; switch (world.countKill) { case 4: openDoor(DOOR_1, world.getInstanceId()); break; case 10: openDoor(DOOR_2, world.getInstanceId()); break; case 18: openDoor(DOOR_3, world.getInstanceId()); break; case 28: openDoor(DOOR_4, world.getInstanceId()); break; case 40: openDoor(DOOR_5, world.getInstanceId()); break; } }