Package l2p.gameserver.clientpackets

Source Code of l2p.gameserver.clientpackets.RequestCrystallizeItem

package l2p.gameserver.clientpackets;

import l2p.gameserver.cache.Msg;
import l2p.gameserver.model.L2Player;
import l2p.gameserver.model.items.L2ItemInstance;
import l2p.gameserver.serverpackets.SystemMessage;
import l2p.util.Log;

public class RequestCrystallizeItem extends L2GameClientPacket
{
  //Format: cdd
  private int _objectId;
  @SuppressWarnings("unused")
  private long unk;

  @Override
  public void readImpl()
  {
    _objectId = readD();
    unk = readQ(); //FIXME: count??
  }

  @Override
  public void runImpl()
  {
    L2Player activeChar = getClient().getActiveChar();
    if(activeChar == null)
    {
      return;
    }
    if(activeChar.getPrivateStoreType() != L2Player.STORE_PRIVATE_NONE)
    {
      activeChar.sendPacket(Msg.WHILE_OPERATING_A_PRIVATE_STORE_OR_WORKSHOP_YOU_CANNOT_DISCARD_DESTROY_OR_TRADE_AN_ITEM, Msg.ActionFail);
      return;
    }
    L2ItemInstance item = activeChar.getInventory().getItemByObjectId(_objectId);
    if(item == null || !item.canBeCrystallized(activeChar, true))
    {
      activeChar.sendActionFailed();
      return;
    }
    crystallize(activeChar, item);
  }

  public static void crystallize(L2Player activeChar, L2ItemInstance item)
  {
    activeChar.getInventory().destroyItem(item, 1, true);
    // add crystals
    int crystalAmount = item.getItem().getCrystalCount();
    int crystalId = item.getItem().getCrystalType().cry;
    L2ItemInstance crystalls = activeChar.getInventory().addItem(crystalId, crystalAmount);
    activeChar.sendPacket(Msg.THE_ITEM_HAS_BEEN_SUCCESSFULLY_CRYSTALLIZED, new SystemMessage(SystemMessage.YOU_HAVE_OBTAINED_S2_S1).addItemName(crystalId).addNumber(crystalAmount));
    Log.LogItem(activeChar, Log.CrystalizeItem, item);
    Log.LogItem(activeChar, Log.Sys_GetItem, crystalls);
  }
}
TOP

Related Classes of l2p.gameserver.clientpackets.RequestCrystallizeItem

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.