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

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


  {
    L2PcInstance activeChar = getClient().getActiveChar();
    if(activeChar == null)
      return;

    L2FolkInstance trainer = activeChar.getLastFolkNPC();
    if (trainer == null)
    {
      return;
    }
   
    if (!activeChar.isGM() && !activeChar.isInsideRadius(trainer, L2NpcInstance.INTERACTION_DISTANCE, false, false))
    {
      return;
    }
   
    boolean canteach = false;
    L2Skill skill = SkillTable.getInstance().getInfo(_id, _level);
    if(skill == null)
    {
      if(Config.DEBUG)
      {
        _log.warning("skill id " + _id + " level " + _level + " is undefined. aquireSkillInfo failed.");
      }
      return;
    }

    if(_skillType == 0)
    {
      if(!trainer.getTemplate().canTeach(activeChar.getSkillLearningClassId()))
        return; // cheater

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

      for(L2SkillLearn s : skills)
View Full Code Here


    ItemContainer warehouse = player.getActiveWarehouse();
    if(warehouse == null)
      return;

    L2FolkInstance manager = player.getLastFolkNPC();
    if((manager == null || !player.isInsideRadius(manager, L2NpcInstance.INTERACTION_DISTANCE, false, false)) && !player.isGM())
      return;

    if(warehouse instanceof ClanWarehouse && !player.getAccessLevel().allowTransaction())
    {
View Full Code Here

      return;

    if(activeChar.getLevel() < 76)
      return;

    L2FolkInstance trainer = activeChar.getLastFolkNPC();
    if(trainer == null)
    {
      return;
    }
   
    if (!activeChar.isInsideRadius(trainer, L2NpcInstance.INTERACTION_DISTANCE, false, false) && !activeChar.isGM())
    {
      return;
    }
   
    boolean canteach = false;
   
    L2Skill skill = SkillTable.getInstance().getInfo(_skillId, _skillLvl);
    if(skill == null || skill.getId() != _skillId)
      return;

    if(!trainer.getTemplate().canTeach(activeChar.getClassId()))
      return; // cheater

    L2EnchantSkillLearn[] skills = SkillTreeTable.getInstance().getAvailableEnchantSkills(activeChar);

    for(L2EnchantSkillLearn s : skills)
View Full Code Here

    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);
View Full Code Here

    ItemContainer warehouse = player.getActiveWarehouse();

    if(warehouse == null)
      return;

    L2FolkInstance manager = player.getLastFolkNPC();

    if((manager == null || !player.isInsideRadius(manager, L2NpcInstance.INTERACTION_DISTANCE, false, false)) && !player.isGM())
      return;

    if(warehouse instanceof PcFreight && !player.getAccessLevel().allowTransaction())
View Full Code Here

    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(player.getSkillLevel(_skillId) >= _skillLvl)// already knows the skill with this level
      return;

    if(player.getClassId().getId() < 88) // requires to have 3rd class quest completed
      return;

    if(player.getLevel() < 76)
      return;

    L2Skill skill = SkillTable.getInstance().getInfo(_skillId, _skillLvl);

    int counts = 0;
    int _requiredSp = 10000000;
    int _requiredExp = 100000;
    byte _rate = 0;
    int _baseLvl = 1;

    L2EnchantSkillLearn[] skills = SkillTreeTable.getInstance().getAvailableEnchantSkills(player);

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

      if(sk == null || sk != skill || !sk.getCanLearn(player.getClassId()) || !sk.canTeachBy(npcid))
      {
        continue;
      }

      counts++;
      _requiredSp = s.getSpCost();
      _requiredExp = s.getExp();
      _rate = s.getRate(player);
      _baseLvl = s.getBaseLevel();
    }

    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)
    {
      // Like L2OFF you can't delevel during skill enchant
      long expAfter = player.getExp() - _requiredExp;
      if(player.getExp() >= _requiredExp && expAfter >= ExperienceData.getInstance().getExpForLevel(player.getLevel()))
      {
        if(Config.ES_SP_BOOK_NEEDED && (_skillLvl == 101 || _skillLvl == 141)) // only first lvl requires book
        {
          int spbId = 6622;

          L2ItemInstance spb = player.getInventory().getItemByItemId(spbId);

          if(spb == null)// Haven't spellbook
          {
            player.sendPacket(new SystemMessage(SystemMessageId.YOU_DONT_HAVE_ALL_OF_THE_ITEMS_NEEDED_TO_ENCHANT_THAT_SKILL));
            return;
          }
          // ok
          player.destroyItem("Consume", spb, trainer, true);
        }
      }
      else
      {
        SystemMessage sm = new SystemMessage(SystemMessageId.YOU_DONT_HAVE_ENOUGH_EXP_TO_ENCHANT_THAT_SKILL);
        player.sendPacket(sm);
        return;
      }
    }
    else
    {
      SystemMessage sm = new SystemMessage(SystemMessageId.YOU_DONT_HAVE_ENOUGH_SP_TO_ENCHANT_THAT_SKILL);
      player.sendPacket(sm);
      return;
    }
    if(Rnd.get(100) <= _rate)
    {
      player.addSkill(skill, true);

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

      player.getStat().removeExpAndSp(_requiredExp, _requiredSp);

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

      SystemMessage ep = new SystemMessage(SystemMessageId.EXP_DECREASED_BY_S1);
      ep.addNumber(_requiredExp);
      sendPacket(ep);

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

      SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_SUCCEEDED_IN_ENCHANTING_THE_SKILL_S1);
      sm.addSkillName(_skillId);
      player.sendPacket(sm);
    }
    else
    {
      if(skill.getLevel() > 100)
      {
        _skillLvl = _baseLvl;
        player.addSkill(SkillTable.getInstance().getInfo(_skillId, _skillLvl), true);
        player.sendSkillList();
      }
      SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_FAILED_TO_ENCHANT_THE_SKILL_S1);
      sm.addSkillName(_skillId);
      player.sendPacket(sm);
    }
    trainer.showEnchantSkillList(player, player.getClassId());

    player.sendPacket(new UserInfo(player));
    player.sendSkillList();
   
    // update all the shortcuts to this skill
View Full Code Here

    final ItemContainer warehouse = player.getActiveWarehouse();
    if(warehouse == null)
      return;

    L2FolkInstance manager = player.getLastFolkNPC();

    if(manager == null || !player.isInsideRadius(manager, L2NpcInstance.INTERACTION_DISTANCE, false, false))
      return;

    if (!getClient().getFloodProtectors().getTransaction().tryPerformAction("deposit"))
View Full Code Here

TOP

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

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.