Package lineage2.gameserver.model

Examples of lineage2.gameserver.model.Creature


    {
      teleportHome();
      return false;
    }
    clearTasks();
    Creature target = prepareTarget();
    if (target == null)
    {
      return false;
    }
    if (!BaiumManager.getZone().checkIfInZone(target))
View Full Code Here


      kama.addKilledKanabion(type);
      spawnPossible = kama.isSpawnPossible();
    }
    if (spawnPossible && (nextId > 0))
    {
      Creature player = null;
      if (!killer.isPlayer())
      {
        for (Player pl : World.getAroundPlayers(actor))
        {
          player = pl;
View Full Code Here

   */
  @Override
  protected boolean thinkActive()
  {
    final NpcInstance actor = getActor();
    final Creature following = actor.getFollowTarget();
    if ((following == null) || !actor.isFollow)
    {
      final Player master = getMaster();
      if (master != null)
      {
View Full Code Here

   * Method thinkFollow.
   */
  protected void thinkFollow()
  {
    final NpcInstance actor = getActor();
    final Creature target = actor.getFollowTarget();
    if ((target == null) || target.isAlikeDead() || (actor.getDistance(target) > 4000) || actor.isMovementDisabled())
    {
      actor.getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE);
      return;
    }
    if (actor.isFollow && (actor.getFollowTarget().equals(target)))
    {
      clientActionFailed();
      return;
    }
    if (actor.isInRange(target, Config.FOLLOW_RANGE + 20))
    {
      clientActionFailed();
    }
    if (_followTask != null)
    {
      _followTask.cancel(false);
      _followTask = null;
    }
    _followTask = ThreadPoolManager.getInstance().schedule(new ThinkFollow(), 250L);
    final Reflection ref = actor.getReflection();
    if ((ref != null) && (_chatTimer < System.currentTimeMillis()))
    {
      _chatTimer = System.currentTimeMillis() + 5000;
      final Player masterplayer = target.getPlayer();
      final Map<Skill, Integer> d_skill = new HashMap<>();
      final double distance = actor.getDistance(target);
      switch (ref.getInstancedZoneId())
      {
        case 156:
          final QuestState qs = masterplayer.getQuestState(_10293_SevenSignsForbiddenBook.class);
          if ((qs != null) && !qs.isCompleted())
          {
            if (Rnd.chance(20))
            {
              return;
            }
            if (qs.getCond() == 1)
            {
              Functions.npcSay(actor, NpcString.I_MUST_ASK_LIBRARIAN_SOPHIA_ABOUT_THE_BOOK);
            }
            else if (qs.getCond() == 2)
            {
              Functions.npcSay(actor, NpcString.WHAT_TOOK_SO_LONG_I_WAITED_FOR_EVER);
            }
            else if (qs.getCond() >= 5)
            {
              if (Rnd.chance(50))
              {
                Functions.npcSay(actor, NpcString.THE_BOOK_THAT_WE_SEEK_IS_CERTAINLY_HERE);
              }
              else
              {
                Functions.npcSay(actor, NpcString.AN_UNDERGROUND_LIBRARY);
              }
            }
          }
          break;
        case 151:
          final QuestState qs2 = masterplayer.getQuestState(_10294_SevenSignsMonasteryofSilence.class);
          if ((qs2 != null) && !qs2.isCompleted())
          {
            if (qs2.getCond() == 2)
            {
              if (Rnd.chance(20))
              {
                if (Rnd.chance(70))
                {
                  Functions.npcSay(actor, NpcString.IT_SEEMS_THAT_YOU_CANNOT_REMEMBER_TO_THE_ROOM_OF_THE_WATCHER_WHO_FOUND_THE_BOOK);
                }
                else
                {
                  Functions.npcSay(actor, NpcString.REMEMBER_THE_CONTENT_OF_THE_BOOKS_THAT_YOU_FOUND);
                }
              }
              if (target.getCurrentHpPercents() < 70)
              {
                addDesiredSkill(d_skill, target, distance, heal);
              }
              if (target.getCurrentMpPercents() < 50)
              {
                addDesiredSkill(d_skill, target, distance, recharge);
              }
              if (target.isInCombat())
              {
                addDesiredSkill(d_skill, target, distance, blessBlood);
              }
              addDesiredSkill(d_skill, target, distance, vampRage);
              addDesiredSkill(d_skill, target, distance, holyResist);
              final Skill r_skill = selectTopSkill(d_skill);
              chooseTaskAndTargets(r_skill, target, distance);
              doTask();
            }
            else if (qs2.getCond() == 3)
            {
              Functions.npcSay(actor, NpcString.YOUR_WORK_HERE_IS_DONE_SO_RETURN_TO_THE_CENTRAL_GUARDIAN);
            }
          }
          final QuestState qs3 = masterplayer.getQuestState(_10295_SevenSignsSolinasTomb.class);
          if ((qs3 != null) && !qs3.isCompleted())
          {
            if (qs3.getCond() == 1)
            {
              if (Rnd.chance(20))
              {
                if (Rnd.chance(30))
                {
                  Functions.npcSay(actor, NpcString.TO_REMOVE_THE_BARRIER_YOU_MUST_FIND_THE_RELICS_THAT_FIT_THE_BARRIER_AND_ACTIVATE_THE_DEVICE);
                }
                else if (Rnd.chance(30))
                {
                  Functions.npcSay(actor, NpcString.THE_GUARDIAN_OF_THE_SEAL_DOESNT_SEEM_TO_GET_INJURED_AT_ALL_UNTIL_THE_BARRIER_IS_DESTROYED);
                }
                else
                {
                  Functions.npcSay(actor, NpcString.THE_DEVICE_LOCATED_IN_THE_ROOM_IN_FRONT_OF_THE_GUARDIAN_OF_THE_SEAL_IS_DEFINITELY_THE_BARRIER_THAT_CONTROLS_THE_GUARDIANS_POWER);
                }
              }
              if (target.getCurrentHpPercents() < 80)
              {
                addDesiredSkill(d_skill, target, distance, heal);
              }
              if (target.getCurrentMpPercents() < 70)
              {
                addDesiredSkill(d_skill, target, distance, recharge);
              }
              if (target.isInCombat())
              {
                addDesiredSkill(d_skill, target, distance, blessBlood);
              }
              addDesiredSkill(d_skill, target, distance, vampRage);
              addDesiredSkill(d_skill, target, distance, holyResist);
              final Skill r_skill = selectTopSkill(d_skill);
              chooseTaskAndTargets(r_skill, target, distance);
              doTask();
            }
          }
          final QuestState qs4 = masterplayer.getQuestState(_10296_SevenSignsPoweroftheSeal.class);
          if ((qs4 != null) && !qs4.isCompleted())
          {
            if (qs4.getCond() == 2)
            {
              if (target.getCurrentHpPercents() < 80)
              {
                addDesiredSkill(d_skill, target, distance, heal);
              }
              if (target.getCurrentMpPercents() < 70)
              {
                addDesiredSkill(d_skill, target, distance, recharge);
              }
              if (target.isInCombat())
              {
                addDesiredSkill(d_skill, target, distance, blessBlood);
              }
              addDesiredSkill(d_skill, target, distance, vampRage);
              addDesiredSkill(d_skill, target, distance, holyResist);
View Full Code Here

      final NpcInstance actor = getActor();
      if (actor == null)
      {
        return;
      }
      final Creature target = actor.getFollowTarget();
      if ((target == null) || (actor.getDistance(target) > 4000))
      {
        setIntention(CtrlIntention.AI_INTENTION_ACTIVE);
        actor.teleToLocation(120664, -86968, -3392);
        return;
      }
      if (!actor.isInRange(target, Config.FOLLOW_RANGE + 20) && (!actor.isFollow || (!actor.getFollowTarget().equals(target))))
      {
        final Location loc = new Location(target.getX() + Rnd.get(-60, 60), target.getY() + Rnd.get(-60, 60), target.getZ());
        actor.followToCharacter(loc, target, Config.FOLLOW_RANGE, false);
      }
      _followTask = ThreadPoolManager.getInstance().schedule(this, 250L);
    }
View Full Code Here

    final NpcInstance actor = getActor();
    final NpcInstance mob = actor.getReflection().addSpawnWithoutRespawn(Eidolon_ID, actor.getLoc(), 0);
    final NpcInstance boss = getBoss();
    if ((mob != null) && (boss != null))
    {
      final Creature cha = boss.getAggroList().getTopDamager();
      if (cha != null)
      {
        mob.getAI().notifyEvent(CtrlEvent.EVT_AGGRESSION, cha, 100000);
      }
    }
View Full Code Here

   * @param killer Creature
   */
  @Override
  protected void onDeath(Creature killer)
  {
    Creature topdam = getAggroList().getTopDamager();
    if (topdam == null)
    {
      topdam = killer;
    }
    SavingSnowman.freeSnowman(topdam);
View Full Code Here

  {
    if (isDead())
    {
      return;
    }
    Creature killer = attacker;
    if (killer.isPet() || killer.isServitor())
    {
      killer = killer.getPlayer();
    }
    if (getNpcId() == RAINBOW_FROG)
    {
      ThreadPoolManager.getInstance().schedule(new TaskAfterDead(this, killer, RAINBOW_FROG_SKILL), 3000);
      doDie(killer);
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

        Location runLoc = new Location(run[1], run[2], run[3]);
        guard.setRunning();
        DefaultAI ai = (DefaultAI) guard.getAI();
        ai.addTaskMove(runLoc, true);
        ai.setGlobalAggro(0);
        Creature hated = actor.getAggroList().getRandomHated();
        if (hated != null)
        {
          guard.getAggroList().addDamageHate(hated, 0, Rnd.get(1, 100));
          ai.setAttackTimeout(getMaxAttackTimeout() + System.currentTimeMillis());
          ai.setAttackTarget(hated);
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.