Package net.sf.l2j.gameserver.model.actor.instance

Examples of net.sf.l2j.gameserver.model.actor.instance.L2FolkInstance


    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)
        {
          if (player.getExp() >= _requiredExp)
          {
            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());

        // update all the shortcuts to this skill
        L2ShortCut[] allShortCuts = player.getAllShortCuts();

        for (L2ShortCut sc : allShortCuts)
View Full Code Here


  {
    L2PcInstance player = getClient().getActiveChar();
        if (player == null) return;
        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 && Config.GM_DISABLE_TRANSACTION && player.getAccessLevel() >= Config.GM_TRANSACTION_MIN && player.getAccessLevel() <= Config.GM_TRANSACTION_MAX)
        {
            player.sendMessage("Transactions are disable for your Access Level");
View Full Code Here

            return;

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

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

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

        boolean canteach = false;

        if (skill == null || skill.getId() != _skillId)
        {
            //_log.warning("enchant skill id " + _skillID + " level " + _skillLvl
            //    + " is undefined. aquireEnchantSkillInfo failed.");
          activeChar.sendMessage("This skill doesn't yet have enchant info in Datapack");
            return;
        }

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

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

        for (L2EnchantSkillLearn s : skills)
View Full Code Here

    PcFreight freight = target.getFreight();
    getClient().getActiveChar().setActiveWarehouse(freight);
    target.deleteMe();
        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 && Config.GM_DISABLE_TRANSACTION && player.getAccessLevel() >= Config.GM_TRANSACTION_MIN && player.getAccessLevel() <= Config.GM_TRANSACTION_MAX)
        {
            player.sendMessage("Transactions are disable for your Access Level");
View Full Code Here

  {
    L2PcInstance player = getClient().getActiveChar();
        if (player == null) return;
        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) && Config.GM_DISABLE_TRANSACTION && player.getAccessLevel() >= Config.GM_TRANSACTION_MIN && player.getAccessLevel() <= Config.GM_TRANSACTION_MAX)
        {
            player.sendMessage("Transactions are disable for your Access Level");
View Full Code Here

    L2PcInstance activeChar = getClient().getActiveChar();

    if (activeChar == null)
            return;

    L2FolkInstance trainer = activeChar.getLastFolkNPC();

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

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

    boolean canteach = false;

    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

    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)
      {
        if (Config.SP_BOOK_NEEDED)
        {
          int spbId = SkillSpellbookTable.getInstance()
              .getBookForSkill(skill);

          if (skill.getLevel() == 1 && 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);
        sm = null;

        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);
        sm = null;
      } else
      {
        SystemMessage sm = new SystemMessage(
            SystemMessageId.NOT_ENOUGH_SP_TO_LEARN_SKILL);
        player.sendPacket(sm);
        sm = null;
        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);
                sm = null;
              }
            }
            else
            {
                SystemMessage sm = new SystemMessage(SystemMessageId.ACQUIRE_SKILL_FAILED_BAD_CLAN_REP_SCORE);
                player.sendPacket(sm);
                //sm = null;
                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);
            sm = null;
           
            player.getClan().broadcastToOnlineMembers(new PledgeSkillList(player.getClan()));
           
            for(L2PcInstance member: player.getClan().getOnlineMembers(""))
            {
              member.sendSkillList();
            }
            ((L2VillageMasterInstance)trainer).showPledgeSkillList(player); //Maybe we shoud add a check here...
           
            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);
    sm = null;
   
    // 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);
View Full Code Here

TOP

Related Classes of net.sf.l2j.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.