Package l2p.gameserver.model

Examples of l2p.gameserver.model.L2Character


    _inv = inv;
  }

  public void notifyUnequipped(int slot, L2ItemInstance item)
  {
    L2Character owner = _inv.getOwner();
    owner.removeStatsOwner(item);
    owner.updateStats();
    if(owner.getPet() != null)
    {
      owner.getPet().removeStatsOwner(item);
      owner.getPet().updateStats();
    }
  }
View Full Code Here


    }
  }

  public void notifyEquipped(int slot, L2ItemInstance item)
  {
    L2Character owner = _inv.getOwner();
    owner.addStatFuncs(item.getStatFuncs());
    owner.updateStats();
    if(owner.getPet() != null && item.getAttributeFuncTemplate() != null)
    {
      Func f = item.getAttributeFuncTemplate().getFunc(item);
      owner.getPet().addStatFunc(f);
      owner.getPet().updateStats();
    }
  }
View Full Code Here

            }
        }
    }

    public L2Character getMostHated() {
        L2Character target = getAI().getAttackTarget();
        if (target != null && target.isNpc() && target.isVisible() && target != this && !target.isDead()
                && target.isInRange(this, 2000)) {
            return target;
        }
        GArray<AggroInfo> aggroList = getAggroList();
        GArray<AggroInfo> activeList = new GArray<AggroInfo>();
        GArray<AggroInfo> passiveList = new GArray<AggroInfo>();
View Full Code Here

        {
          actor.setFollowStatus(false, false);
        }
        return;
      }
      L2Character target = (L2Character) _intention_arg0;
      Integer offset = (Integer) _intention_arg1;
      if(target == null || target.isAlikeDead() || actor.getDistance(target) > 4000)
      {
        setIntention(CtrlIntention.AI_INTENTION_ACTIVE);
        return;
      }
      L2Player actor_player = actor.getPlayer();
View Full Code Here

    if(siege != null)
    {
      siege.killedCommander(this);
      if(siege.getSiegeUnit().getType() == ResidenceType.Fortress && killer.isPlayable())
      {
        L2Character topdam = getTopDamager(getAggroList());
        if(topdam == null)
        {
          topdam = killer;
        }
        double chancemod = Experience.penaltyModifier(calculateLevelDiffForDrop(topdam.getLevel()), 9);
        dropItem(killer.getPlayer(), EPAULETTE.getItemId(), Util.rollDrop(EPAULETTE.getMinDrop(), EPAULETTE.getMaxDrop(), EPAULETTE.getChance() * chancemod * Config.RATE_DROP_EPAULETTE * killer.getPlayer().getRateItems(), true));
      }
    }
    super.doDie(killer);
  }
View Full Code Here

    if(nextAction == null || actor == null)
    {
      return false;
    }
    L2Skill skill;
    L2Character target;
    L2Object object;
    switch(nextAction)
    {
      case ATTACK:
        if(nextAction_arg0 == null)
View Full Code Here

    {
      actor.sendActionFailed();
      return;
    }
    boolean isPosessed = actor instanceof L2Summon && ((L2Summon) actor).isPosessed();
    L2Character attack_target = getAttackTarget();
    if(attack_target == null || attack_target.isDead() || !isPosessed && !(_forceUse ? attack_target.isAttackable(player) : attack_target.isAutoAttackable(player)))
    {
      onAttackFail();
      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(Msg.CANNOT_SEE_TARGET);
      onAttackFail();
      actor.sendActionFailed();
      return;
View Full Code Here

    L2Playable actor = getActor();
    if(actor == null)
    {
      return;
    }
    L2Character attack_target = getAttackTarget();
    if(_skill.getSkillType() == SkillType.CRAFT || _skill.isToggle())
    {
      if(_skill.checkCondition(actor, attack_target, _forceUse, _dontMove, true))
      {
        actor.doCast(_skill, attack_target, _forceUse);
      }
      return;
    }
    if(attack_target == null || attack_target.isDead() != _skill.getCorpse() && !_skill.isNotTargetAoE())
    {
      setIntention(AI_INTENTION_ACTIVE);
      actor.sendActionFailed();
      return;
    }
    if(!checkRange)
    {
      // Если скилл имеет следующее действие, назначим это действие после окончания действия скилла
      if(_skill.getNextAction() == NextAction.ATTACK && !actor.equals(attack_target))
      {
        setNextAction(nextAction.ATTACK, attack_target, null, _forceUse, false);
      }
      else
      {
        clearNextAction();
      }
      clientStopMoving();
      if(_skill.checkCondition(actor, attack_target, _forceUse, _dontMove, true))
      {
        actor.doCast(_skill, attack_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, attack_target, actor.isFlying());
    boolean noRangeSkill = _skill.getCastRange() == 32767;
    if(!noRangeSkill && !canSee && (range > 200 || Math.abs(actor.getZ() - attack_target.getZ()) > 200))
    {
      actor.sendPacket(Msg.CANNOT_SEE_TARGET);
      setIntention(AI_INTENTION_ACTIVE);
      actor.sendActionFailed();
      return;
View Full Code Here

    if(actor == null)
    {
      return null;
    }
    // Новая цель исходя из агрессивности
    L2Character hated = getMostHated();
    if(hated != null && hated != actor)
    {
      setAttackTarget(hated);
      return hated;
    }
View Full Code Here

  {
    if(getBool("noRandomWalk", false))
    {
      return false;
    }
    L2Character actor = getActor();
    return actor != null && !actor.isMoving && maybeMoveToHome();
  }
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.