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

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


  }
 
  @Override
  protected void runImpl()
  {
    L2PcInstance activeChar = getClient().getActiveChar();
    if (activeChar == null)
      return;
   
    if (activeChar.getClan() == null)
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_A_CLAN_MEMBER));
      return;
    }
   
    if (activeChar.isClanLeader())
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.CLAN_LEADER_CANNOT_WITHDRAW));
      return;
    }
   
    if (activeChar.isInCombat())
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_LEAVE_DURING_COMBAT));
      return;
    }
   
    L2Clan clan = activeChar.getClan();
   
    clan.removeClanMember(activeChar.getName(), System.currentTimeMillis() + Config.ALT_CLAN_JOIN_DAYS * 86400000L); // 24*60*60*1000 = 86400000
   
    SystemMessage sm = new SystemMessage(SystemMessageId.S1_HAS_WITHDRAWN_FROM_THE_CLAN);
    sm.addString(activeChar.getName());
    clan.broadcastToOnlineMembers(sm);
    sm = null;
   
    // Remove the Player From the Member list
    clan.broadcastToOnlineMembers(new PledgeShowMemberListDelete(activeChar.getName()));
   
    activeChar.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_WITHDRAWN_FROM_CLAN));
    activeChar.sendPacket(new SystemMessage(SystemMessageId.YOU_MUST_WAIT_BEFORE_JOINING_ANOTHER_CLAN));
    activeChar.setActiveWarehouse(null);
  }
View Full Code Here


  }

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

    if(player == null)
      return;
   
    //Macro exploit fix
    if (!getClient().getFloodProtectors().getMacro().tryPerformAction("make macro"))
      return;

    if(_commandsLenght > 255)
    {
      //Invalid macro. Refer to the Help file for instructions.
      player.sendPacket(new SystemMessage(SystemMessageId.INVALID_MACRO));
      return;
    }

    if(player.getMacroses().getAllMacroses().length > 24)
    {
      //You may create up to 24 macros.
      player.sendPacket(new SystemMessage(SystemMessageId.YOU_MAY_CREATE_UP_TO_24_MACROS));
      return;
    }

    if(_macro.name.length() == 0)
    {
      //Enter the name of the macro.
      player.sendPacket(new SystemMessage(SystemMessageId.ENTER_THE_MACRO_NAME));
      return;
    }

    if(_macro.descr.length() > 32)
    {
      //Macro descriptions may contain up to 32 characters.
      player.sendPacket(new SystemMessage(SystemMessageId.MACRO_DESCRIPTION_MAX_32_CHARS));
      return;
    }
   
    //Security Check
    for(L2MacroCmd command:_macro.commands){
     
      if(!checkSecurityOnCommand(command)){
       
        //Invalid macro. Refer to the Help file for instructions.
        player.sendPacket(new SystemMessage(SystemMessageId.INVALID_MACRO));
        player.sendMessage("SecurityCheck: not more then 2x ',' or 2x ';' in the same command");
        return;
       
      }
     
    }
   
    player.registerMacro(_macro);
  }
View Full Code Here

  }

  @Override
  protected void runImpl()
  {
    L2PcInstance player = getClient().getActiveChar();
    if(player == null || !(player.getPet() instanceof L2PetInstance))
      return;

    if (!getClient().getFloodProtectors().getTransaction().tryPerformAction("giveitemtopet"))
    {
      player.sendMessage("You give items to pet too fast.");
      return;
    }

   
    // Alt game - Karma punishment
    if(!Config.ALT_GAME_KARMA_PLAYER_CAN_TRADE && player.getKarma() > 0)
      return;

    if(player.getPrivateStoreType() != 0)
    {
      player.sendMessage("Cannot exchange items while trading");
      return;
    }

    if(player.isCastingNow()|| player.isCastingPotionNow())
    {
      return;
    }

    if(player.getActiveEnchantItem() != null)
    {
      Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " Tried To Use Enchant Exploit And Got Banned!", IllegalPlayerAction.PUNISH_KICKBAN);
      return;
    }

    L2ItemInstance item = player.getInventory().getItemByObjectId(_objectId);

    if(item == null)
      return;
   
    if(item.isAugmented())
      return;

    if(!item.isDropable() || !item.isDestroyable() || !item.isTradeable())
    {
      sendPacket(new SystemMessage(SystemMessageId.ITEM_NOT_FOR_PETS));
      return;
    }

    L2PetInstance pet = (L2PetInstance) player.getPet();

    if(pet.isDead())
    {
      sendPacket(new SystemMessage(SystemMessageId.CANNOT_GIVE_ITEMS_TO_DEAD_PET));
      return;
    }

    if(_amount < 0)
      return;

    if(player.transferItem("Transfer", _objectId, _amount, pet.getInventory(), pet) == null)
    {
      _log.warning("Invalid item transfer request: " + pet.getName() + "(pet) --> " + player.getName());
    }
  }
