Package net.sf.l2j.gameserver.model

Examples of net.sf.l2j.gameserver.model.L2Skill


    {
      // 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++;
View Full Code Here


    }
   
    // Iterate through all effects currently on the character.
    for (L2Effect currenteffect : getAllEffects())
    {
      L2Skill effectSkill = currenteffect.getSkill();
     
      // Ignore all buff skills that are party related (ie. songs, dances) while still remaining weapon dependant on cast though.
      if (!effectSkill.isOffensive() && !((effectSkill.getTargetType() == SkillTargetType.TARGET_PARTY) && (effectSkill.getSkillType() == SkillType.BUFF)))
      {
        // Check to rest to assure current effect meets weapon requirements.
        if (!effectSkill.getWeaponDependancy(this))
        {
          sendMessage(effectSkill.getName() + " cannot be used with this weapon.");
         
          if (Config.DEBUG)
          {
            _log.info("   | Skill " + effectSkill.getName() + " has been disabled for (" + getName() + "); Reason: Incompatible Weapon Type.");
          }
         
          currenteffect.exit();
        }
      }
View Full Code Here

    int lvl = getLevel();
   
    // Remove beginner Lucky skill
    if (lvl == 10)
    {
      L2Skill skill = SkillTable.getInstance().getInfo(194, 1);
      skill = removeSkill(skill);
     
      if (Config.DEBUG && (skill != null))
      {
        _log.fine("removed skill 'Lucky' from " + getName());
      }
    }
   
    // Calculate the current higher Expertise of the L2PcInstance
    for (int i = 0; i < EXPERTISE_LEVELS.length; i++)
    {
      if (lvl >= EXPERTISE_LEVELS[i])
      {
        setExpertiseIndex(i);
      }
    }
   
    // Add the Expertise skill corresponding to its Expertise level
    if (getExpertiseIndex() > 0)
    {
      L2Skill skill = SkillTable.getInstance().getInfo(239, getExpertiseIndex());
      addSkill(skill, true);
     
      if (Config.DEBUG)
      {
        _log.fine("awarded " + getName() + " with new expertise.");
      }
     
    }
    else
    {
      if (Config.DEBUG)
      {
        _log.fine("No skills awarded at lvl: " + lvl);
      }
    }
   
    // Active skill dwarven craft
   
    if ((getSkillLevel(1321) < 1) && (getRace() == Race.dwarf))
    {
      L2Skill skill = SkillTable.getInstance().getInfo(1321, 1);
      addSkill(skill, true);
    }
   
    // Active skill common craft
    if (getSkillLevel(1322) < 1)
    {
      L2Skill skill = SkillTable.getInstance().getInfo(1322, 1);
      addSkill(skill, true);
    }
   
    for (int i = 0; i < COMMON_CRAFT_LEVELS.length; i++)
    {
      if ((lvl >= COMMON_CRAFT_LEVELS[i]) && (getSkillLevel(1320) < (i + 1)))
      {
        L2Skill skill = SkillTable.getInstance().getInfo(1320, (i + 1));
        addSkill(skill, true);
      }
    }
   
    // Auto-Learn skills if activated
View Full Code Here

    L2SkillLearn[] skills = SkillTreeTable.getInstance().getAvailableSkills(this, getClassId());
    while (skills.length > unLearnable)
    {
      for (L2SkillLearn s : skills)
      {
        L2Skill sk = SkillTable.getInstance().getInfo(s.getId(), s.getLevel());
        if ((sk == null) || !sk.getCanLearn(getClassId()))
        {
          unLearnable++;
          continue;
        }
       
        if (getSkillLevel(sk.getId()) == -1)
        {
          skillCounter++;
        }
       
        addSkill(sk, true);
View Full Code Here

   * @return The L2Skill replaced or null if just added a new L2Skill
   */
  public L2Skill addSkill(L2Skill newSkill, boolean store)
  {
    // Add a skill to the L2PcInstance _skills and its Func objects to the calculator set of the L2PcInstance
    L2Skill oldSkill = super.addSkill(newSkill);
   
    // Add or update a L2PcInstance skill in the character_skills table of the database
    if (store)
    {
      storeSkill(newSkill, oldSkill, -1);
View Full Code Here

   */
  @Override
  public L2Skill removeSkill(L2Skill skill)
  {
    // Remove a skill from the L2Character and its Func objects from calculator set of the L2Character
    L2Skill oldSkill = super.removeSkill(skill);
   
    java.sql.Connection con = null;
   
    try
    {
      // Remove or update a L2PcInstance skill from the character_skills table of the database
      con = L2DatabaseFactory.getInstance().getConnection();
      PreparedStatement statement;
     
      if (oldSkill != null)
      {
        statement = con.prepareStatement(DELETE_SKILL_FROM_CHAR);
        statement.setInt(1, oldSkill.getId());
        statement.setInt(2, getObjectId());
        statement.setInt(3, getClassIndex());
        statement.execute();
        statement.close();
      }
View Full Code Here

        {
          continue; // fake skills for base stats
        }
       
        // Create a L2Skill object for each record
        L2Skill skill = SkillTable.getInstance().getInfo(id, level);
       
        // Add the L2Skill object to the L2Character _skills and its Func objects to the calculator set of the L2Character
        super.addSkill(skill);
      }
     
View Full Code Here

        if ((skillId == -1) || (effectCount == -1) || (effectCurTime == -1) || (reuseDelay < 0))
        {
          continue;
        }
       
        L2Skill skill = SkillTable.getInstance().getInfo(skillId, skillLvl);
        ISkillHandler IHand = SkillHandler.getInstance().getSkillHandler(skill.getSkillType());
        if (IHand != null)
        {
          IHand.useSkill(this, skill, targets);
        }
        else
        {
          skill.useSkill(this, targets);
        }
       
        if (reuseDelay > 10)
        {
          disableSkill(skillId, reuseDelay);
View Full Code Here

        break; // Dismounted
      case 1:
        setIsRiding(true);
        if (isNoble())
        {
          L2Skill striderAssaultSkill = SkillTable.getInstance().getInfo(325, 1);
          addSkill(striderAssaultSkill, false); // not saved to DB
        }
        break;
      case 2:
        setIsFlying(true);
View Full Code Here

   
    for (L2SkillLearn skillInfo : skillTree)
    {
      if (skillInfo.getMinLevel() <= 40)
      {
        L2Skill prevSkill = prevSkillList.get(skillInfo.getId());
        L2Skill newSkill = SkillTable.getInstance().getInfo(skillInfo.getId(), skillInfo.getLevel());
       
        if ((prevSkill != null) && (prevSkill.getLevel() > newSkill.getLevel()))
        {
          continue;
        }
       
        prevSkillList.put(newSkill.getId(), newSkill);
        storeSkill(newSkill, prevSkill, classIndex);
      }
    }
   
    if (Config.DEBUG)
View Full Code Here

TOP

Related Classes of net.sf.l2j.gameserver.model.L2Skill

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.