Package l2p.gameserver.ai

Source Code of l2p.gameserver.ai.RaceManager

package l2p.gameserver.ai;

import l2p.gameserver.model.L2Character;
import l2p.gameserver.model.L2ObjectsStorage;
import l2p.gameserver.model.L2Player;
import l2p.gameserver.model.L2World;
import l2p.gameserver.model.instances.L2RaceManagerInstance;
import l2p.gameserver.serverpackets.MonRaceInfo;
import l2p.util.GArray;

public class RaceManager extends DefaultAI
{
  private Boolean thinking = false; // to prevent recursive thinking
  GArray<Long> _knownPlayers = new GArray<Long>();

  public RaceManager(L2Character actor)
  {
    super(actor);
    AI_TASK_DELAY = 5000;
  }

  @Override
  public void run()
  {
    onEvtThink();
  }

  @Override
  protected void onEvtThink()
  {
    L2RaceManagerInstance actor = getActor();
    if(actor == null)
    {
      return;
    }
    MonRaceInfo packet = actor.getPacket();
    if(packet == null)
    {
      return;
    }
    synchronized(thinking)
    {
      if(thinking)
      {
        return;
      }
      thinking = true;
    }
    try
    {
      GArray<Long> newPlayers = new GArray<Long>();
      for(L2Player player : L2World.getAroundPlayers(actor, 1200, 200))
      {
        if(player == null)
        {
          continue;
        }
        newPlayers.add(player.getStoredId());
        if(!_knownPlayers.contains(player.getStoredId()))
        {
          player.sendPacket(packet);
        }
        _knownPlayers.remove(player.getStoredId());
      }
      L2Player player;
      for(Long playerStoreId : _knownPlayers)
      {
        if((player = L2ObjectsStorage.getAsPlayer(playerStoreId)) != null)
        {
          actor.removeKnownPlayer(player);
        }
      }
      _knownPlayers = newPlayers;
    }
    finally
    {
      // Stop thinking action
      thinking = false;
    }
  }

  @Override
  public L2RaceManagerInstance getActor()
  {
    return (L2RaceManagerInstance) super.getActor();
  }
}
TOP

Related Classes of l2p.gameserver.ai.RaceManager

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.