Package l2p.gameserver.model

Examples of l2p.gameserver.model.L2Skill


      {
        deleteMe();
        return;
      }
      L2Character target = getTarget();
      L2Skill skill = _skills.get(Rnd.get(_skills.size()));
      if(owner.isDead() || target == null || target.isDead() || !owner.isInRangeZ(target, skill.getCastRange()))
      {
        stopAction();
        if(owner.isDead())
        {
          owner.setAgathion(0);
          owner.broadcastUserInfo(true);
        }
        return;
      }
      try
      {
        if(Rnd.chance(50) && skill.checkCondition(owner, target, false, false, true))
        {
          owner.altUseSkill(skill, target);
          owner.broadcastPacket(new MagicSkillUse(owner, target, skill.getId(), 1, 0, 0));
        }
      }
      catch(final Exception e)
      {
        _log.log(Level.SEVERE, "", e);
View Full Code Here


          getSiege().setSiegeDateTime(rs.getLong("siegeDate") * 1000L);
        }
        StringTokenizer st = new StringTokenizer(rs.getString("skills"), ";");
        while(st.hasMoreTokens())
        {
          L2Skill skill = SkillTable.getInstance().getInfo(Integer.valueOf(st.nextToken()), Integer.valueOf(st.nextToken()));
          if(skill != null)
          {
            _skills.add(skill);
          }
        }
