Package l2p.gameserver.model

Examples of l2p.gameserver.model.L2Character


    @Override
    public void calc(Env env) {
      if (env.value == 0) {
        return;
      }
      L2Character target = env.target;
      if (target != null) {
        L2Weapon weapon = target.getActiveWeaponItem();
        if (weapon != null) {
          switch (weapon.getItemType()) {
          case BOW:
          case CROSSBOW:
            env.value += 30.;
View Full Code Here


    @Override
    public void calc(Env env) {
      if (env.value == 0) {
        return;
      }
      L2Character cha = env.character;
      L2ItemInstance shld = ((L2Player) cha).getInventory()
          .getPaperdollItem(Inventory.PAPERDOLL_LHAND);
      if (shld == null || shld.getItemType() != WeaponType.NONE) {
        return;
      }
      env.value *= DEXbonus[cha.getDEX()];
    }
View Full Code Here

  }

  @Override
  protected boolean testImpl(Env env)
  {
    L2Character Char = env.character;
    L2Character target = env.target;
    return Char.getPlayer() != null && target.getPlayer() != null && (Char.getPlayer().getClanId() != 0 && Char.getPlayer().getClanId() == target.getPlayer().getClanId() == _test || Char.getPlayer().getParty() != null && Char.getPlayer().getParty() == target.getPlayer().getParty());
  }
View Full Code Here

  }

  @Override
  protected boolean testImpl(Env env)
  {
    L2Character obj = _istarget ? env.target : env.character;
    if(obj == null)
    {
      return false;
    }
    String target_class = obj.getClass().getSimpleName();
    return target_class.equalsIgnoreCase(_instance_name);
  }
View Full Code Here

  }

  @Override
  protected boolean testImpl(Env env)
  {
    L2Character character = env.character;
    if(character == null)
    {
      return false;
    }
    if(_level == -1)
    {
      return character.getEffectList().getEffectsBySkillId(_id) != null;
    }
    GArray<L2Effect> el = character.getEffectList().getEffectsBySkillId(_id);
    if(el == null)
    {
      return false;
    }
    for(L2Effect effect : el)
View Full Code Here

  }

  @Override
  protected boolean testImpl(Env env)
  {
    L2Character target = env.target;
    return target != null && target.isPlayer() && _race == ((L2Player) target).getRace();
  }
View Full Code Here

    }
    L2Skill skill = env.skill;
    if (!skill.isOffensive()) {
      return Rnd.chance(env.value);
    }
    L2Character character = env.character;
    L2Character target = env.target;
    env.value = Math.max(Math.min(env.value, 100), 1); // РќР° РІСЃСЏРєРёР№
                              // случай
    double base = env.value; // Запоминаем базовый шанс
                  // (нужен позже)
    double mLevel = skill.getMagicLevel() == 0 || !character.isPlayer() ? character
        .getLevel() : skill.getMagicLevel(); // Разница РІ
                            // СѓСЂРѕРІРЅСЏС…
    mLevel = (mLevel - target.getLevel() + 3) * skill.getLevelModifier();
    env.value += mLevel >= 0 ? 0 : mLevel;
    boolean isGM = character.isPlayer() && ((L2Player) character).isGM();
    if (isGM) {
      character.sendMessage("magic level: " + mLevel);
      character.sendMessage("chance: " + env.value);
    }
    if (skill.getSavevs() > 0) {
      if (isGM) {
        character.sendMessage("skill: " + skill);
        character.sendMessage("chance: " + env.value);
        character.sendMessage("save type: " + skill.getSavevs());
      }
      env.value += 30 - calcSavevsDependence(skill.getSavevs(), target); // Бонус
                                        // РѕС‚
                                        // MEN/CON/etc
      if (isGM) {
        character.sendMessage("chance w/savevs: " + env.value);
      }
    }
    env.value = Math.max(env.value, 1);
    if (skill.isMagic()) // Этот блок только для
                // магических скиллов
    {
      int mdef = Math.max(1, target.getMDef(target, skill)); // Вычисляем
                                  // mDef
                                  // цели
      double matk = character.getMAtk(target, skill);
      if (skill.isSSPossible() && spiritshot > 0) // Считаем
                            // Р±РѕРЅСѓСЃ РѕС‚
                            // шотов
      {
        matk *= spiritshot * 2;
      }
      env.value *= Config.SKILLS_CHANCE_MOD
          * Math.pow(matk, Config.SKILLS_CHANCE_POW) / mdef;
    }
    if (!skill.isIgnoreResists()) {
      double res = 0;
      if (resistType != null) {
        res += target.calcStat(resistType, character, skill);
      }
      if (attibuteType != null) {
        res -= character.calcStat(attibuteType, target, skill);
      }
      res += target.calcStat(Stats.DEBUFF_RECEPTIVE, character, skill);
      if (res != 0) {
        double mod = Math.abs(0.02 * res) + 1;
        env.value = res > 0 ? env.value / mod : env.value * mod;
        if (isGM) {
          if (resistType != null) {
            character.sendMessage("resist: " + resistType);
            character.sendMessage("defense: "
                + (int) target.calcStat(resistType, character,
                    skill));
          }
          if (attibuteType != null) {
            character.sendMessage("attack: "
                + (int) character.calcStat(attibuteType,
                    target, skill));
            character.sendMessage("chance w/resist: " + env.value);
          }
        }
      }
    }
    env.value = character.calcStat(Stats.ACTIVATE_RATE, env.value, target,
        skill); // Учитываем общий Р±РѕРЅСѓСЃ Рє
            // шансам, если есть
    // if(skill.isSoulBoost()) // Бонус РѕС‚ РґСѓС€ камаелей
    // env.value *= 0.85 + 0.06 * Math.min(character.getConsumedSouls(), 5);
    env.value = Math.max(env.value,
        Math.min(base, Config.SKILLS_CHANCE_MIN)); // Если
                              // базовый
                              // шанс
                              // более
                              // Config.SKILLS_CHANCE_MIN,
                              // то РїСЂРё
                              // небольшой
                              // разнице РІ
                              // СѓСЂРѕРІРЅСЏС…,
                              // делаем
                              // кап
                              // СЃРЅРёР·Сѓ.
    env.value = Math.max(Math.min(env.value, Config.SKILLS_CHANCE_CAP), 1); // Применяем
                                        // кап
    if (target.isPlayer()) {
      L2Player player = (L2Player) target;
      if ((Config.SKILLS_SHOW_CHANCE && character.isMonster() || player
          .isGM()) && player.getVarB("SkillsMobChance")) {
        target.sendMessage(character.getName()
            + ": "
            + new CustomMessage(
                "l2p.gameserver.skills.Formulas.Chance", target)
                .addString(skill.getName())
                .addNumber(Math.round(env.value)).toString());
View Full Code Here

    {
      return false;
    }
    for(Entry<Long, Integer> entry : _damagers.entrySet())
    {
      L2Character damager = L2ObjectsStorage.getAsCharacter(entry.getKey());
      if(damager == null || damager.isDead() || damager.isCurrentHpFull())
      {
        continue;
      }
      Integer damage = entry.getValue();
      if(damage == null || damage <= 0)
      {
        continue;
      }
      double max_heal = calc();
      double heal = Math.min(damage, max_heal);
      double newHp = Math.min(damager.getCurrentHp() + heal, damager.getMaxHp());
      damager.sendPacket(new SystemMessage(SystemMessage.S1_HPS_HAVE_BEEN_RESTORED).addNumber((long) (newHp - damager.getCurrentHp())));
      damager.setCurrentHp(newHp, false);
    }
    _damagers.clear();
    return true;
  }
View Full Code Here

      {
        if(ai == null)
        {
          return;
        }
        L2Character actor = ai.getActor();
        if(actor == null)
        {
          return;
        }
        Rider r = _riders.get(actor.getObjectId());
        if(r == null)
        {
          return;
        }
        flyNext(r);
View Full Code Here

public final class Init_rShld extends InitFunc
{
  @Override
  public void calc(Env env)
  {
    L2Character cha = env.character;
    if(cha == null || cha.isPlayer())
    {
      env.value = 0.;
    }
    else
    {
      env.value = cha.getTemplate().baseShldRate;
    }
  }
View Full Code Here

TOP

Related Classes of l2p.gameserver.model.L2Character

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.