Package lineage2.gameserver.network.serverpackets

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

package lineage2.gameserver.network.serverpackets;

import lineage2.gameserver.model.Manor;
import lineage2.gameserver.model.Player;
import lineage2.gameserver.model.items.ItemInstance;
import lineage2.gameserver.templates.manor.CropProcure;

import java.util.List;
import java.util.Map;
import java.util.TreeMap;

/**
* format dd[dddc[d]c[d]dddcd] dd[dddc[d]c[d]dQQcQ] - Gracia Final
*/
public class ExShowSellCropList extends L2GameServerPacket
{
  private int _manorId = 1;
  private Map<Integer, ItemInstance> _cropsItems;
  private Map<Integer, CropProcure> _castleCrops;

  public ExShowSellCropList(Player player, int manorId, List<CropProcure> crops)
  {
    _manorId = manorId;
    _castleCrops = new TreeMap<Integer, CropProcure>();
    _cropsItems = new TreeMap<Integer, ItemInstance>();

    List<Integer> allCrops = Manor.getInstance().getAllCrops();
    for (int cropId : allCrops)
    {
      ItemInstance item = player.getInventory().getItemByItemId(cropId);
      if (item != null)
        _cropsItems.put(cropId, item);
    }

    for (CropProcure crop : crops)
      if (_cropsItems.containsKey(crop.getId()) && crop.getAmount() > 0)
        _castleCrops.put(crop.getId(), crop);

  }

  @Override
  public void writeImpl()
  {
    writeEx(0x2c);

    writeD(_manorId); // manor id
    writeD(_cropsItems.size()); // size

    for (ItemInstance item : _cropsItems.values())
    {
      writeD(item.getObjectId()); // Object id
      writeD(item.getItemId()); // crop id
      writeD(Manor.getInstance().getSeedLevelByCrop(item.getItemId())); // seed
                                                                        // level

      writeC(1);
      writeD(Manor.getInstance().getRewardItem(item.getItemId(), 1)); // reward
                                                                      // 1
                                                                      // id

      writeC(1);
      writeD(Manor.getInstance().getRewardItem(item.getItemId(), 2)); // reward
                                                                      // 2
                                                                      // id

      if (_castleCrops.containsKey(item.getItemId()))
      {
        CropProcure crop = _castleCrops.get(item.getItemId());
        writeD(_manorId); // manor
        writeQ(crop.getAmount()); // buy residual
        writeQ(crop.getPrice()); // buy price
        writeC(crop.getReward()); // reward
      }
      else
      {
        writeD(0xFFFFFFFF); // manor
        writeQ(0); // buy residual
        writeQ(0); // buy price
        writeC(0); // reward
      }
      writeQ(item.getCount()); // my crops
    }
  }
}
TOP

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

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.