View Full Code Here

    if(activeChar.isOutOfControl())
    {
      activeChar.sendActionFailed();
      return;
    }
    L2Skill skill = SkillTable.getInstance().getInfo(_skillId, activeChar.getSkillLevel(_skillId));
    if(skill != null)
    {
      if(skill.getAddedSkills() == null)
      {
        return;
      }
      // В режиме трансформации доступны только скилы трансформы
      if(activeChar.getTransformation() != 0 && !activeChar.getAllSkills().contains(skill))
      {
        return;
      }
      if(!activeChar.isInRange(_loc, skill.getCastRange()))
      {
        activeChar.sendPacket(Msg.YOUR_TARGET_IS_OUT_OF_RANGE);
        activeChar.sendActionFailed();
        return;
      }
      L2Character target = skill.getAimingTarget(activeChar, activeChar.getTarget());
      if(skill.checkCondition(activeChar, target, _ctrlPressed, _shiftPressed, true))
      {
        activeChar.setGroundSkillLoc(_loc);
        activeChar.getAI().Cast(skill, target, _ctrlPressed, _shiftPressed);
      }
      else
View Full Code Here

        activeChar, new Integer(_id)
      });
      return;
    }
    activeChar.setSkillLearningClassId(activeChar.getClassId());
    L2Skill skill = SkillTable.getInstance().getInfo(_id, _level);
    if(skill == null)
    {
      return;
    }
    if(activeChar.getSkillLevel(_id) >= _level)
    {
      return;
    } // already knows the skill with this level
    boolean isTransferSkill = _skillType == AcquireSkillList.TRANSFER;
    if(isTransferSkill && (activeChar.getLevel() < 76 || activeChar.getClassId().getLevel() < 4))
    {
      activeChar.sendMessage("You must have 3rd class change quest completed.");
      return;
    }
    if(!isTransferSkill && _level > 1 && activeChar.getSkillLevel(_id) != _level - 1)
    {
      Util.handleIllegalPlayerAction(activeChar, "RequestAquireSkill[58]", "tried to increase skill " + _id + " level to " + _level + " while having it's level " + activeChar.getSkillLevel(_id), 1);
      return;
    }
    // TODO обязательно добавить проверку на изучение при isTransferSkill
    if(!(skill.isCommon() || isTransferSkill || SkillTreeTable.getInstance().isSkillPossible(activeChar, _id, _level)))
    {
      Util.handleIllegalPlayerAction(activeChar, "RequestAquireSkill[64]", "tried to learn skill " + _id + " while on class " + activeChar.getActiveClass(), 1);
      return;
    }
    L2SkillLearn SkillLearn = SkillTreeTable.getSkillLearn(_id, _level, activeChar.getClassId(), _skillType == AcquireSkillList.CLAN ? activeChar.getClan() : null, isTransferSkill);
    int itemCount = SkillLearn.getItemCount();
    if(itemCount == -1)
    {
      activeChar.sendActionFailed();
      return;
    }
    if(_skillType == AcquireSkillList.CLAN)
    {
      learnClanSkill(skill, activeChar.getClan());
    }
    else if(_skillType == AcquireSkillList.TRANSFER)
    {
      if(isTransferSkill)
      {
        int item_id;
        switch(activeChar.getClassId())
        {
          case cardinal:
            item_id = 15307;
            break;
          case evaSaint:
            item_id = 15308;
            break;
          case shillienSaint:
            item_id = 15309;
            break;
          default:
            activeChar.sendMessage("There is no skills for your class.");
            return;
        }
        L2ItemInstance spb = activeChar.getInventory().getItemByItemId(item_id);
        if(spb == null || spb.getCount() < 1)
        {
          activeChar.sendPacket(Msg.YOU_DO_NOT_HAVE_ENOUGH_ITEMS_TO_LEARN_SKILLS);
          return;
        }
        L2ItemInstance ri = activeChar.getInventory().destroyItem(spb, 1, true);
        activeChar.sendPacket(SystemMessage.removeItems(ri.getItemId(), 1));
        String var = activeChar.getVar("TransferSkills" + item_id);
        if(var == null)
        {
          var = "";
        }
        if(!var.isEmpty())
        {
          var += ";";
        }
        var += skill.getId();
        activeChar.setVar("TransferSkills" + item_id, var);
      }
      activeChar.addSkill(skill, true);
      activeChar.updateStats();
      activeChar.sendUserInfo(true);
    }
    else
    {
      int _requiredSp = SkillTreeTable.getInstance().getSkillCost(activeChar, skill);
      if(activeChar.getSp() >= _requiredSp || SkillLearn.common || SkillLearn.transformation)
      {
        Integer spb_id = SkillSpellbookTable.getSkillSpellbooks().get(SkillSpellbookTable.hashCode(new int[]
        {
          skill.getId(), skill.getLevel()
        }));
        if(spb_id != null)
        {
          L2ItemInstance spb = activeChar.getInventory().getItemByItemId(spb_id);
          if(spb == null || spb.getCount() < itemCount)
View Full Code Here

        _castleId = rs.getInt("castleId");
        setOwnDate(rs.getInt("ownDate"));
        StringTokenizer st = new StringTokenizer(rs.getString("skills"), ";");
        while(st.hasMoreTokens())
        {
          L2Skill skill = SkillTable.getInstance().getInfo(Integer.valueOf(st.nextToken()), Integer.valueOf(st.nextToken()));
          if(skill != null)
          {
            _skills.add(skill);
          }
        }
View Full Code Here

  {
    boolean territotyBenefit = false;
    GArray<L2Skill> skills = new GArray<L2Skill>();
    for(int i = 0; i < _flags.length; i++)
    {
      L2Skill skill = SkillTable.getInstance().getInfo(TerritorySiege.TERRITORY_SKILLS[_flags[i]], 1);
      if(skill != null)
      {
        skills.add(skill);
      }
      // Бонусы выдаются только если имеется флаг своего замка
View Full Code Here

        _townId = rset.getInt("townId");
        getSiege().setSiegeDateTime(rset.getLong("siegeDate") * 1000L);
        StringTokenizer st = new StringTokenizer(rset.getString("skills"), ";");
        while(st.hasMoreTokens())
        {
          L2Skill skill = SkillTable.getInstance().getInfo(Integer.valueOf(st.nextToken()), Integer.valueOf(st.nextToken()));
          if(skill != null)
          {
            _skills.add(skill);
          }
        }
View Full Code Here

      activeChar = mob;
    }

    public void run()
    {
      L2Skill fp = SkillTable.getInstance().getInfo(4616, 1); // Invulnerable by petrification
      fp.getEffects(activeChar, activeChar, false, false);
    }
View Full Code Here

          lastid = id;
          lastmaxlearn = learn;
        }
        lastmaxlearn = Math.max(lastmaxlearn, learn);
        int baseLevel = _baseLevels[id];
        L2Skill base = getInfo(id, 1);
        if(base == null)
        {
          _incorrectSkills.add(id);
          Log.add("Incorrect skill base for id: " + id, "sql_skill_levels", "");
          continue;
        }
        int level = SkillTreeTable.convertEnchantLevel(baseLevel, display_level, base.getEnchantLevelCount());
        L2Skill skill = getInfo(id, level);
        if(skill == null)
        {
          if(!_incorrectSkills.contains(id))
          {
            _incorrectSkills.add(id);
            if(display_level < 100)
            {
              Log.add("Incorrect skill levels for id: " + id + ", level = " + level + ", display_level = " + display_level, "sql_skill_levels", "");
            }
            else
            {
              Log.add("Not found enchant for skill id: " + id + ", level = " + level + ", display_level = " + display_level, "sql_skill_enchant_levels", "");
            }
          }
          continue;
        }
        //mysql.set("update skills set reuse_final=" + skill.getReuseDelay() + " where id=" + id + " and level=" + display_level);
        skill._isStandart = true;
        int maxSQL = _maxSQLLevels[id];
        for(int i = level; i < MAX_SKILL_LEVELS && (i > maxSQL || i == level); i++)
        {
          skill = getInfo(id, i);
          if(skill == null)
          {
            continue;
          }
          // Загружаем реюз
          if(reuse > -1)
          {
            skill.setReuseDelay(reuse);
          }
          // Корректируем уровни скиллов, в основном для энчантов
          if(skill.getDisplayLevel() != display_level)
          {
            Log.add("Incorrect display level: id = " + id + ", level = " + level, "sql_skill_display_levels", "");
          }
          if(skill.getPower() == 0 && power > 0)
          {
            skill.setPower(power);
            Log.add("Not found power for skill id: " + id + ", level = " + level, "sql_skill_without_power", "");
          }
          else if(skill.getBaseValues() != null && skill.getBaseValues().contains("power"))
          {
            if(power <= 0)
            {
              Log.add("Incorrect power for skill id: " + id + ", level = " + level, "sql_skill_base_power", "");
            }
            else
            {
              skill.setPower(power);
            }
          }
          else if(power > 0 && skill.getPower() != power)
          {
            Log.add("Incorrect power for skill id: " + id + ", level = " + level, "sql_skill_power", "");
          }
          skill.setBaseLevel((short) baseLevel);
          if(skill.getMagicLevel() == 0)
          {
            skill.setMagicLevel(lastmaxlearn);
          }
          if(is_enchant)
          {
            if(skill.getEnchantLevelCount() == 15)
            {
              skill.setMagicLevel(skill.getMagicLevel() + DocumentSkill.elevels15[skill.getDisplayLevel() % 100]);
            }
            else
            {
              skill.setMagicLevel(DocumentSkill.elevels30[skill.getDisplayLevel() % 100]);
            }
          }
          skill.setCastRange(cast_range);
          if(skill.getFlyType() != FlyType.NONE && skill.getFlyRadius() > 0 && skill.getCastRange() > 0 && skill.getCastRange() < skill.getFlyRadius())
          {
            skill.setCastRange(skill.getFlyRadius());
          }
          skill.setName(name);
          skill.setHitTime(hit_time);
          if(skill.getSkillInterruptTime() == 0)
          {
            skill.setSkillInterruptTime(skill.getHitTime() * 3 / 4);
          }
          skill.setIsMagic(is_magic);
          skill.setOverhit(skill.isOverhit() || !is_magic && Config.ALT_ALL_PHYS_SKILLS_OVERHIT);
          //skill.setDisplayLevel((short) display_level);
          skill.setHpConsume(hp_consume);
          if(mp_consume > 0)
          {
            if(mp_consume / 4 >= 1 && is_magic)
            {
              skill.setMpConsume1(mp_consume * 1. / 4);
              skill.setMpConsume2(mp_consume * 3. / 4);
            }
            else
            {
              skill.setMpConsume2(mp_consume);
            }
          }
        }
      }
      for(L2Skill[] sl : skills)
View Full Code Here

    if(!first)
    {
      if(activeChar.isCastingNow())
      {
        L2Character castingTarget = activeChar.getCastingTarget();
        L2Skill castingSkill = activeChar.getCastingSkill();
        long animationEndTime = activeChar.getAnimationEndTime();
        if(castingSkill != null && castingTarget != null && castingTarget.isCharacter() && activeChar.getAnimationEndTime() > 0)
        {
          packets.add(new MagicSkillUse(activeChar, castingTarget, castingSkill.getId(), castingSkill.getLevel(), (int) (animationEndTime - System.currentTimeMillis()), 0));
        }
      }
      if(activeChar.isInVehicle() && !activeChar.getVehicle().isClanAirShip())
      {
        if(activeChar.getVehicle().isAirShip())
View Full Code Here

TOP

Related Classes of l2p.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.