Package net.sf.l2j.gameserver.model

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


                if(activeChar.isMageClass())
                    skillId = 4361;
                else
                    skillId = 4362;

                L2Skill skill = SkillTable.getInstance().getInfo(skillId, skillLevel);

                if (activeChar.getFirstEffect(skill) == null)
                {
                    skill.getEffects(activeChar, activeChar);
                    SystemMessage sm = new SystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT);
                    sm.addSkillName(skillId);
                    activeChar.sendPacket(sm);
                }
            }
View Full Code Here


      ThreadPoolManager.getInstance().scheduleAi(new HerbTask(activeChar, magicId, level), _herbstask);
    }
    else
    {
      if (magicId>2277 && magicId<2285 && _herbstask>=100) _herbstask -= 100;
      L2Skill skill = SkillTable.getInstance().getInfo(magicId, level);
      if (skill != null)
      {
        activeChar.doCast(skill);
        if (!(activeChar.isSitting() && !skill.isPotion()))
          return true;
      }
    }
    return false;
  }
View Full Code Here

    sId = set.getInteger("onCast_skill_id");
    sLv = set.getInteger("onCast_skill_lvl");
    int sCh = set.getInteger("onCast_skill_chance");
    if(sId > 0 && sLv > 0 && sCh > 0)
    {
      L2Skill skill = SkillTable.getInstance().getInfo(sId, sLv);
      skill.attach(new ConditionGameChance(sCh),true);
      attachOnCast(skill);
    }

    sId = set.getInteger("onCrit_skill_id");
    sLv = set.getInteger("onCrit_skill_lvl");
    sCh = set.getInteger("onCrit_skill_chance");
    if(sId > 0 && sLv > 0 && sCh > 0)
    {
      L2Skill skill = SkillTable.getInstance().getInfo(sId, sLv);
      skill.attach(new ConditionGameChance(sCh),true);
      attachOnCrit(skill);
    }
  }
View Full Code Here

      {
        con = L2DatabaseFactory.getInstance().getConnection();
        PreparedStatement statement = con.prepareStatement("SELECT npcid, skillid, level FROM npcskills");
        ResultSet npcskills = statement.executeQuery();
        L2NpcTemplate npcDat = null;
        L2Skill npcSkill = null;

        while (npcskills.next())
        {
          int mobId = npcskills.getInt("npcid");
          npcDat = _npcs.get(mobId);
View Full Code Here

          player.setCurrentCp(player.getMaxCp());
          player.setCurrentHp(player.getMaxHp());
          player.setCurrentMp(player.getMaxMp());
               
                //Wind Walk Buff for Both
          L2Skill skill;
          SystemMessage sm;

          skill = SkillTable.getInstance().getInfo(1204, 2);
          skill.getEffects(player, player);
          player.broadcastPacket(new MagicSkillUser(player, player, skill.getId(), 2, skill.getHitTime(), 0));
          sm = new SystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT);
          sm.addSkillName(1204);
          player.sendPacket(sm);
               
                if (!player.isMageClass())
                {
                  //Haste Buff to Fighters
                  skill = SkillTable.getInstance().getInfo(1086, 1);
                    skill.getEffects(player, player);
                    player.broadcastPacket(new MagicSkillUser(player, player, skill.getId(), 1, skill.getHitTime(), 0));
                    sm = new SystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT);
                    sm.addSkillName(1086);
                    player.sendPacket(sm);
               
                }else{
                  //Acumen Buff to Mages
                  skill = SkillTable.getInstance().getInfo(1085, 1);
                    skill.getEffects(player, player);
                    player.broadcastPacket(new MagicSkillUser(player, player, skill.getId(), 1, skill.getHitTime(), 0));
                    sm = new SystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT);
                    sm.addSkillName(1085);
                    player.sendPacket(sm);
                }
          } catch (Exception e) { }
