Package ai

Source Code of ai.Lilith

package ai;

import l2p.extensions.scripts.Functions;
import l2p.gameserver.ai.CtrlIntention;
import l2p.gameserver.ai.Mystic;
import l2p.gameserver.model.L2Character;
import l2p.gameserver.model.L2Player;
import l2p.gameserver.model.L2World;
import l2p.gameserver.model.Reflection;
import l2p.gameserver.model.instances.L2NpcInstance;
import l2p.util.Rnd;

/**
* AI для Lilith ID: 27385
* Сцена перепалки с Анаким.
* Ругается в шаут некультурным англ. матом. :)
* Не реагирует на атаки со стороны чаров(Неуязвим)
* Делетит себя если у персонажа в сумке 4 или больше итемов по квесту.
* Рейт использования физ атаки 0(Использует только 1 скилл и то магичиский...)
* Нет рандомного передвижения.
*/
public class Lilith extends Mystic
{
  private long _lastSay;
  private L2NpcInstance anakim;
  private static final String[] say = {
    "You, such a fool! The victory over this war belongs to Shilien!!!",
    "How dare you try to contend against me in strength? Ridiculous.",
    "Anakim! In the name of Great Shilien, I will cut your throat!",
    "You cannot be the match of Lilith. I'll teach you a lesson!"};

  public Lilith(L2Character actor)
  {
    super(actor);
    AI_TASK_DELAY = 1000;
    AI_TASK_ACTIVE_DELAY = 1000;
  }

  @Override
  protected boolean thinkActive()
  {
    L2NpcInstance actor = getActor();
    if(actor == null)
    {
      return true;
    }
    if(getIntention() == CtrlIntention.AI_INTENTION_ACTIVE)
    {
      if(anakim == null)
      {
        for(L2NpcInstance npc : L2World.getAroundNpc(actor, 1000, 200))
        {
          if(npc.getNpcId() == 32718)
          {
            npc.addDamageHate(actor, 0, 100);
            anakim = npc;
          }
        }
      }
      if(anakim != null)
      {
        setIntention(CtrlIntention.AI_INTENTION_ATTACK, anakim);
      }
    }
    return true;
  }

  @Override
  protected void thinkAttack()
  {
    L2NpcInstance actor = getActor();
    if(actor == null)
    {
      return;
    }
    Reflection r = actor.getReflection();
    // Ругаемся не чаще, чем раз в 10 секунд
    if(System.currentTimeMillis() - _lastSay > 10000)
    {
      Functions.npcShout(actor, say[Rnd.get(say.length)]);
      _lastSay = System.currentTimeMillis();
    }
    for(L2Player pl : r.getPlayers())
    {
      if(pl != null && Functions.getItemCount(pl, 13846) >= 4)
      {
        actor.decayMe();
      }
    }
    super.thinkAttack();
  }
}
TOP

Related Classes of ai.Lilith

TOP
Copyright © 2018 www.massapi.com. 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.