Package lineage2.gameserver.network.clientpackets

Source Code of lineage2.gameserver.network.clientpackets.RequestExTryToPutShapeShiftingEnchantSupportItem

package lineage2.gameserver.network.clientpackets;

import lineage2.gameserver.data.xml.holder.EnchantItemHolder;
import lineage2.gameserver.model.Player;
import lineage2.gameserver.model.items.ItemInstance;
import lineage2.gameserver.model.items.PcInventory;
import lineage2.gameserver.model.items.etcitems.AppearanceStone;
import lineage2.gameserver.model.items.etcitems.AppearanceStone.ShapeType;
import lineage2.gameserver.network.serverpackets.ExPutShapeShiftingExtractionItemResult;
import lineage2.gameserver.network.serverpackets.ExShapeShiftingResult;
import lineage2.gameserver.network.serverpackets.components.SystemMsg;

public class RequestExTryToPutShapeShiftingEnchantSupportItem extends L2GameClientPacket
{
  private int _targetItemObjId;
  private int _extracItemObjId;

  @Override
  protected void readImpl()
  {
    _targetItemObjId = readD();
    _extracItemObjId = readD();
  }

  @Override
  protected void runImpl()
  {
    Player player = getClient().getActiveChar();
    if(player == null)
    {
      return;
    }

    if(player.isActionsDisabled() || player.isInStoreMode() || player.isInTrade())
    {
      player.sendPacket(ExShapeShiftingResult.FAIL);
      player.setAppearanceStone(null);
      return;
    }

    PcInventory inventory = player.getInventory();
    ItemInstance targetItem = inventory.getItemByObjectId(_targetItemObjId);
    ItemInstance extracItem = inventory.getItemByObjectId(_extracItemObjId);
    ItemInstance stone = player.getAppearanceStone();
    if(targetItem == null || extracItem == null || stone == null)
    {
      player.sendPacket(ExShapeShiftingResult.FAIL);
      player.setAppearanceStone(null);
      return;
    }

    if(!extracItem.canBeAppearance())
    {
      player.sendPacket(ExPutShapeShiftingExtractionItemResult.FAIL);
      return;
    }

    if(extracItem.getLocation() != ItemInstance.ItemLocation.INVENTORY && extracItem.getLocation() != ItemInstance.ItemLocation.PAPERDOLL)
    {
      player.sendPacket(ExShapeShiftingResult.FAIL);
      player.setAppearanceStone(null);
      return;
    }

    if((stone = inventory.getItemByObjectId(stone.getObjectId())) == null)
    {
      player.sendPacket(ExShapeShiftingResult.FAIL);
      player.setAppearanceStone(null);
      return;
    }

    AppearanceStone appearanceStone = EnchantItemHolder.getInstance().getAppearanceStone(stone.getItemId());
    if(appearanceStone == null)
    {
      player.sendPacket(ExShapeShiftingResult.FAIL);
      player.setAppearanceStone(null);
      return;
    }

    if(appearanceStone.getType() == ShapeType.RESTORE || appearanceStone.getType() == ShapeType.FIXED)
    {
      player.sendPacket(ExShapeShiftingResult.FAIL);
      return;
    }

    /*if(!extracItem.isOther() && extracItem.getGrade() == ItemGrade.NONE)
    {
      player.sendPacket(SystemMsg.ITEM_GRADES_DO_NOT_MATCH);
      return;
    }*/

    //if(!extracItem.isOther() && targetItem.getTemplate().getItemGrade().ordinal() <= extracItem.getTemplate().getItemGrade().ordinal())
    //{
    //  player.sendPacket(SystemMsg.YOU_CANNOT_EXTRACT_FROM_ITEMS_THAT_ARE_HIGHERGRADE_THAN_ITEMS_TO_BE_MODIFIED);
    //  return;
    //}

    if(extracItem.getVisualId() > 0)
    {
      player.sendPacket(SystemMsg.YOU_CANNOT_EXTRACT_FROM_A_MODIFIED_ITEM);
      return;
    }

    if(targetItem.getExItemType() != extracItem.getExItemType())
    {
      player.sendPacket(SystemMsg.THIS_ITEM_DOES_NOT_MEET_REQUIREMENTS);
      return;
    }

    if(extracItem.getOwnerId() != player.getObjectId())
    {
      player.sendPacket(ExShapeShiftingResult.FAIL);
      player.setAppearanceStone(null);
      return;
    }

    player.setAppearanceExtractItem(extracItem);
    //ItemFunctions.addItem(player
    player.sendPacket(ExPutShapeShiftingExtractionItemResult.SUCCESS);
  }
}
TOP

Related Classes of lineage2.gameserver.network.clientpackets.RequestExTryToPutShapeShiftingEnchantSupportItem

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.