View Full Code Here

  }

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

    L2PcInstance targetPlayer = L2World.getInstance().getPlayer(_reciever);
    if(targetPlayer == null || !targetPlayer.getFriendList().contains(activeChar.getName()))
    {
      activeChar.sendPacket(new SystemMessage(SystemMessageId.TARGET_IS_NOT_FOUND_IN_THE_GAME));
      return;
    }

    if(Config.LOG_CHAT)
    {
      LogRecord record = new LogRecord(Level.INFO, _message);
      record.setLoggerName("chat");
      record.setParameters(new Object[]
      {
          "PRIV_MSG", "[" + activeChar.getName() + " to " + _reciever + "]"
      });

      _logChat.log(record);
    }

    FriendRecvMsg frm = new FriendRecvMsg(activeChar.getName(), _reciever, _message);
    targetPlayer.sendPacket(frm);
  }
View Full Code Here

  }

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

    // Get the level of the used skill
    int level = activeChar.getSkillLevel(_skillId);
    if(level <= 0)
    {
      sendPacket(ActionFailed.STATIC_PACKET);
      return;
    }

    // Get the L2Skill template corresponding to the skillID received from the client
    L2Skill skill = SkillTable.getInstance().getInfo(_skillId, level);

    if(skill != null)
    {
      activeChar.setCurrentSkillWorldPosition(new Point3D(_x, _y, _z));

      // normally magicskilluse packet turns char client side but for these skills, it doesn't (even with correct target)
      activeChar.setHeading(Util.calculateHeadingFrom(activeChar.getX(), activeChar.getY(), _x , _y));
      activeChar.broadcastPacket(new ValidateLocation(activeChar));
      activeChar.useMagic(skill, _ctrlPressed, _shiftPressed);
    }
    else
    {
      sendPacket(ActionFailed.STATIC_PACKET);
    }
View Full Code Here

  }

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

    if(_link.contains("..") || !_link.contains(".htm"))
    {
      _log.warning("[RequestLinkHtml] hack? link contains prohibited characters: '" + _link + "', skipped");
      return;
    }

    if(!actor.validateLink(_link))
      return;

    NpcHtmlMessage msg = new NpcHtmlMessage(0);
    msg.setFile(_link);
View Full Code Here

  }
 
  @Override
  protected void runImpl()
  {
    L2PcInstance _activeChar = getClient().getActiveChar();
    if (_activeChar == null)
      return;
   
    if (!_activeChar.isInPartyMatchRoom() && _activeChar.getParty() != null && _activeChar.getParty().getLeader() != _activeChar)
    {
      _activeChar.sendPacket(new SystemMessage(SystemMessageId.CANT_VIEW_PARTY_ROOMS));
      _activeChar.sendPacket(ActionFailed.STATIC_PACKET);
      return;
    }
   
    if (_activeChar.isInPartyMatchRoom())
    {
      // If Player is in Room show him room, not list
      PartyMatchRoomList _list = PartyMatchRoomList.getInstance();
      if (_list == null)
        return;
     
      PartyMatchRoom _room = _list.getPlayerRoom(_activeChar);
      if (_room == null)
        return;
     
      _activeChar.sendPacket(new PartyMatchDetail(_activeChar, _room));
      _activeChar.sendPacket(new ExPartyRoomMember(_activeChar, _room, 2));
     
      _activeChar.setPartyRoom(_room.getId());
      _activeChar.broadcastUserInfo();
    }
    else
    {
      // Add to waiting list
      PartyMatchWaitingList.getInstance().addPlayer(_activeChar);
     
      // Send Room list
      _activeChar.sendPacket(new PartyMatchList(_activeChar, _auto, _loc, _lvl));
    }
  }
View Full Code Here

  }

  @Override
  protected void runImpl()
  {
    L2PcInstance activeChar = getClient().getActiveChar();
    if(activeChar != null)
    {
      if (!getClient().getFloodProtectors().getTransaction().tryPerformAction("RecipeDestroy"))
          return;

       
      L2RecipeList rp = RecipeTable.getInstance().getRecipeList(_recipeID - 1);
      if(rp == null)
        return;

      activeChar.unregisterRecipeList(_recipeID);

      RecipeBookItemList response = new RecipeBookItemList(rp.isDwarvenRecipe(), activeChar.getMaxMp());

      if(rp.isDwarvenRecipe())
      {
        response.addRecipes(activeChar.getDwarvenRecipeBook());
      }
      else
      {
        response.addRecipes(activeChar.getCommonRecipeBook());
      }

      activeChar.sendPacket(response);
    }
  }
