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;
   }
 }