Package lineage2.gameserver.model

Examples of lineage2.gameserver.model.Creature


   * Method thinkFollow.
   */
  protected void thinkFollow()
  {
    Playable actor = getActor();
    Creature target = (Creature) _intention_arg0;
    Integer offset = (Integer) _intention_arg1;
    if ((target == null) || target.isAlikeDead() || (actor.getDistance(target) > 4000) || (offset == null))
    {
      clientActionFailed();
      return;
    }
    if (actor.isFollow && (actor.getFollowTarget() == target))
View Full Code Here


    {
      actor.sendActionFailed();
      return;
    }
    boolean isPosessed = (actor instanceof Summon) && ((Summon) actor).isDepressed();
    Creature attack_target = getAttackTarget();
    if ((attack_target == null) || attack_target.isDead() || (!isPosessed && !(_forceUse ? attack_target.isAttackable(actor) : attack_target.isAutoAttackable(actor))))
    {
      setIntention(AI_INTENTION_ACTIVE);
      actor.sendActionFailed();
      return;
    }
    if (!checkRange)
    {
      clientStopMoving();
      actor.doAttack(attack_target);
      return;
    }
    int range = actor.getPhysicalAttackRange();
    if (range < 10)
    {
      range = 10;
    }
    boolean canSee = GeoEngine.canSeeTarget(actor, attack_target, false);
    if (!canSee && ((range > 200) || (Math.abs(actor.getZ() - attack_target.getZ()) > 200)))
    {
      actor.sendPacket(SystemMsg.CANNOT_SEE_TARGET);
      setIntention(AI_INTENTION_ACTIVE);
      actor.sendActionFailed();
      return;
View Full Code Here

   * @param checkRange boolean
   */
  protected void thinkCast(boolean checkRange)
  {
    Playable actor = getActor();
    Creature target = getAttackTarget();
    if ((_skill.getSkillType() == SkillType.CRAFT) || _skill.isToggle())
    {
      if (_skill.checkCondition(actor, target, _forceUse, _dontMove, true))
      {
        actor.doCast(_skill, target, _forceUse);
      }
      return;
    }
    if ((target == null) || ((target.isDead() != _skill.getCorpse()) && !_skill.isNotTargetAoE()))
    {
      setIntention(AI_INTENTION_ACTIVE);
      actor.sendActionFailed();
      return;
    }
    if (!checkRange)
    {
      if ((_skill.getNextAction() == NextAction.ATTACK) && !actor.equals(target))
      {
        setNextAction(nextAction.ATTACK, target, null, _forceUse, false);
      }
      else
      {
        clearNextAction();
      }
      clientStopMoving();
      if (_skill.checkCondition(actor, target, _forceUse, _dontMove, true))
      {
        actor.doCast(_skill, target, _forceUse);
      }
      else
      {
        setNextIntention();
        if (getIntention() == CtrlIntention.AI_INTENTION_ATTACK)
        {
          thinkAttack(true);
        }
      }
      return;
    }
    int range = actor.getMagicalAttackRange(_skill);
    if (range < 10)
    {
      range = 10;
    }
    boolean canSee = (_skill.getSkillType() == SkillType.TAKECASTLE) || (_skill.getSkillType() == SkillType.TAKEFORTRESS) || GeoEngine.canSeeTarget(actor, target, actor.isFlying());
    boolean noRangeSkill = _skill.getCastRange() == 32767;
    if (!noRangeSkill && !canSee && ((range > 200) || (Math.abs(actor.getZ() - target.getZ()) > 200)))
    {
      actor.sendPacket(SystemMsg.CANNOT_SEE_TARGET);
      setIntention(AI_INTENTION_ACTIVE);
      actor.sendActionFailed();
      return;
View Full Code Here

      {
        clearTasks();
      }
      return true;
    }
    final Creature top_desire_target = getTopDesireTarget();
    if (top_desire_target == null)
    {
      return false;
    }
    if ((actor.getDistance(top_desire_target) - top_desire_target.getColRadius() - actor.getColRadius()) > 200)
    {
      moveOrTeleportToLocation(Location.findFrontPosition(top_desire_target, actor, 100, 150));
      return false;
    }
    if (!top_desire_target.isCurrentHpFull() && doTask())
    {
      return createNewTask();
    }
    return false;
  }
View Full Code Here

   */
  @Override
  protected boolean createNewTask()
  {
    clearTasks();
    final Creature target = prepareTarget();
    if (target == null)
    {
      return false;
    }
    final NpcInstance actor = getActor();
View Full Code Here

  @Override
  protected boolean createNewTask()
  {
    clearTasks();
    final NpcInstance actor = getActor();
    final Creature top_desire_target = getTopDesireTarget();
    if (actor.isDead() || (top_desire_target == null))
    {
      return false;
    }
    if (!top_desire_target.isCurrentHpFull())
    {
      final Skill skill = _healSkills[Rnd.get(_healSkills.length)];
      if (skill.getAOECastRange() < actor.getDistance(top_desire_target))
      {
        moveOrTeleportToLocation(Location.findFrontPosition(top_desire_target, actor, skill.getAOECastRange() - 30, skill.getAOECastRange() - 10));
View Full Code Here

    final QueenAntInstance queen_ant = (QueenAntInstance) ((MinionInstance) actor).getLeader();
    if (queen_ant == null)
    {
      return null;
    }
    final Creature Larva = queen_ant.getLarva();
    if ((Larva != null) && (Larva.getCurrentHpPercents() < 5))
    {
      return Larva;
    }
    return queen_ant;
  }
View Full Code Here

      {
        Clan clan = player.getClan();
        SiegeEvent<?, ?> siegeEvent2 = killer.getEvent(SiegeEvent.class);
        if ((clan != null) && (siegeEvent == siegeEvent2) && (siegeEvent.getSiegeClan(SiegeEvent.DEFENDERS, clan) == null))
        {
          Creature topdam = getAggroList().getTopDamager();
          if (topdam == null)
          {
            topdam = killer;
          }
          for (Map.Entry<RewardType, RewardList> entry : getTemplate().getRewards().entrySet())
View Full Code Here

        {
          ((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();
View Full Code Here

      Skill[] skills = item.getTemplate().getAttachedSkills();
      if (skills.length > 0)
      {
        for (Skill skill : skills)
        {
          Creature aimingTarget = skill.getAimingTarget(pet, pet.getTarget());
          if (skill.checkCondition(pet, aimingTarget, false, false, true))
          {
            pet.getAI().Cast(skill, aimingTarget, false, false);
          }
        }
View Full Code Here

TOP

Related Classes of lineage2.gameserver.model.Creature

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.