Guest User

BuyList.java - Rhongominyad

a guest
Aug 16th, 2021
70
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package net.sf.l2j.gameserver.network.serverpackets;
  2.  
  3. import java.util.Collection;
  4.  
  5. import net.sf.l2j.Config;
  6. import net.sf.l2j.gameserver.model.buylist.NpcBuyList;
  7. import net.sf.l2j.gameserver.model.buylist.Product;
  8.  
  9. public final class BuyList extends L2GameServerPacket
  10. {
  11.     private final int _listId, _money;
  12.     private final Collection<Product> _list;
  13.     private double _taxRate = 0;
  14.    
  15.     public BuyList(NpcBuyList list, int currentMoney, double taxRate)
  16.     {
  17.         _listId = list.getListId();
  18.         _list = list.getProducts();
  19.         _money = currentMoney;
  20.         _taxRate = taxRate;
  21.     }
  22.    
  23.     @Override
  24.     protected final void writeImpl()
  25.     {
  26.         writeC(0xFE);
  27.         writeH(0xB7);
  28.         writeD(0x00);
  29.        
  30.         writeQ(_money);
  31.         writeD(_listId);
  32.         writeH(_list.size());
  33.        
  34.         for (Product product : _list)
  35.         {
  36.             if (product.getCount() > 0 || !product.hasLimitedStock())
  37.             {
  38.                 writeD(product.getItemId());
  39.                 writeD(product.getItemId());
  40.                 writeD(0);
  41.                 writeQ((product.getCount() < 0) ? 0 : product.getCount());
  42.                 writeH(product.getItem().getType2());
  43.                 writeH(product.getItem().getType1());
  44.                 writeH(0x00);
  45.                 writeD(product.getItem().getBodyPart());
  46.                
  47.                 writeH(0x00);   // Enchant
  48.                 writeH(0x00);   // Custom Type
  49.                 writeD(0x00);   // Augment
  50.                 writeD(-1);     // Mana
  51.                 writeD(-9999);  // Time
  52.                 writeH(0x00);   // Element Type
  53.                 writeH(0x00);   // Element Power
  54.                
  55.                 for (byte i = 0; i < 6; i++)
  56.                 {
  57.                     writeH(0x00);
  58.                 }
  59.                
  60.                                 // Enchant Effects
  61.                 writeH(0x00);
  62.                 writeH(0x00);
  63.                 writeH(0x00);
  64.                
  65.                
  66.                 if (product.getItemId() >= 3960 && product.getItemId() <= 4026)
  67.                     writeQ((int) (product.getPrice() * Config.RATE_SIEGE_GUARDS_PRICE * (1 + _taxRate)));
  68.                 else
  69.                     writeQ((int) (product.getPrice() * (1 + _taxRate)));
  70.                                 // T1
  71.             //  for (byte i = 0; i < 8; i++)
  72.             //  {
  73.             //      writeH(0x00);
  74.             //  }
  75.             }
  76.         }
  77.     }
  78. }
RAW Paste Data