Package lineage2.gameserver.model

Examples of lineage2.gameserver.model.Playable


   * @param dontMove boolean
   */
  @Override
  public void Attack(GameObject target, boolean forceUse, boolean dontMove)
  {
    Playable actor = getActor();
    if (target.isCreature() && (actor.isActionsDisabled() || actor.isAttackingDisabled()))
    {
      setNextAction(nextAction.ATTACK, target, null, forceUse, false);
      actor.sendActionFailed();
      return;
    }
    _dontMove = dontMove;
    _forceUse = forceUse;
    clearNextAction();
View Full Code Here


   * @param dontMove boolean
   */
  @Override
  public void Cast(Skill skill, Creature target, boolean forceUse, boolean dontMove)
  {
    Playable actor = getActor();
    if (skill.altUse() || skill.isToggle())
    {
      if (((skill.isToggle() && !skill.isAwakeningToggle())|| skill.isHandler()) && (actor.isOutOfControl() || actor.isStunned() || actor.isSleeping() || actor.isParalyzed() || actor.isAlikeDead() || actor.isAirBinded() || actor.isKnockedBack() || actor.isKnockedDown() || actor.isPulledNow()))
      {
        clientActionFailed();
      }
      else
      {
        actor.altUseSkill(skill, target);
      }
      return;
    }
    if (actor.isActionsDisabled())
    {
      setNextAction(nextAction.CAST, skill, target, forceUse, dontMove);
      clientActionFailed();
      return;
    }
View Full Code Here

     * Method runImpl.
     */
    @Override
    public void runImpl()
    {
      Playable actor = getActor();
      if (getIntention() != AI_INTENTION_FOLLOW)
      {
        if (actor.isClone() && getIntention() == AI_INTENTION_ACTIVE)
        {
          ((ClonePlayer) actor).setFollowMode(false);
        }
        else if ((actor.isPet() || actor.isServitor()) && (getIntention() == AI_INTENTION_ACTIVE))
        {
          ((Summon) actor).setFollowMode(false);
        }
        return;
      }
      Creature target = (Creature) _intention_arg0;
      int offset = _intention_arg1 instanceof Integer ? (Integer) _intention_arg1 : 0;
      if ((target == null) || target.isAlikeDead() || (actor.getDistance(target) > 4000))
      {
        setIntention(CtrlIntention.AI_INTENTION_ACTIVE);
        return;
      }
      Player player = actor.getPlayer();
      if ((player == null) || player.isLogoutStarted() || ((actor.isPet() || actor.isServitor()) && !player.getSummonList().contains(actor) && !actor.isClone()))
      {
        setIntention(CtrlIntention.AI_INTENTION_ACTIVE);
        return;
      }
      if (!actor.isInRange(target, offset + 20) && (!actor.isFollow || (actor.getFollowTarget() != target)))
      {
        actor.followToCharacter(target, offset, false);
      }
      _followTask = ThreadPoolManager.getInstance().schedule(this, 250L);
    }
View Full Code Here

    {
      if (info.damage <= 1)
      {
        continue;
      }
      Playable attacker = (Playable) info.attacker;
      Player player = attacker.getPlayer();
      RewardInfo reward = rewards.get(player);
      if (reward == null)
      {
        rewards.put(player, new RewardInfo(player, info.damage));
      }
      else
      {
        reward.addDamage(info.damage);
      }
    }
    Player[] attackers = rewards.keySet().toArray(new Player[rewards.size()]);
    double[] xpsp = new double[2];
    for (Player attacker : attackers)
    {
      if (attacker.isDead())
      {
        continue;
      }
      RewardInfo reward = rewards.get(attacker);
      if (reward == null)
      {
        continue;
      }
      Party party = attacker.getParty();
      int maxHp = getMaxHp();
      xpsp[0] = 0.;
      xpsp[1] = 0.;
      if (party == null)
      {
        int damage = Math.min(reward._dmg, maxHp);
        if (damage > 0)
        {
          if (isInRangeZ(attacker, Config.ALT_PARTY_DISTRIBUTION_RANGE))
          {
            xpsp = calculateExpAndSp(attacker.getLevel(), damage);
          }
          xpsp[0] = applyOverhit(killer, xpsp[0]);
          attacker.addExpAndCheckBonus(this, (long) xpsp[0], (long) xpsp[1], 1.);
        }
        rewards.remove(attacker);
      }
      else
      {
View Full Code Here

    if (!target.isPlayable())
    {
      activeChar.sendPacket(Msg.INVALID_TARGET);
      return;
    }
    Playable playable = (Playable) target;
    playable.addExpAndSp(exp, sp);
    activeChar.sendMessage("Added " + exp + " experience and " + sp + " SP to " + playable.getName() + ".");
  }
View Full Code Here

  {
    if ((playable == null) || (count < 1))
    {
      return;
    }
    Playable player;
    if (playable.isServitor())
    {
      player = playable.getPlayer();
    }
    else
    {
      player = playable;
    }
    ItemTemplate t = ItemHolder.getInstance().getTemplate(itemId);
    if (t.isStackable())
    {
      player.getInventory().addItem(itemId, count);
    }
    else
    {
      for (long i = 0; i < count; i++)
      {
        player.getInventory().addItem(itemId, 1);
      }
    }
    if (notify)
    {
      player.sendPacket(SystemMessage2.obtainItems(itemId, count, 0));
    }
  }
View Full Code Here

  {
    if (playable == null)
    {
      return 0;
    }
    Playable player = playable.getPlayer();
    return player.getInventory().getCountOf(itemId);
  }
View Full Code Here

    long removed = 0;
    if ((playable == null) || (count < 1))
    {
      return removed;
    }
    Playable player = playable.getPlayer();
    ItemTemplate t = ItemHolder.getInstance().getTemplate(itemId);
    if (t.isStackable())
    {
      if (player.getInventory().destroyItemByItemId(itemId, count))
      {
        removed = count;
      }
    }
    else
    {
      for (long i = 0; i < count; i++)
      {
        if (player.getInventory().destroyItemByItemId(itemId, 1))
        {
          removed++;
        }
      }
    }
    if ((removed > 0) && notify)
    {
      player.sendPacket(SystemMessage2.removeItems(itemId, removed));
    }
    return removed;
  }
View Full Code Here

  {
    if (param.length < 4)
    {
      throw new IllegalArgumentException();
    }
    final Player player = getSelf();
    if (player == null)
    {
      return;
    }
    final long price = Long.parseLong(param[param.length - 1]);
    if (!NpcInstance.canBypassCheck(player, player.getLastNpc()))
    {
      return;
    }
    if ((price > 0) && (player.getAdena() < price))
    {
      player.sendPacket(Msg.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
      return;
    }
    if (player.getMountType() == 2)
    {
      player.sendMessage("Телепортаци�? верхом на виверне невозможна.");
      return;
    }
    if (player.getLastNpc() != null)
    {
      final int npcId = player.getLastNpc().getNpcId();
      switch (npcId)
      {
        case 30483:
          if (player.getLevel() >= Config.CRUMA_GATEKEEPER_LVL)
          {
            show("teleporter/30483-no.htm", player);
            return;
          }
          break;
        case 32864:
        case 32865:
        case 32866:
        case 32867:
        case 32868:
        case 32869:
        case 32870:
          if (player.getLevel() < 80)
          {
            show("teleporter/" + npcId + "-no.htm", player);
            return;
          }
          break;
      }
    }
    final int x = Integer.parseInt(param[0]);
    final int y = Integer.parseInt(param[1]);
    final int z = Integer.parseInt(param[2]);
    final int castleId = (param.length > 4) ? Integer.parseInt(param[3]) : 0;
    if (player.getReflection().isDefault())
    {
      final Castle castle = (castleId > 0) ? ResidenceHolder.getInstance().getResidence(Castle.class, castleId) : null;
      if ((castle != null) && castle.getSiegeEvent().isInProgress())
      {
        player.sendPacket(Msg.YOU_CANNOT_TELEPORT_TO_A_VILLAGE_THAT_IS_IN_A_SIEGE);
        return;
      }
    }
    final Location pos = Location.findPointToStay(x, y, z, 50, 100, player.getGeoIndex());
    if (price > 0)
    {
      player.reduceAdena(price, true);
    }
    player.teleToLocation(pos);
  }
View Full Code Here

  {
    if (param.length < 5)
    {
      throw new IllegalArgumentException();
    }
    final Player player = getSelf();
    if (player == null)
    {
      return;
    }
    final long count = Long.parseLong(param[3]);
    final int item = Integer.parseInt(param[4]);
    if (!NpcInstance.canBypassCheck(player, player.getLastNpc()))
    {
      return;
    }
    if (count > 0)
    {
      if (!player.getInventory().destroyItemByItemId(item, count))
      {
        player.sendPacket(Msg.YOU_DO_NOT_HAVE_ENOUGH_REQUIRED_ITEMS);
        return;
      }
      player.sendPacket(SystemMessage2.removeItems(item, count));
    }
    final int x = Integer.parseInt(param[0]);
    final int y = Integer.parseInt(param[1]);
    final int z = Integer.parseInt(param[2]);
    final Location pos = Location.findPointToStay(x, y, z, 20, 70, player.getGeoIndex());
    player.teleToLocation(pos);
  }
View Full Code Here

TOP

Related Classes of lineage2.gameserver.model.Playable

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.