View Full Code Here

  @Override
  protected void runImpl()
  {

    L2PcInstance player = getClient().getActiveChar();

    if(player == null)
      return;

    L2FolkInstance trainer = player.getLastFolkNPC();

    if(trainer == null)
      return;

    int npcid = trainer.getNpcId();

    if(!player.isInsideRadius(trainer, L2NpcInstance.INTERACTION_DISTANCE, false, false) && !player.isGM())
      return;

    if(!Config.ALT_GAME_SKILL_LEARN)
    {
      player.setSkillLearningClassId(player.getClassId());
    }

    if(player.getSkillLevel(_id) >= _level)
      // already knows the skill with this level
      return;

    L2Skill skill = SkillTable.getInstance().getInfo(_id, _level);

    int counts = 0;
    int _requiredSp = 10000000;

    if(_skillType == 0)
    {

      L2SkillLearn[] skills = SkillTreeTable.getInstance().getAvailableSkills(player, player.getSkillLearningClassId());

      for(L2SkillLearn s : skills)
      {
        L2Skill sk = SkillTable.getInstance().getInfo(s.getId(), s.getLevel());
        if(sk == null || sk != skill || !sk.getCanLearn(player.getSkillLearningClassId()) || !sk.canTeachBy(npcid))
        {
          continue;
        }
        counts++;
        _requiredSp = SkillTreeTable.getInstance().getSkillCost(player, skill);
      }

      if(counts == 0 && !Config.ALT_GAME_SKILL_LEARN)
      {
        player.sendMessage("You are trying to learn skill that u can't..");
        Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " tried to learn skill that he can't!!!", IllegalPlayerAction.PUNISH_KICK);
        return;
      }

      if(player.getSp() >= _requiredSp)
      {
        int spbId = -1;
        // divine inspiration require book for each level
        if(Config.DIVINE_SP_BOOK_NEEDED && skill.getId() == L2Skill.SKILL_DIVINE_INSPIRATION)
        {
          spbId = SkillSpellbookTable.getInstance().getBookForSkill(skill, _level);
        }
        else if(Config.SP_BOOK_NEEDED && skill.getLevel() == 1)
        {
          spbId = SkillSpellbookTable.getInstance().getBookForSkill(skill);
        }

        // spellbook required
        if(spbId > -1)
        {
          L2ItemInstance spb = player.getInventory().getItemByItemId(spbId);

          if(spb == null)
          {
            // Haven't spellbook
            player.sendPacket(new SystemMessage(SystemMessageId.ITEM_MISSING_TO_LEARN_SKILL));
            return;
          }

          // ok
          player.destroyItem("Consume", spb, trainer, true);
        }
      }
      else
      {
        SystemMessage sm = new SystemMessage(SystemMessageId.NOT_ENOUGH_SP_TO_LEARN_SKILL);
        player.sendPacket(sm);

        return;
      }
    }
    else if(_skillType == 1)
    {
      int costid = 0;
      int costcount = 0;
      // Skill Learn bug Fix
      L2SkillLearn[] skillsc = SkillTreeTable.getInstance().getAvailableSkills(player);

      for(L2SkillLearn s : skillsc)
      {
        L2Skill sk = SkillTable.getInstance().getInfo(s.getId(), s.getLevel());

        if(sk == null || sk != skill)
        {
          continue;
        }

        counts++;
        costid = s.getIdCost();
        costcount = s.getCostCount();
        _requiredSp = s.getSpCost();
      }

      if(counts == 0)
      {
        player.sendMessage("You are trying to learn skill that u can't..");
        Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " tried to learn skill that he can't!!!", IllegalPlayerAction.PUNISH_KICK);
        return;
      }

      if(player.getSp() >= _requiredSp)
      {
        if(!player.destroyItemByItemId("Consume", costid, costcount, trainer, false))
        {
          // Haven't spellbook
          player.sendPacket(new SystemMessage(SystemMessageId.ITEM_MISSING_TO_LEARN_SKILL));
          return;
        }

        SystemMessage sm = new SystemMessage(SystemMessageId.DISSAPEARED_ITEM);
        sm.addNumber(costcount);
        sm.addItemName(costid);
        sendPacket(sm);
      }
      else
      {
        SystemMessage sm = new SystemMessage(SystemMessageId.NOT_ENOUGH_SP_TO_LEARN_SKILL);
        player.sendPacket(sm);
        return;
      }
    }
    else if(_skillType == 2) //pledgeskills TODO: Find appropriate system messages.
    {
      if(!player.isClanLeader())
      {
        // TODO: Find and add system msg
        player.sendMessage("This feature is available only for the clan leader");
        return;
      }

      int itemId = 0;
      int repCost = 100000000;
      // Skill Learn bug Fix
      L2PledgeSkillLearn[] skills = SkillTreeTable.getInstance().getAvailablePledgeSkills(player);

      for(L2PledgeSkillLearn s : skills)
      {
        L2Skill sk = SkillTable.getInstance().getInfo(s.getId(), s.getLevel());

        if(sk == null || sk != skill)
        {
          continue;
        }

        counts++;
        itemId = s.getItemId();
        repCost = s.getRepCost();
      }

      if(counts == 0)
      {
        player.sendMessage("You are trying to learn skill that u can't..");
        Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " tried to learn skill that he can't!!!", IllegalPlayerAction.PUNISH_KICK);
        return;
      }

      if(player.getClan().getReputationScore() >= repCost)
      {
        if(Config.LIFE_CRYSTAL_NEEDED)
        {
          if(!player.destroyItemByItemId("Consume", itemId, 1, trainer, false))
          {
            // Haven't spellbook
            player.sendPacket(new SystemMessage(SystemMessageId.ITEM_MISSING_TO_LEARN_SKILL));
            return;
          }

          SystemMessage sm = new SystemMessage(SystemMessageId.DISSAPEARED_ITEM);
          sm.addItemName(itemId);
          sm.addNumber(1);
          sendPacket(sm);
        }
      }
      else
      {
        SystemMessage sm = new SystemMessage(SystemMessageId.ACQUIRE_SKILL_FAILED_BAD_CLAN_REP_SCORE);
        player.sendPacket(sm);
        return;
      }
      player.getClan().setReputationScore(player.getClan().getReputationScore() - repCost, true);
      player.getClan().addNewSkill(skill);

      if(Config.DEBUG)
      {
        _log.fine("Learned pledge skill " + _id + " for " + _requiredSp + " SP.");
      }

      SystemMessage cr = new SystemMessage(SystemMessageId.S1_DEDUCTED_FROM_CLAN_REP);
      cr.addNumber(repCost);
      player.sendPacket(cr);
      SystemMessage sm = new SystemMessage(SystemMessageId.CLAN_SKILL_S1_ADDED);
      sm.addSkillName(_id);
      player.sendPacket(sm);

      player.getClan().broadcastToOnlineMembers(new PledgeSkillList(player.getClan()));

      for(L2PcInstance member : player.getClan().getOnlineMembers(""))
      {
        member.sendSkillList();
      }
     
      if(trainer instanceof L2VillageMasterInstance){
        ((L2VillageMasterInstance) trainer).showPledgeSkillList(player);
      }
     
      return;
    }

    else
    {
      _log.warning("Recived Wrong Packet Data in Aquired Skill - unk1:" + _skillType);
      return;
    }

    player.addSkill(skill, true);

    if(Config.DEBUG)
    {
      _log.fine("Learned skill " + _id + " for " + _requiredSp + " SP.");
    }

    player.setSp(player.getSp() - _requiredSp);

    StatusUpdate su = new StatusUpdate(player.getObjectId());
    su.addAttribute(StatusUpdate.SP, player.getSp());
    player.sendPacket(su);

    SystemMessage sp = new SystemMessage(SystemMessageId.SP_DECREASED_S1);
    sp.addNumber(_requiredSp);
    sendPacket(sp);

    SystemMessage sm = new SystemMessage(SystemMessageId.LEARNED_SKILL_S1);
    sm.addSkillName(_id);
    player.sendPacket(sm);

    // update all the shortcuts to this skill
    if(_level > 1)
    {
      L2ShortCut[] allShortCuts = player.getAllShortCuts();

      for(L2ShortCut sc : allShortCuts)
      {
        if(sc.getId() == _id && sc.getType() == L2ShortCut.TYPE_SKILL)
        {
          L2ShortCut newsc = new L2ShortCut(sc.getSlot(), sc.getPage(), sc.getType(), sc.getId(), _level, 1);
          player.sendPacket(new ShortCutRegister(newsc));
          player.registerShortCut(newsc);
        }
      }
    }

    if(trainer instanceof L2FishermanInstance)
    {
      ((L2FishermanInstance) trainer).showSkillList(player);
    }
    else
    {
      trainer.showSkillList(player, player.getSkillLearningClassId());
    }

    if(_id >= 1368 && _id <= 1372) // if skill is expand sendpacket :)
    {
      ExStorageMaxCount esmc = new ExStorageMaxCount(player);
      player.sendPacket(esmc);
    }
   
    player.sendSkillList();
  }
View Full Code Here

    if(Config.DEBUG)
    {
      _log.fine("infos for clan " + _clanId + " requested");
    }

    L2PcInstance activeChar = getClient().getActiveChar();
    L2Clan clan = ClanTable.getInstance().getClan(_clanId);

    if (activeChar == null)
      return;
   
    if(clan == null)
    {   if (Config.DEVELOPER){
      _log.warning("Clan data for clanId "+_clanId+" is missing for player "+activeChar.getName());}
      return; // we have no clan data ?!? should not happen
    }
    activeChar.sendPacket(new PledgeInfo(clan));
  }
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.