Examples of CropProcure


Examples of l2p.gameserver.instancemanager.CastleManorManager.CropProcure

      Castle castle = manor.getCastle();
      if(castle == null)
      {
        return;
      }
      CropProcure crop = castle.getCrop(itemId, CastleManorManager.PERIOD_CURRENT);
      if(crop == null)
      {
        return;
      }
      int rewardId = L2Manor.getInstance().getRewardItem(itemId, crop.getReward());
      L2Item template = ItemTable.getInstance().getTemplate(rewardId);
      weight += count * template.getWeight();
      long add_slot = 0;
      if(!template.isStackable())
      {
View Full Code Here

Examples of l2p.gameserver.instancemanager.CastleManorManager.CropProcure

        sendPacket(Msg.YOU_HAVE_EXCEEDED_THE_QUANTITY_THAT_CAN_BE_INPUTTED);
        return;
      }
      try
      {
        CropProcure crop = CastleManager.getInstance().getCastleByIndex(manorId).getCrop(itemId, CastleManorManager.PERIOD_CURRENT);
        int rewardItemId = L2Manor.getInstance().getRewardItem(itemId, crop.getReward());
        L2Item template = ItemTable.getInstance().getTemplate(rewardItemId);
        weight += count * template.getWeight();
        if(!template.isStackable())
        {
          slots += count;
        }
        else if(player.getInventory().getItemByItemId(itemId) == null)
        {
          slots++;
        }
      }
      catch(NullPointerException e)
      {
        continue;
      }
    }
    if(!player.getInventory().validateWeight(weight))
    {
      sendPacket(Msg.YOU_HAVE_EXCEEDED_THE_WEIGHT_LIMIT);
      return;
    }
    if(!player.getInventory().validateCapacity(slots))
    {
      sendPacket(Msg.YOUR_INVENTORY_IS_FULL);
      return;
    }
    // Proceed the purchase
    for(int i = 0; i < _size; i++)
    {
      int objId = (int) _items[i * 4 + 0];
      int cropId = (int) _items[i * 4 + 1];
      int manorId = (int) _items[i * 4 + 2];
      long count = _items[i * 4 + 3];
      if(objId == 0 || cropId == 0 || manorId == 0 || count == 0)
      {
        continue;
      }
      if(count < 1)
      {
        continue;
      }
      CropProcure crop = null;
      try
      {
        crop = CastleManager.getInstance().getCastleByIndex(manorId).getCrop(cropId, CastleManorManager.PERIOD_CURRENT);
      }
      catch(NullPointerException e)
      {
        continue;
      }
      if(crop == null || crop.getId() == 0 || crop.getPrice() == 0)
      {
        continue;
      }
      long fee = 0; // fee for selling to other manors
      int rewardItem = L2Manor.getInstance().getRewardItem(cropId, crop.getReward());
      if(count > crop.getAmount())
      {
        continue;
      }
      long sellPrice = count * crop.getPrice();
      long rewardPrice = ItemTable.getInstance().getTemplate(rewardItem).getReferencePrice();
      if(rewardPrice == 0)
      {
        continue;
      }
      double reward = ((double) sellPrice) / rewardPrice;
      long rewardItemCount = ((long) reward) + (Rnd.nextDouble() <= reward % 1 ? 1 : 0); // дробную часть округляем с шансом пропорционально размеру дробной части
      if(rewardItemCount < 1)
      {
        SystemMessage sm = new SystemMessage(SystemMessage.FAILED_IN_TRADING_S2_OF_CROP_S1);
        sm.addItemName(cropId);
        sm.addNumber(count);
        player.sendPacket(sm);
        continue;
      }
      if(manorId != currentManorId)
      {
        fee = sellPrice * 5 / 100;
      } // 5% fee for selling to other manor
      if(player.getInventory().getAdena() < fee)
      {
        SystemMessage sm = new SystemMessage(SystemMessage.FAILED_IN_TRADING_S2_OF_CROP_S1);
        sm.addItemName(cropId);
        sm.addNumber(count);
        player.sendPacket(sm, Msg.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
        continue;
      }
      // Add item to Inventory and adjust update packet
      L2ItemInstance itemDel = null;
      L2ItemInstance itemAdd = null;
      if(player.getInventory().getItemByObjectId(objId) == null)
      {
        continue;
      }
      // check if player have correct items count
      L2ItemInstance item = player.getInventory().getItemByObjectId(objId);
      if(item.getCount() < count)
      {
        continue;
      }
      if(crop.getId() != item.getItemId())
      {
        Util.handleIllegalPlayerAction(player, "RequestProcureCropList", "packet cheat 1", 2);
        break;
      }
      itemDel = player.getInventory().destroyItem(objId, count, true);
      if(itemDel == null)
      {
        continue;
      }
      if(fee > 0)
      {
        player.getInventory().reduceAdena(fee);
      }
      crop.setAmount(crop.getAmount() - count);
      CastleManager.getInstance().getCastleByIndex(manorId).updateCrop(crop.getId(), crop.getAmount(), CastleManorManager.PERIOD_CURRENT);
      itemAdd = player.getInventory().addItem(rewardItem, rewardItemCount);
      if(itemAdd == null)
      {
        continue;
      }
View Full Code Here

Examples of l2p.gameserver.instancemanager.CastleManorManager.CropProcure

      writeD(L2Manor.getInstance().getRewardItem(item.getItemId(), 1)); // reward 1 id
      writeC(1);
      writeD(L2Manor.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
View Full Code Here

Examples of l2p.gameserver.instancemanager.CastleManorManager.CropProcure

      _cropData[i * 14 + 3] = L2Manor.getInstance().getRewardItem(cr, 2);
      _cropData[i * 14 + 4] = L2Manor.getInstance().getCropPuchaseLimit(cr);
      _cropData[i * 14 + 5] = 0; // Looks like not used
      _cropData[i * 14 + 6] = L2Manor.getInstance().getCropBasicPrice(cr) * 60 / 100;
      _cropData[i * 14 + 7] = L2Manor.getInstance().getCropBasicPrice(cr) * 10;
      CropProcure cropPr = c.getCrop(cr, CastleManorManager.PERIOD_CURRENT);
      if(cropPr != null)
      {
        _cropData[i * 14 + 8] = cropPr.getStartAmount();
        _cropData[i * 14 + 9] = cropPr.getPrice();
        _cropData[i * 14 + 10] = cropPr.getReward();
      }
      else
      {
        _cropData[i * 14 + 8] = 0;
        _cropData[i * 14 + 9] = 0;
        _cropData[i * 14 + 10] = 0;
      }
      cropPr = c.getCrop(cr, CastleManorManager.PERIOD_NEXT);
      if(cropPr != null)
      {
        _cropData[i * 14 + 11] = cropPr.getStartAmount();
        _cropData[i * 14 + 12] = cropPr.getPrice();
        _cropData[i * 14 + 13] = cropPr.getReward();
      }
      else
      {
        _cropData[i * 14 + 11] = 0;
        _cropData[i * 14 + 12] = 0;
View Full Code Here

Examples of lineage2.gameserver.templates.manor.CropProcure

                                                                      // 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
View Full Code Here

Examples of lineage2.gameserver.templates.manor.CropProcure

   * @param type int
   * @return long
   */
  public synchronized long getRewardAmountPerCrop(int castle, int cropId, int type)
  {
    final CropProcure cs = ResidenceHolder.getInstance().getResidence(Castle.class, castle).getCropProcure(CastleManorManager.PERIOD_CURRENT).get(cropId);
    for (SeedData seed : _seeds.values())
    {
      if (seed.getCrop() == cropId)
      {
        return cs.getPrice() / getCropBasicPrice(seed.getReward(type));
      }
    }
    return -1;
  }
View Full Code Here

Examples of lineage2.gameserver.templates.manor.CropProcure

    {
      for (int i = 0; i < _count; i++)
      {
        int itemId = _items[i];
        long count = _itemQ[i];
        CropProcure crop = castle.getCrop(itemId, CastleManorManager.PERIOD_CURRENT);
        if (crop == null)
        {
          return;
        }
        int rewradItemId = Manor.getInstance().getRewardItem(itemId, castle.getCrop(itemId, CastleManorManager.PERIOD_CURRENT).getReward());
View Full Code Here

Examples of lineage2.gameserver.templates.manor.CropProcure

    _castleCrops = new TreeMap<Integer, CropProcure>();

    List<Castle> castleList = ResidenceHolder.getInstance().getResidenceList(Castle.class);
    for (Castle c : castleList)
    {
      CropProcure cropItem = c.getCrop(_cropId, CastleManorManager.PERIOD_CURRENT);
      if (cropItem != null && cropItem.getAmount() > 0)
        _castleCrops.put(c.getId(), cropItem);
    }
  }
View Full Code Here

Examples of lineage2.gameserver.templates.manor.CropProcure

    writeD(_cropId); // crop id
    writeD(_castleCrops.size()); // size

    for (int manorId : _castleCrops.keySet())
    {
      CropProcure crop = _castleCrops.get(manorId);
      writeD(manorId); // manor name
      writeQ(crop.getAmount()); // buy residual
      writeQ(crop.getPrice()); // buy price
      writeC(crop.getReward()); // reward type
    }
  }
View Full Code Here

Examples of lineage2.gameserver.templates.manor.CropProcure

          int rewardType = rs.getInt("reward_type");
          long price = rs.getLong("price");
          int period = rs.getInt("period");
          if (period == PERIOD_CURRENT)
          {
            procure.add(new CropProcure(cropId, canBuy, rewardType, startBuy, price));
          }
          else
          {
            procureNext.add(new CropProcure(cropId, canBuy, rewardType, startBuy, price));
          }
        }
        castle.setCropProcure(procure, PERIOD_CURRENT);
        castle.setCropProcure(procureNext, PERIOD_NEXT);
        if (!procure.isEmpty() || !procureNext.isEmpty() || !production.isEmpty() || !productionNext.isEmpty())
View Full Code Here
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.