Beispiel #1
0
  private void teleportTo(L2PcInstance activeChar, String Cords) {
    try {
      StringTokenizer st = new StringTokenizer(Cords);
      String x1 = st.nextToken();

      int x = Integer.parseInt(x1);

      String y1 = st.nextToken();

      int y = Integer.parseInt(y1);

      String z1 = st.nextToken();

      int z = Integer.parseInt(z1);

      activeChar.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
      activeChar.teleToLocation(x, y, z, false);

      SystemMessage sm = new SystemMessage(SystemMessageId.S1_S2);
      sm.addString("You have been teleported to " + Cords);
      activeChar.sendPacket(sm);

      sm = null;
      x1 = null;
      y1 = null;
      z1 = null;
      st = null;
    } catch (NoSuchElementException nsee) {
      activeChar.sendMessage("Wrong or no Coordinates given.");
    }
  }
  @Override
  protected void runImpl() {
    if (getClient().getActiveChar() == null) return;

    L2PcInstance _activeChar = getClient().getActiveChar();

    PartyMatchRoom _room = PartyMatchRoomList.getInstance().getRoom(_roomid);
    if (_room == null) return;

    if ((_activeChar.getLevel() >= _room.getMinLvl())
        && (_activeChar.getLevel() <= _room.getMaxLvl())) {
      // Remove from waiting list
      PartyMatchWaitingList.getInstance().removePlayer(_activeChar);

      _activeChar.setPartyRoom(_roomid);

      _activeChar.sendPacket(new PartyMatchDetail(_activeChar, _room));
      _activeChar.sendPacket(new ExPartyRoomMember(_activeChar, _room, 0));

      for (L2PcInstance _member : _room.getPartyMembers()) {
        if (_member == null) continue;

        _member.sendPacket(new ExManagePartyRoomMember(_activeChar, _room, 0));

        SystemMessage sm = new SystemMessage(SystemMessageId.S1_ENTERED_PARTY_ROOM);
        sm.addString(_activeChar.getName());
        _member.sendPacket(sm);
      }
      _room.addMember(_activeChar);

      // Info Broadcast
      _activeChar.broadcastUserInfo();
    } else {
      _activeChar.sendPacket(new SystemMessage(SystemMessageId.CANT_ENTER_PARTY_ROOM));
    }
  }
  public void assignSubPledgeLeader(L2PcInstance player, String clanName, String leaderName) {
    if (Config.DEBUG) {
      _log.info(
          player.getObjectId()
              + "("
              + player.getName()
              + ") requested to assign sub clan"
              + clanName
              + "leader "
              + "("
              + leaderName
              + ")");
    }

    if (!player.isClanLeader()) {
      player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT));
      return;
    }

    if (leaderName.length() > 16) {
      player.sendPacket(new SystemMessage(SystemMessageId.NAMING_CHARNAME_UP_TO_16CHARS));
      return;
    }

    if (player.getName().equals(leaderName)) {
      player.sendPacket(
          new SystemMessage(SystemMessageId.CAPTAIN_OF_ROYAL_GUARD_CANNOT_BE_APPOINTED));
      return;
    }

    L2Clan clan = player.getClan();
    SubPledge subPledge = player.getClan().getSubPledge(clanName);
    if (null == subPledge) {
      player.sendPacket(new SystemMessage(SystemMessageId.CLAN_NAME_INCORRECT));
      return;
    }

    if (subPledge.getId() == L2Clan.SUBUNIT_ACADEMY) {
      player.sendPacket(new SystemMessage(SystemMessageId.CLAN_NAME_INCORRECT));
      return;
    }

    if (clan.getClanMember(leaderName) == null
        || clan.getClanMember(leaderName).getPledgeType() != 0) {
      if (subPledge.getId() >= L2Clan.SUBUNIT_KNIGHT1) {
        player.sendPacket(
            new SystemMessage(SystemMessageId.CAPTAIN_OF_ORDER_OF_KNIGHTS_CANNOT_BE_APPOINTED));
      } else if (subPledge.getId() >= L2Clan.SUBUNIT_ROYAL1) {
        player.sendPacket(
            new SystemMessage(SystemMessageId.CAPTAIN_OF_ROYAL_GUARD_CANNOT_BE_APPOINTED));
      }
      return;
    }

    L2ClanMember leaderSubPledge = clan.getClanMember(leaderName);
    subPledge.setLeaderId(leaderSubPledge.getObjectId());
    clan.updateSubPledgeInDB(subPledge.getId());
    L2PcInstance leaderPlayer = leaderSubPledge.getPlayerInstance();
    if (leaderPlayer != null) {
      leaderPlayer.setPledgeClass(leaderSubPledge.calculatePledgeClass(leaderPlayer));
      leaderPlayer.sendPacket(new UserInfo(leaderPlayer));
    }
    clan.broadcastClanStatus();
    SystemMessage sm = new SystemMessage(SystemMessageId.S1_HAS_BEEN_SELECTED_AS_CAPTAIN_OF_S2);
    sm.addString(leaderName);
    sm.addString(clanName);
    clan.broadcastToOnlineMembers(sm);
    sm = null;
    clan = null;
    subPledge = null;
    leaderPlayer = null;
    leaderSubPledge = null;
  }
  public void createSubPledge(
      L2PcInstance player, String clanName, String leaderName, int pledgeType, int minClanLvl) {
    if (Config.DEBUG) {
      _log.info(
          player.getObjectId()
              + "("
              + player.getName()
              + ") requested sub clan creation from "
              + getObjectId()
              + "("
              + getName()
              + ")");
    }

    if (!player.isClanLeader()) {
      player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT));
      return;
    }

    L2Clan clan = player.getClan();
    if (clan.getLevel() < minClanLvl) {
      if (pledgeType == L2Clan.SUBUNIT_ACADEMY) {
        player.sendPacket(
            new SystemMessage(
                SystemMessageId.YOU_DO_NOT_MEET_CRITERIA_IN_ORDER_TO_CREATE_A_CLAN_ACADEMY));
      } else {
        player.sendPacket(
            new SystemMessage(
                SystemMessageId.YOU_DO_NOT_MEET_CRITERIA_IN_ORDER_TO_CREATE_A_MILITARY_UNIT));
      }
      return;
    }

    if (!Util.isAlphaNumeric(clanName) || 2 > clanName.length()) {
      player.sendPacket(new SystemMessage(SystemMessageId.CLAN_NAME_INCORRECT));
      return;
    }

    if (clanName.length() > 16) {
      player.sendPacket(new SystemMessage(SystemMessageId.CLAN_NAME_TOO_LONG));
      return;
    }
    for (L2Clan tempClan : ClanTable.getInstance().getClans()) {
      if (tempClan.getSubPledge(clanName) != null) {
        if (pledgeType == L2Clan.SUBUNIT_ACADEMY) {
          SystemMessage sm = new SystemMessage(SystemMessageId.S1_ALREADY_EXISTS);
          sm.addString(clanName);
          player.sendPacket(sm);
          sm = null;
        } else {
          player.sendPacket(
              new SystemMessage(SystemMessageId.ANOTHER_MILITARY_UNIT_IS_ALREADY_USING_THAT_NAME));
        }
        return;
      }
    }

    if (pledgeType != L2Clan.SUBUNIT_ACADEMY)
      if (clan.getClanMember(leaderName) == null
          || clan.getClanMember(leaderName).getPledgeType() != 0) {
        if (pledgeType >= L2Clan.SUBUNIT_KNIGHT1) {
          player.sendPacket(
              new SystemMessage(SystemMessageId.CAPTAIN_OF_ORDER_OF_KNIGHTS_CANNOT_BE_APPOINTED));
        } else if (pledgeType >= L2Clan.SUBUNIT_ROYAL1) {
          player.sendPacket(
              new SystemMessage(SystemMessageId.CAPTAIN_OF_ROYAL_GUARD_CANNOT_BE_APPOINTED));
        }
        return;
      }

    int leaderId =
        clan.getClanMember(leaderName) != null ? clan.getClanMember(leaderName).getObjectId() : 0;

    if (clan.createSubPledge(player, pledgeType, leaderId, clanName) == null) return;

    SystemMessage sm;
    if (pledgeType == L2Clan.SUBUNIT_ACADEMY) {
      sm = new SystemMessage(SystemMessageId.THE_S1S_CLAN_ACADEMY_HAS_BEEN_CREATED);
      sm.addString(player.getClan().getName());
    } else if (pledgeType >= L2Clan.SUBUNIT_KNIGHT1) {
      sm = new SystemMessage(SystemMessageId.THE_KNIGHTS_OF_S1_HAVE_BEEN_CREATED);
      sm.addString(player.getClan().getName());
    } else if (pledgeType >= L2Clan.SUBUNIT_ROYAL1) {
      sm = new SystemMessage(SystemMessageId.THE_ROYAL_GUARD_OF_S1_HAVE_BEEN_CREATED);
      sm.addString(player.getClan().getName());
    } else {
      sm = new SystemMessage(SystemMessageId.CLAN_CREATED);
    }

    player.sendPacket(sm);
    if (pledgeType != L2Clan.SUBUNIT_ACADEMY) {
      L2ClanMember leaderSubPledge = clan.getClanMember(leaderName);
      if (leaderSubPledge.getPlayerInstance() == null) return;

      leaderSubPledge
          .getPlayerInstance()
          .setPledgeClass(
              leaderSubPledge.calculatePledgeClass(leaderSubPledge.getPlayerInstance()));
      leaderSubPledge
          .getPlayerInstance()
          .sendPacket(new UserInfo(leaderSubPledge.getPlayerInstance()));
    }
    clan = null;
    sm = null;
  }
  public void changeClanLeader(L2PcInstance player, String target) {
    if (Config.DEBUG) {
      _log.info(
          player.getObjectId()
              + "("
              + player.getName()
              + ") requested change a clan leader from "
              + getObjectId()
              + "("
              + getName()
              + ")");
    }

    if (!player.isClanLeader()) {
      player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT));
      return;
    }

    if (player.isFlying()) {
      player.sendMessage("Get off the Wyvern first.");
      return;
    }

    if (player.getName().equalsIgnoreCase(target)) return;

    L2Clan clan = player.getClan();
    L2ClanMember member = clan.getClanMember(target);
    if (member == null) {
      SystemMessage sm = new SystemMessage(SystemMessageId.S1_DOES_NOT_EXIST);
      sm.addString(target);
      player.sendPacket(sm);
      sm = null;
      return;
    }

    if (!member.isOnline()) {
      player.sendPacket(new SystemMessage(SystemMessageId.INVITED_USER_NOT_ONLINE));
      return;
    }

    if (member.getPledgeType() == L2Clan.SUBUNIT_ACADEMY) {
      player.sendMessage("Can`t give to academy member.");
      return;
    }

    for (Siege siege : SiegeManager.getInstance().getSieges()) {
      if (!siege.getIsInProgress()) {
        continue;
      }

      if (siege.checkIsAttacker(clan) || siege.checkIsDefender(clan)) {
        player.sendMessage("You are not authorized to do that during the siege.");
        return;
      }
    }

    clan.setNewLeader(member);

    clan = null;
    member = null;
  }
