Package com.l2jfrozen.gameserver.model.actor.instance

Examples of com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance


  }

  @Override
  protected void runImpl()
  {
    L2PcInstance player = getClient().getActiveChar();

    if (player == null)
      return;

    if (!player.getAccessLevel().allowTransaction())
    {
      player.sendMessage("Unsufficient privileges.");
      player.sendPacket(ActionFailed.STATIC_PACKET);
      return;
    }

    L2PcInstance partner = player.getActiveRequester();

    if (partner == null || L2World.getInstance().findObject(partner.getObjectId()) == null)
    {
      // Trade partner not found, cancel trade
      player.sendPacket(new SendTradeDone(0));
      player.sendPacket(new SystemMessage(SystemMessageId.TARGET_IS_NOT_FOUND_IN_THE_GAME));
      player.setActiveRequester(null);
      return;
    }

    if (_response == 1 && !partner.isRequestExpired())
      player.startTrade(partner);
    else
    {
      partner.sendPacket(new SystemMessage(SystemMessageId.S1_DENIED_TRADE_REQUEST).addString(player.getName()));
      player.sendPacket(ActionFailed.STATIC_PACKET);
    }

    // Clears requesting status
    player.setActiveRequester(null);
    partner.onTransactionResponse();
  }
View Full Code Here


  }

  @Override
  protected void runImpl()
  {
    L2PcInstance activeChar = getClient().getActiveChar();
    if(activeChar == null)
      return;

    int points = RaidBossPointsManager.getPointsByOwnerId(activeChar.getObjectId());
    int ranking = RaidBossPointsManager.calculateRanking(activeChar.getObjectId());

    // trigger packet
    activeChar.sendPacket(new ExGetBossRecord(ranking, points, RaidBossPointsManager.getList(activeChar)));
    sendPacket(ActionFailed.STATIC_PACKET);
  }
View Full Code Here

  }

  @Override
  protected void runImpl()
  {
    L2PcInstance activeChar = getClient().getActiveChar();

    if(activeChar == null)
      return;

    if(!(L2World.getInstance().findObject(_id) instanceof L2PcInstance))
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_INVITED_THE_WRONG_TARGET));
      return;
    }

    if(activeChar.getClan() == null)
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_A_CLAN_MEMBER));
      return;
    }

    L2PcInstance target = (L2PcInstance) L2World.getInstance().findObject(_id);
    L2Clan clan = activeChar.getClan();

    if(!clan.checkAllyJoinCondition(activeChar, target))
      return;

    if(!activeChar.getRequest().setRequest(target, this))
      return;

    SystemMessage sm = new SystemMessage(SystemMessageId.S2_ALLIANCE_LEADER_OF_S1_REQUESTED_ALLIANCE);
    sm.addString(activeChar.getClan().getAllyName());
    sm.addString(activeChar.getName());
    target.sendPacket(sm);
    sm = null;
    AskJoinAlly aja = new AskJoinAlly(activeChar.getObjectId(), activeChar.getClan().getAllyName());
    target.sendPacket(aja);
    return;
  }
View Full Code Here

      StringTokenizer st = new StringTokenizer(command);
      if(st.countTokens() > 1)
      {
        st.nextToken();
        String plyr = st.nextToken();
        L2PcInstance playerToKick = L2World.getInstance().getPlayer(plyr);
        if(playerToKick != null)
        {
          TvT.kickPlayerFromTvt(playerToKick);
          activeChar.sendMessage("You kicked " + playerToKick.getName() + " from the TvT.");
        }
        else
          activeChar.sendMessage("Wrong usege: //tvtkick <player>");
      }
    }
View Full Code Here

  }

  private void disconnectCharacter(L2PcInstance activeChar)
  {
    L2Object target = activeChar.getTarget();
    L2PcInstance player = null;

    if(target instanceof L2PcInstance)
    {
      player = (L2PcInstance) target;
    }
    else
      return;

    target = null;

    if(player.getObjectId() == activeChar.getObjectId())
    {
      SystemMessage sm = new SystemMessage(SystemMessageId.S1_S2);
      sm.addString("You cannot logout your character.");
      activeChar.sendPacket(sm);
      sm = null;
    }
    else
    {
      SystemMessage sm = new SystemMessage(SystemMessageId.S1_S2);
      sm.addString("Character " + player.getName() + " disconnected from server.");
      activeChar.sendPacket(sm);

      //Logout Character
      LeaveWorld ql = new LeaveWorld();
      player.sendPacket(ql);
      ql = null;

      RegionBBSManager.getInstance().changeCommunityBoard();

      player.closeNetConnection();
    }

    player = null;
  }