View Full Code Here

        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)
        {
          if (s.getId() == _skillId && s.getLevel() == _skillLvl)
          {
            canteach = true;
            break;
          }
        }

        if (!canteach)
          return; // cheater

        int requiredSp = SkillTreeTable.getInstance().getSkillSpCost(activeChar, skill);
        int requiredExp = SkillTreeTable.getInstance().getSkillExpCost(activeChar, skill);
        byte rate = SkillTreeTable.getInstance().getSkillRate(activeChar, skill);
        ExEnchantSkillInfo asi = new ExEnchantSkillInfo(skill.getId(), skill.getLevel(), requiredSp, requiredExp, rate);

        if (Config.ES_SP_BOOK_NEEDED && (skill.getLevel() == 101 || skill.getLevel() == 141)) // only first lvl requires book
        {
          int spbId = 6622;
          asi.addRequirement(4, spbId, 1, 0);
        }
        sendPacket(asi);
View Full Code Here

            {
                try
                {
                    if (Rnd.get(1, 100) < _chance)
                    {
                        L2Skill skill = SkillTable.getInstance().getInfo(
                                                                         _skills.get(Rnd.get(_skills.size())),
                                                                         _level);
                        if (skill != null)
                        {
                            L2Character[] targets = {_target};
                            ISkillHandler handler = SkillHandler.getInstance().getSkillHandler(
                                                                                               skill.getSkillType());

                            int x, y, z;
                            // temporary range check until real behavior of cubics is known/coded
                            int range = _target.getTemplate().collisionRadius + 400; //skill.getCastRange();

                            x = (_owner.getX() - _target.getX());
                            y = (_owner.getY() - _target.getY());
                            z = (_owner.getZ() - _target.getZ());
                            if ((x * x) + (y * y) + (z * z) <= (range * range))
                            {
                                if (handler != null)
                                {
                                    handler.useSkill(_owner, skill, targets);
                                }
                                else
                                {
                                    skill.useSkill(_owner, targets);
                                }

                                MagicSkillUser msu = new MagicSkillUser(_owner, _target, skill.getId(),
                                                                        _level, 0, 0);
                                _owner.broadcastPacket(msu);
                            }
                        }
                    }
View Full Code Here

            }
            try
            {
                if (Rnd.get(1, 100) < _chance)
                {
                    L2Skill skill = SkillTable.getInstance().getInfo(
                                                                     _skills.get(Rnd.get(_skills.size())),
                                                                     _level);
                    if (skill != null)
                    {
                        L2Character target, caster;
                        target = null;
                        if (_owner.isInParty())
                        {
                            caster = _owner;
                            L2PcInstance player = _owner;
                            L2Party party = player.getParty();
                            double percentleft = 100.0;
                            if (party != null)
                            {
                                // Get all visible objects in a spheric area near the L2Character
                                // Get a list of Party Members
                                List<L2PcInstance> partyList = party.getPartyMembers();
                                L2Character partyMember = null;
                                int x, y, z;
                                // temporary range check until real behavior of cubics is known/coded
                                int range = 400; //skill.getCastRange();
                                for (int i = 0; i < partyList.size(); i++)
                                {
                                    partyMember = partyList.get(i);
                                    if (!partyMember.isDead())
                                    {
                                        //if party member not dead, check if he is in castrange of heal cubic
                                        x = (caster.getX() - partyMember.getX());
                                        y = (caster.getY() - partyMember.getY());
                                        z = (caster.getZ() - partyMember.getZ());
                                        if ((x * x) + (y * y) + (z * z) > range * range) continue;

                                        //member is in cubic casting range, check if he need heal and if he have the lowest HP
                                        if (partyMember.getCurrentHp() < partyMember.getMaxHp())
                                        {
                                            if (percentleft > (partyMember.getCurrentHp() / partyMember.getMaxHp()))
                                            {
                                                percentleft = (partyMember.getCurrentHp() / partyMember.getMaxHp());
                                                target = partyMember;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            if (_owner.getCurrentHp() < _owner.getMaxHp()) target = _owner;
                        }
                        if (target != null)
                        {
                            L2Character[] targets = {target};
                            ISkillHandler handler = SkillHandler.getInstance().getSkillHandler(skill.getSkillType());
                            if (handler != null)
                            {
                                handler.useSkill(_owner, skill, targets);
                            }
                            else
                            {
                                skill.useSkill(_owner, targets);
                            }
                            MagicSkillUser msu = new MagicSkillUser(_owner, target, skill.getId(),
                                                                    _level, 0, 0);
                            _owner.broadcastPacket(msu);
                        }
                    }
                }
View Full Code Here

                return;
            }
            else if (actualCommand.equalsIgnoreCase("support"))
            {
                setTarget(player);
                L2Skill skill;
                if (val == "") return;

                try
                {
                    int skill_id = Integer.parseInt(val);
                    try
                    {
                        int skill_lvl = 0;
                        if (st.countTokens() >= 1) skill_lvl = Integer.parseInt(st.nextToken());
                        skill = SkillTable.getInstance().getInfo(skill_id,skill_lvl);
                        if (skill.getSkillType() == SkillType.SUMMON)
                            player.doCast(skill);
                        else
                            doCast(skill);
                        if (getClanHall().getFunction(ClanHall.FUNC_SUPPORT)== null)
                            return;
View Full Code Here

  {
    super(objectId, template, owner, control);

    // look through the skills that this template has and find the weak and strong heal.
    FastMap<Integer, L2Skill> skills = (FastMap<Integer, L2Skill>) getTemplate().getSkills();
    L2Skill skill1 = null;
    L2Skill skill2 = null;

    for (L2Skill skill: skills.values())
    {
      // just in case, also allow cp heal and mp recharges to be considered here...you never know ;)
      if ( skill.isActive() && (skill.getTargetType() == L2Skill.SkillTargetType.TARGET_OWNER_PET) &&
          ((skill.getSkillType() == L2Skill.SkillType.HEAL) ||
          (skill.getSkillType() == L2Skill.SkillType.HOT) ||
          (skill.getSkillType() == L2Skill.SkillType.BALANCE_LIFE) ||
          (skill.getSkillType() == L2Skill.SkillType.HEAL_PERCENT) ||
          (skill.getSkillType() == L2Skill.SkillType.HEAL_STATIC) ||
          (skill.getSkillType() == L2Skill.SkillType.COMBATPOINTHEAL) ||
          (skill.getSkillType() == L2Skill.SkillType.CPHOT) ||
          (skill.getSkillType() == L2Skill.SkillType.MANAHEAL) ||
          (skill.getSkillType() == L2Skill.SkillType.MANA_BY_LEVEL) ||
          (skill.getSkillType() == L2Skill.SkillType.MANAHEAL_PERCENT) ||
          (skill.getSkillType() == L2Skill.SkillType.MANARECHARGE) ||
          (skill.getSkillType() == L2Skill.SkillType.MPHOT) )
        )
      {
        // only consider two skills.  If the pet has more, too bad...they won't be used by its AI.
        // for now assign the first two skills in the order they come.  Once we have both skills, re-arrange them
        if (skill1 == null)
          skill1 = skill;
        else
        {
          skill2 = skill;
          break;
        }
      }
    }
    // process the results.  Only store the ID of the skills.  The levels are generated on the fly, based on the pet's level!
    if (skill1 != null)
    {
      if (skill2 == null)
      {
         // duplicate so that the same skill will be used in both normal and emergency situations
        _weakHeal = skill1;
        _strongHeal = skill1;
      }
      else
      {
        // arrange the weak and strong skills appropriately
        if(skill1.getPower() > skill2.getPower())
        {
          _weakHeal = skill2;
          _strongHeal = skill1;
        }
        else
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.