Package lineage2.gameserver.network.serverpackets

Source Code of lineage2.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget

package lineage2.gameserver.network.serverpackets;

import lineage2.gameserver.model.Creature;
import lineage2.gameserver.model.Effect;
import lineage2.gameserver.model.Skill;
import lineage2.gameserver.utils.EffectsComparator;
import org.apache.commons.lang3.ArrayUtils;

import java.util.Arrays;

public class ExAbnormalStatusUpdateFromTarget extends L2GameServerPacket
{
  private Effect[] _effectArray = Effect.EMPTY_L2EFFECT_ARRAY;
  private final int _objId;

  public ExAbnormalStatusUpdateFromTarget(final Creature target)
  {
    _objId = target.getObjectId();
    final Effect[] el = target.getEffectList().getAllFirstEffects();
    if(el.length > 0)
    {
      for(final Effect eo : el)
      {
        if(eo.isInUse())
        {
          _effectArray = ArrayUtils.add(_effectArray, eo);
        }
      }
      Arrays.sort(_effectArray, EffectsComparator.getInstance());
    }
  }

  @Override
  protected final void writeImpl()
  {
    writeEx(0xE6);
    writeD(_objId);
    writeH(_effectArray.length);

    for(final Effect temp : _effectArray)
    {
      final Skill sk = temp.getSkill();

      writeD(sk.getDisplayId());
      writeH(sk.getDisplayLevel());
      writeD(getDisplayTypeOfEffect(sk));
      writeD(temp.getTimeLeft());
      writeD((temp.getEffector() != null) ? temp.getEffector().getObjectId() : 0);
    }
  }

  private static int getDisplayTypeOfEffect(final Skill s)
  {
    // 1 ?
    if(s.isOffensive())
    {
      return 2;
    }

    if(s.isToggle())
    {
      return 3;
    }

    if(s.isMusic())
    {
      return 4;
    }

    if(s.isItemSkill())
    {
      return 5;
    }

    if(s.isHeroic())
    {
      return 6;
    }

    if(s.isTrigger())
    {
      return 7;
    }

    return 0;
  }
}
TOP

Related Classes of lineage2.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget

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.