View Full Code Here

 
  @SuppressWarnings("resource")
  @Override
  protected void runImpl()
  {
    L2PcInstance activeChar = getClient().getActiveChar();
   
    if (activeChar == null)
      return;
   
    switch (_type)
    {
      case BLOCK:
      case UNBLOCK:
       
        L2PcInstance _target = L2World.getInstance().getPlayer(_name);
       
        if (_target == null)
        {
          // Incorrect player name.
          activeChar.sendPacket(new SystemMessage(SystemMessageId.FAILED_TO_REGISTER_TO_IGNORE_LIST));
          return;
        }
       
        if (_target.isGM())
        {
          // Cannot block a GM character.
          activeChar.sendPacket(new SystemMessage(SystemMessageId.YOU_MAY_NOT_IMPOSE_A_BLOCK_AN_A_GM));
          return;
        }
       
        if (_type == BLOCK)
        {
         
          if (activeChar.getBlockList().isInBlockList(_name))
          {
            // Player is already in your blocklist
            activeChar.sendPacket(new SystemMessage(SystemMessageId.FAILED_TO_REGISTER_TO_IGNORE_LIST));
            return;
          }
         
          activeChar.getBlockList().addToBlockList(_name);
         
          Connection con = null;
          try
          {
            con = L2DatabaseFactory.getInstance().getConnection(false);
            PreparedStatement statement = con.prepareStatement("SELECT * FROM character_friends WHERE char_id = ? AND friend_name = ?");
            statement.setInt(1, activeChar.getObjectId());
            statement.setString(2, _name);
            ResultSet rset = statement.executeQuery();
           
            if (rset.next())
            {
             
              statement = con.prepareStatement("UPDATE character_friends SET not_blocked = ? WHERE char_id = ? AND friend_name = ?");
              statement.setInt(1, _type);
              statement.setInt(2, activeChar.getObjectId());
              statement.setString(3, _name);
              statement.execute();
             
            }
            else
            {
             
              statement = con.prepareStatement("INSERT INTO character_friends (char_id, friend_id, friend_name, not_blocked) VALUES (?, ?, ?, ?)");
              statement.setInt(1, activeChar.getObjectId());
              statement.setInt(2, _target.getObjectId());
              statement.setString(3, _target.getName());
              statement.setInt(4, _type);
              statement.execute();
             
            }
           
View Full Code Here

  }

  @Override
  protected void runImpl()
  {
    L2PcInstance player = getClient().getActiveChar();
    if(player == null)
      return;

    if (!getClient().getFloodProtectors().getTransaction().tryPerformAction("trade"))
    {
      player.sendMessage("You trading too fast.");
      return;
    }
   
   
    TradeList trade = player.getActiveTradeList();
    if(trade == null)
    {
      //_log.warning("player.getTradeList == null in " + getType() + " for player " + player.getName());
      return;
    }

    if(trade.getOwner().getActiveEnchantItem() != null || trade.getPartner().getActiveEnchantItem() != null)
      return;

    if(trade.isLocked())
      return;

    //abort cast anyway
    player.abortCast(true);
   
    if(player.isCastingNow() || player.isCastingPotionNow())
    {
      player.sendPacket(ActionFailed.STATIC_PACKET);
      return;
    }

    if(_response == 1)
    {
      if(trade.getPartner() == null || L2World.getInstance().findObject(trade.getPartner().getObjectId()) == null)
      {
        // Trade partner not found, cancel trade
        player.cancelActiveTrade();
        SystemMessage msg = new SystemMessage(SystemMessageId.TARGET_IS_NOT_FOUND_IN_THE_GAME);
        player.sendPacket(msg);
        msg = null;
        return;
      }

      if(!player.getAccessLevel().allowTransaction())
      {
        player.sendMessage("Unsufficient privileges.");
        player.cancelActiveTrade();
        player.sendPacket(ActionFailed.STATIC_PACKET);
        return;
      }
      trade.confirm();
    }
    else
    {
      player.cancelActiveTrade();
    }
  }
View Full Code Here

  }

  @Override
  protected void runImpl()
  {
    L2PcInstance activeChar = getClient().getActiveChar();

    if (activeChar == null)
    {
      _log.warning("EnterWorld failed! activeChar is null...");
      getClient().closeNow();
      return;
    }

    // Set lock at login
    activeChar.setLocked(true);

    // Register in flood protector
    //FloodProtector.getInstance().registerNewPlayer(activeChar.getObjectId());

    if (L2World.getInstance().findObject(activeChar.getObjectId()) != null)
    {
      if (Config.DEBUG)
      {
        _log.warning("DEBUG "+getType()+": User already exist in OID map! User " + activeChar.getName() + " is character clone");
        //activeChar.closeNetConnection(); // Do nothing?
      }
    }
   
    if (!activeChar.isGM() && !activeChar.isDonator() && Config.CHECK_NAME_ON_LOGIN)
    {
      if (activeChar.getName().length() < 3 || activeChar.getName().length() > 16 || !Util.isAlphaNumeric(activeChar.getName()) || !isValidName(activeChar.getName()))
      {
        _log.warning("Charname: " + activeChar.getName() + " is invalid. EnterWorld failed.");
        getClient().closeNow();
        return;
     
    }

    // Set online status
    activeChar.setOnlineStatus(true);

    activeChar.setRunning(); // running is default
    activeChar.standUp(); // standing is default
   
    activeChar.broadcastKarma(); //include UserInfo
   
    // Engage and notify Partner
    if (Config.L2JMOD_ALLOW_WEDDING)
    {
      engage(activeChar);
      notifyPartner(activeChar, activeChar.getPartnerId());
    }

    if (LastManStanding.isInActive())
    {
      if (activeChar.isInsideZone(L2Character.ZONE_EVENT))
      {
      if (activeChar.isDead())
      {
        activeChar.doRevive();
      }
      activeChar.teleToLocation(MapRegionTable.TeleportWhereType.Town);
      }
    }
   
     if (DM._joining || DM.is_started())
    {
      if (activeChar.isInsideZone(L2Character.ZONE_DM))
      {
      if (activeChar.isDead())
      {
        activeChar.doRevive();
      }
      activeChar.teleToLocation(MapRegionTable.TeleportWhereType.Town);
      }
    }
   
     if (activeChar.isInsideZone(L2Character.ZONE_KAMALOKA) && !activeChar.isInKamaloka())
      {
      if (activeChar.isDead())
      {
        activeChar.doRevive();
      }
      activeChar.teleToLocation(MapRegionTable.TeleportWhereType.Town);
      }
   
    EnterGM(activeChar);

    Quest.playerEnter(activeChar);
    activeChar.sendPacket(new QuestList());

    if (Config.PLAYER_SPAWN_PROTECTION > 0)
      activeChar.setProtection(true);

    activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());

    if (SevenSigns.getInstance().isSealValidationPeriod())
      sendPacket(new SignsSky());

    // Buff and Status icons
    if(Config.STORE_SKILL_COOLTIME)
    {
      activeChar.restoreEffects();
    }

    activeChar.sendPacket(new EtcStatusUpdate(activeChar));
   
    final L2Effect[] effects = activeChar.getAllEffects();
   
    if (effects != null)
    {
      for (L2Effect e : effects)
      {
        if (e.getEffectType() == L2Effect.EffectType.HEAL_OVER_TIME)
        {
          activeChar.stopEffects(L2Effect.EffectType.HEAL_OVER_TIME);
          activeChar.removeEffect(e);
        }
        if (e.getEffectType() == L2Effect.EffectType.COMBAT_POINT_HEAL_OVER_TIME)
        {
          activeChar.stopEffects(L2Effect.EffectType.COMBAT_POINT_HEAL_OVER_TIME);
          activeChar.removeEffect(e);
        }
      }
    }

    // Apply augmentation boni for equipped items
    for (L2ItemInstance temp : activeChar.getInventory().getAugmentedItems())
      if (temp != null && temp.isEquipped())
        temp.getAugmentation().applyBoni(activeChar);
   
    // Apply death penalty
    activeChar.restoreDeathPenaltyBuffLevel();

    if(L2Event.active && L2Event.connectionLossData.containsKey(activeChar.getName()) && L2Event.isOnEvent(activeChar))
      L2Event.restoreChar(activeChar);
    else if (L2Event.connectionLossData.containsKey(activeChar.getName()))
      L2Event.restoreAndTeleChar(activeChar);

    // SECURE FIX - Anti Overenchant Cheat!!
    if(Config.MAX_ITEM_ENCHANT_KICK >0)
    {
      for (L2ItemInstance i : activeChar.getInventory().getItems())
      {
        if (!activeChar.isGM())
        { 
          if (i.isEquipable())
          { 
            if (i.getEnchantLevel() > Config.MAX_ITEM_ENCHANT_KICK)
            {                       
              //Delete Item Over enchanted
              activeChar.getInventory().destroyItem(null, i, activeChar, null);
              //Message to Player
              activeChar.sendMessage("[Server]: You have over enchanted items you will be kicked from server!");
              activeChar.sendMessage("[Server]: Respect our server rules.");
              //Message with screen
              sendPacket(new ExShowScreenMessage(" You have an over enchanted item, you will be kicked from server! ", 6000));
              //Punishment e log in audit
              Util.handleIllegalPlayerAction(activeChar, "Player " + activeChar.getName() + " has Overenchanted  item! Kicked! ", Config.DEFAULT_PUNISH);                    
              //Logger in console
              _log.info("#### ATTENTION ####");
              _log.info(i+" item has been removed from "+activeChar);
            }

          }
        }
      }
    }
 
    // Restores custom status
    activeChar.restoreCustomStatus();
   
    // Restores custom statuses and hwid bind
    StatusDbUpdater.updatePlayer(activeChar);

    ColorSystem(activeChar);

    // Expand Skill
    ExStorageMaxCount esmc = new ExStorageMaxCount(activeChar);
    activeChar.sendPacket(esmc);

    activeChar.getMacroses().sendUpdate();
   
    // Send packets info
    sendPacket(new ClientSetTime()); // SetClientTime
    sendPacket(new UserInfo(activeChar)); //
    sendPacket(new HennaInfo(activeChar));
    sendPacket(new FriendList(activeChar));
    sendPacket(new ItemList(activeChar, false));
    sendPacket(new ShortCutInit(activeChar));

    // Send all skills to char
    activeChar.sendSkillList();
   
    if(RankPvpSystemConfig.NICK_COLOR_ENABLED || RankPvpSystemConfig.TITLE_COLOR_ENABLED)
    {
      KillerPvpStats activeCharPvpStats = PvpTable.getInstance().getKillerPvpStats(activeChar.getObjectId());
     
      if(RankPvpSystemConfig.NICK_COLOR_ENABLED)
      {
        if (!activeChar.isGM())
        {
        activeChar.getAppearance().setNameColor(activeCharPvpStats.getRank().getNickColor());
        activeChar.sendPacket(new UserInfo(activeChar));
        activeChar.broadcastUserInfo();
        }
      }
     
      if(RankPvpSystemConfig.TITLE_COLOR_ENABLED)
      {
        if (!activeChar.isGM())
        {
        activeChar.getAppearance().setTitleColor(activeCharPvpStats.getRank().getTitleColor());
        activeChar.broadcastUserInfo();
        }
      }
    }
   
    // Reload inventory to give SA skill
    activeChar.getInventory().reloadEquippedItems();
   
   
    // Welcome to Lineage II
    sendPacket(new SystemMessage(SystemMessageId.WELCOME_TO_LINEAGE));

    SevenSigns.getInstance().sendCurrentPeriodMsg(activeChar);
    Announcements.getInstance().showAnnouncements(activeChar);
   
    loadTutorial(activeChar);
   
    // Check for crowns
    CrownManager.getInstance().checkCrowns(activeChar);

    // Check player skills
    if (Config.CHECK_SKILLS_ON_ENTER && !Config.ALT_GAME_SKILL_LEARN)
    {
        if (!activeChar.isAio())
        {
            activeChar.checkAllowedSkills();
        }
    }

    PetitionManager.getInstance().checkPetitionMessages(activeChar);

    // Send user info again .. just like the real client
    //sendPacket(ui);

    if (activeChar.getClanId() != 0 && activeChar.getClan() != null)
    {
      sendPacket(new PledgeShowMemberListAll(activeChar.getClan(), activeChar));
      sendPacket(new PledgeStatusChanged(activeChar.getClan()));
    }

    if (activeChar.isAlikeDead())
      sendPacket(new Die(activeChar)); // No broadcast needed since the player will already spawn dead to others

    if (Config.ALLOW_WATER)
      activeChar.checkWaterState();

    if (Hero.getInstance().getHeroes() != null && Hero.getInstance().getHeroes().containsKey(activeChar.getObjectId()))
      activeChar.setHero(true);

    setPledgeClass(activeChar);

    for (String name : activeChar.getFriendList())
    {
      L2PcInstance friend = L2World.getInstance().getPlayer(name);

      if (friend != null) //friend logged in.
        friend.sendPacket(new SystemMessage(SystemMessageId.FRIEND_S1_HAS_LOGGED_IN).addString(activeChar.getName()));
    }
   
    notifyClanMembers(activeChar);
    notifySponsorOrApprentice(activeChar);
View Full Code Here

    int y = loc.getY();
    int z = loc.getZ();

    if(this instanceof L2PcInstance && DimensionalRiftManager.getInstance().checkIfInRiftZone(getX(), getY(), getZ(), true))
    { // true -> ignore waiting room :)
      L2PcInstance player = (L2PcInstance) this;
      player.sendMessage("You have been sent to the waiting room.");

      if(player.isInParty() && player.getParty().isInDimensionalRift())
      {
        player.getParty().getDimensionalRift().usedTeleport(player);
      }

      int[] newCoords = DimensionalRiftManager.getInstance().getRoom((byte) 0, (byte) 0).getTeleportCoords();

      x = newCoords[0];
View Full Code Here

    {
      hitted = doAttackHitSimple(attack, target, timeToHit);
    }
   
    // Flag the attacker if it's a L2PcInstance outside a PvP area
    L2PcInstance player = null;

    if(this instanceof L2PcInstance)
    {
      player = (L2PcInstance) this;
    }
    else if(this instanceof L2Summon)
    {
      player = ((L2Summon) this).getOwner();
    }

    if(player != null)
    {
      player.updatePvPStatus(target);
    }

    // Check if hit isn't missed
    if(!hitted)
    {
      //MAJAX fix
      sendPacket(new SystemMessage(SystemMessageId.MISSED_TARGET));
      // Abort the attack of the L2Character and send Server->Client ActionFailed packet
      abortAttack();
    }
    else
    {
      /* ADDED BY nexus - 2006-08-17
       *
       * As soon as we know that our hit landed, we must discharge any active soulshots.
       * This must be done so to avoid unwanted soulshot consumption.
       */

      // If we didn't miss the hit, discharge the shoulshots, if any
      if(this instanceof L2Summon && !(this instanceof L2PetInstance))
      {
        ((L2Summon) this).setChargedSoulShot(L2ItemInstance.CHARGED_NONE);
      }
      else if(weaponInst != null)
      {
        weaponInst.setChargedSoulshot(L2ItemInstance.CHARGED_NONE);
      }

      if(player != null)
      {
        if(player.isCursedWeaponEquiped())
        {
          // If hitted by a cursed weapon, Cp is reduced to 0
          if(!target.isInvul())
          {
            target.setCurrentCp(0);
          }
        }
        else if(player.isHero())
        {
          if(target instanceof L2PcInstance && ((L2PcInstance) target).isCursedWeaponEquiped())
          {
            // If a cursed weapon is hitted by a Hero, Cp is reduced to 0
            target.setCurrentCp(0);
View Full Code Here

TOP

Related Classes of com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.