Package lineage2.gameserver.model

Examples of lineage2.gameserver.model.Creature


 
  @Override
  protected void thinkAttack()
  {
    NpcInstance actor = getActor();
    Creature randomHated = actor.getAggroList().getRandomHated();
    if (randomHated != null && actor.getNpcId() == 22971 || actor.getNpcId() == 22972)
      actor.doCast(SkillTable.getInstance().getInfo(14139, 1), randomHated, true);
    super.thinkAttack();
  }
View Full Code Here


   * @return boolean
   */
  @Override
  protected boolean testImpl(Env env)
  {
    Creature character = env.character;
    if (character == null)
    {
      return false;
    }
    Effect effect = character.getEffectList().getEffectByType(_effectType);
    if (effect == null)
    {
      return false;
    }
    if ((_level == -1) || (effect.getSkill().getLevel() >= _level))
View Full Code Here

   * Method runImpl.
   */
  @Override
  protected void runImpl()
  {
    Creature activeChar = getClient().getActiveChar();
    if (activeChar == null)
    {
      return;
    }
    List<CursedWeaponInfo> list = new ArrayList<>();
    for (CursedWeapon cw : CursedWeaponsManager.getInstance().getCursedWeapons())
    {
      Location pos = cw.getWorldPosition();
      if (pos != null)
      {
        list.add(new CursedWeaponInfo(pos, cw.getItemId(), cw.isActivated() ? 1 : 0));
      }
    }
    activeChar.sendPacket(new ExCursedWeaponLocation(list));
  }
View Full Code Here

   * @return boolean
   */
  @Override
  protected boolean testImpl(Env env)
  {
    Creature target = env.target;
    return (target != null) && (target.isPlayer() == _flag);
  }
View Full Code Here

   * @return boolean
   */
  @Override
  protected boolean testImpl(Env env)
  {
    Creature target = env.target;
    if (target == null)
    {
      return false;
    }
    if (target.isMonster())
    {
      return ((MonsterInstance) target).isAggressive() == _isAggro;
    }
    if (target.isPlayer())
    {
      return target.getKarma() < 0;
    }
    return false;
  }
View Full Code Here

   * @return boolean
   */
  @Override
  protected boolean testImpl(Env env)
  {
    Creature target = env.target;
    if (target == null)
    {
      return false;
    }
    if (_level == -1)
    {
      return target.getEffectList().getEffectsBySkillId(_id) != null;
    }
    List<Effect> el = target.getEffectList().getEffectsBySkillId(_id);
    if (el == null)
    {
      return false;
    }
    for (Effect effect : el)
View Full Code Here

     * @param env Env
     */
    @Override
    public void calc(Env env)
    {
      Creature cha = env.character;
      env.value = cha.getTemplate().getBaseShldRate();
    }
View Full Code Here

    {
      if (env.value == 0)
      {
        return;
      }
      Creature target = env.target;
      if (target != null)
      {
        WeaponTemplate weapon = target.getActiveWeaponItem();
        if (weapon != null)
        {
          switch (weapon.getItemType())
          {
            case BOW:
View Full Code Here

    {
      if (env.value == 0)
      {
        return;
      }
      Creature cha = env.character;
      ItemInstance shld = ((Player) cha).getInventory().getPaperdollItem(Inventory.PAPERDOLL_LHAND);
      if ((shld == null) || (shld.getItemType() != WeaponType.NONE))
      {
        return;
      }
View Full Code Here

   */
  @Override
  protected boolean thinkActive()
  {
    final NpcInstance actor = getActor();
    final Creature target = actor.getFollowTarget();
    if ((target == null) || !(target instanceof Player))
    {
      actor.deleteMe();
      return false;
    }
    final int npcId = actor.getNpcId();
    int[][] coords;
    NpcString string;
    NpcString end_String;
    switch (npcId)
    {
      case SEARCHING_MYST_POWER_SOLDIER:
        coords = SMP_COORDS;
        string = SEARCHING_MYST_POWER_STRING;
        end_String = NpcString.S1_THAT_MAN_IN_FRONT_IS_IBANE;
        break;
      case BACKUP_SEEKERS_ASSASSIN:
        coords = BS_COORDS;
        string = BACKUP_SEEKERS_STRING;
        end_String = NpcString.TALK_TO_THAT_APPRENTICE_AND_GET_ON_KOOKARU;
        break;
      case GOING_INTO_REAL_WAR_SOLDIER:
        final double distLeft = target.getDistance(GRW_COORDS_LEFT[0][0], GRW_COORDS_LEFT[0][1], GRW_COORDS_LEFT[0][2]);
        final double distRight = target.getDistance(GRW_COORDS_RIGHT[0][0], GRW_COORDS_RIGHT[0][1], GRW_COORDS_RIGHT[0][2]);
        if (distLeft <= distRight)
        {
          coords = GRW_COORDS_LEFT;
        }
        else
        {
          coords = GRW_COORDS_RIGHT;
        }
        string = GOING_INTO_REAL_WAR_STRING;
        end_String = NpcString.S1_THAT_MAN_IN_FRONT_IS_HOLDEN;
        break;
      default:
        return false;
    }
    actor.setRunning();
    if ((actor.getDistance(target) < 100) || (currentState == 0) || (currentState >= coords.length))
    {
      if (currentState < coords.length)
      {
        actor.moveToLocation(coords[currentState][0], coords[currentState][1], coords[currentState][2], Rnd.get(0, 50), true);
        if (actor.getDestination() == null)
        {
          ++currentState;
        }
      }
      else
      {
        Functions.npcSay(actor, end_String, ChatType.NPC_SAY, 800, target.getName());
        actor.deleteMe();
      }
    }
    else if (((lastSayTime + SAY_INTERVAL) < System.currentTimeMillis()) && (actor.getDestination() == null))
    {
      final int heading = actor.calcHeading(target.getX(), target.getY());
      actor.setHeading(heading);
      actor.broadcastPacket(new ExRotation(actor.getObjectId(), heading));
      lastSayTime = System.currentTimeMillis();
      Functions.npcSay(actor, string, ChatType.NPC_SAY, 800, target.getName());
    }
    return true;
  }
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.