Ejemplo n.º 1
0
  @Override
  public boolean doDie(L2Character killer) {
    if (!super.doDie(killer)) {
      return false;
    }

    final L2PcInstance player = killer.getActingPlayer();
    if (player != null) {
      broadcastPacket(
          SystemMessage.getSystemMessage(SystemMessageId.CONGRATULATIONS_YOUR_RAID_WAS_SUCCESSFUL));
      if (player.getParty() != null) {
        for (L2PcInstance member : player.getParty().getMembers()) {
          member.setRaidPoints(member.getRaidPoints() + ((getLevel() / 2) + Rnd.get(-5, 5)));
          if (member.isNoble()) {
            Hero.getInstance().setRBkilled(member.getObjectId(), getId());
          }
        }
      } else {
        player.setRaidPoints(player.getRaidPoints() + ((getLevel() / 2) + Rnd.get(-5, 5)));
        if (player.isNoble()) {
          Hero.getInstance().setRBkilled(player.getObjectId(), getId());
        }
      }
    }

    RaidBossSpawnManager.getInstance().updateStatus(this, true);
    return true;
  }
  protected boolean checkQuests(L2PcInstance player) {
    // Noble players can add subbclasses without quests
    if (player.isNoble()) return true;

    QuestState qs = player.getQuestState("234_FatesWhisper");
    if (qs == null || !qs.isCompleted()) return false;

    qs = player.getQuestState("235_MimirsElixir");
    if (qs == null || !qs.isCompleted()) return false;

    return true;
  }
  @Override
  public void onBypassFeedback(L2PcInstance player, String command) {
    if (command.startsWith("1stClass")) {
      showHtmlMenu(player, getObjectId(), 1);
    } else if (command.startsWith("2ndClass")) {
      showHtmlMenu(player, getObjectId(), 2);
    } else if (command.startsWith("3rdClass")) {
      showHtmlMenu(player, getObjectId(), 3);
    } else if (command.startsWith("change_class")) {
      int val = Integer.parseInt(command.substring(13));

      if (checkAndChangeClass(player, val)) {
        NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
        html.setFile(player.getHtmlPrefix(), "data/html/classmaster/ok.htm");
        html.replace("%name%", CharTemplateTable.getInstance().getClassNameById(val));
        player.sendPacket(html);
      }
    } else if (command.startsWith("become_noble")) {
      if (!player.isNoble()) {
        player.setNoble(true);
        player.sendPacket(new UserInfo(player));
        player.sendPacket(new ExBrExtraUserInfo(player));
        NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
        html.setFile(player.getHtmlPrefix(), "data/html/classmaster/nobleok.htm");
        player.sendPacket(html);
      }
    } else if (command.startsWith("learn_skills")) {
      player.giveAvailableSkills(Config.AUTO_LEARN_FS_SKILLS, true);
    } else if (command.startsWith("increase_clan_level")) {
      if (player.getClan() == null || !player.isClanLeader()) {
        NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
        html.setFile(player.getHtmlPrefix(), "data/html/classmaster/noclanleader.htm");
        player.sendPacket(html);
      } else if (player.getClan().getLevel() >= 5) {
        NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
        html.setFile(player.getHtmlPrefix(), "data/html/classmaster/noclanlevel.htm");
        player.sendPacket(html);
      } else {
        player.getClan().changeLevel(5);
      }
    } else {
      super.onBypassFeedback(player, command);
    }
  }