Beispiel #6
0
  private void recallNPC(L2PcInstance activeChar) {
    L2Object obj = activeChar.getTarget();

    if (obj != null && obj.isNpc) {
      L2NpcInstance target = (L2NpcInstance) obj;

      int monsterTemplate = target.getTemplate().npcId;

      L2NpcTemplate template1 = NpcTable.getInstance().getTemplate(monsterTemplate);

      if (template1 == null) {
        activeChar.sendMessage("Incorrect monster template.");
        _log.warn("ERROR: NPC " + target.getObjectId() + " has a 'null' template.");
        return;
      }

      L2Spawn spawn = target.getSpawn();

      if (spawn == null) {
        activeChar.sendMessage("Incorrect monster spawn.");
        _log.warn("ERROR: NPC " + target.getObjectId() + " has a 'null' spawn.");
        return;
      }

      int respawnTime = spawn.getRespawnDelay();

      target.deleteMe();
      spawn.stopRespawn();
      SpawnTable.getInstance().deleteSpawn(spawn, true);

      try {
        // L2MonsterInstance mob = new L2MonsterInstance(monsterTemplate, template1);

        spawn = new L2Spawn(template1);
        spawn.setLocx(activeChar.getX());
        spawn.setLocy(activeChar.getY());
        spawn.setLocz(activeChar.getZ());
        spawn.setAmount(1);
        spawn.setHeading(activeChar.getHeading());
        spawn.setRespawnDelay(respawnTime);
        SpawnTable.getInstance().addNewSpawn(spawn, true);
        spawn.init();

        SystemMessage sm = new SystemMessage(SystemMessageId.S1_S2);
        sm.addString("Created " + template1.name + " on " + target.getObjectId() + ".");
        activeChar.sendPacket(sm);
        sm = null;

        if (Config.DEBUG) {
          _log.info(
              "Spawn at X=" + spawn.getLocx() + " Y=" + spawn.getLocy() + " Z=" + spawn.getLocz());
          _log.warn(
              "GM: "
                  + activeChar.getName()
                  + "("
                  + activeChar.getObjectId()
                  + ") moved NPC "
                  + target.getObjectId());
        }

        spawn = null;
        template1 = null;
        target = null;
      } catch (Exception e) {
        activeChar.sendMessage("Target is not in game.");
      }
    } else {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.INCORRECT_TARGET));
    }

    obj = null;
  }