Package l2p.gameserver.model.items

Examples of l2p.gameserver.model.items.Warehouse


    if(activeChar.isInStoreMode())
    {
      activeChar.sendPacket(Msg.WHILE_OPERATING_A_PRIVATE_STORE_OR_WORKSHOP_YOU_CANNOT_DISCARD_DESTROY_OR_TRADE_AN_ITEM);
      return;
    }
    Warehouse warehouse;
    PcInventory inventory = activeChar.getInventory();
    boolean privatewh = activeChar.getUsingWarehouseType() != WarehouseType.CLAN;
    int slotsleft;
    long adenaDeposit = 0;
    // Список предметов, уже находящихся на складе
    L2ItemInstance[] itemsOnWarehouse;
    if(privatewh)
    {
      warehouse = activeChar.getWarehouse();
      itemsOnWarehouse = warehouse.listItems(ItemClass.ALL);
      slotsleft = activeChar.getWarehouseLimit() - itemsOnWarehouse.length;
    }
    else
    {
      warehouse = activeChar.getClan().getWarehouse();
      itemsOnWarehouse = warehouse.listItems(ItemClass.ALL);
      slotsleft = activeChar.getClan().getWhBonus() + Config.WAREHOUSE_SLOTS_CLAN - itemsOnWarehouse.length;
    }
    // Список стекуемых предметов, уже находящихся на складе
    GArray<Integer> stackableList = new GArray<Integer>();
    for(L2ItemInstance i : itemsOnWarehouse)
    {
      if(i.isStackable())
      {
        stackableList.add(i.getItemId());
      }
    }
    // Создаем новый список передаваемых предметов, на основе полученных данных
    GArray<L2ItemInstance> itemsToStoreList = new GArray<L2ItemInstance>(_items.size() + 1);
    for(Integer itemObjectId : _items.keySet())
    {
      L2ItemInstance item = inventory.getItemByObjectId(itemObjectId);
      if(item == null || !item.canBeStored(activeChar, privatewh)) // а его вообще положить можно?
      {
        continue;
      }
      if(!item.isStackable() || !stackableList.contains(item.getItemId())) // вещь требует слота
      {
        if(slotsleft <= 0) // если слоты кончились нестекуемые вещи и отсутствующие стекуемые пропускаем
        {
          continue;
        }
        slotsleft--; // если слот есть то его уже нет
      }
      if(item.getItemId() == 57)
      {
        adenaDeposit = _items.get(itemObjectId);
      }
      itemsToStoreList.add(item);
    }
    // Проверяем, хватит ли у нас денег на уплату налога
    int fee = itemsToStoreList.size() * _WAREHOUSE_FEE;
    if(fee + adenaDeposit > activeChar.getAdena())
    {
      activeChar.sendPacket(Msg.YOU_LACK_THE_FUNDS_NEEDED_TO_PAY_FOR_THIS_TRANSACTION);
      return;
    }
    // Сообщаем о том, что слоты кончились
    if(slotsleft <= 0)
    {
      activeChar.sendPacket(Msg.YOUR_WAREHOUSE_IS_FULL);
    }
    // Перекидываем
    for(L2ItemInstance itemToStore : itemsToStoreList)
    {
      warehouse.addItem(inventory.dropItem(itemToStore, _items.get(itemToStore.getObjectId()), false), activeChar.getName());
    }
    // Платим налог
    activeChar.reduceAdena(fee, true);
    // Обновляем параметры персонажа
    activeChar.updateStats();
View Full Code Here


      {
        // Переносим сокровищницу в вархауз старого владельца
        long amount = getTreasury();
        if(amount > 0)
        {
          Warehouse warehouse = oldOwner.getWarehouse();
          if(warehouse != null)
          {
            warehouse.addItem(57, amount, null);
            addToTreasuryNoTax(-amount, false, false);
            Log.add(getName() + "|" + -amount + "|Castle:changeOwner", "treasury");
          }
        }
        // Проверяем членов старого клана владельца, снимаем короны замков и корону лорда с лидера
View Full Code Here

      L2Clan clan = ClanTable.getInstance().getClan(c.getOwnerId());
      if(clan == null)
      {
        continue;
      }
      Warehouse cwh = clan.getWarehouse();
      for(CropProcure crop : c.getCropProcure(PERIOD_CURRENT))
      {
        if(crop.getStartAmount() == 0)
        {
          continue;
        }
        // adding bought crops to clan warehouse
        if(crop.getStartAmount() > crop.getAmount())
        {
          _log.info("Manor System [" + c.getName() + "]: Start Amount of Crop " + crop.getStartAmount() + " > Amount of current " + crop.getAmount());
          long count = crop.getStartAmount() - crop.getAmount();
          count = count * 90 / 100;
          if(count < 1 && Rnd.get(99) < 90)
          {
            count = 1;
          }
          if(count >= 1)
          {
            int id = L2Manor.getInstance().getMatureCrop(crop.getId());
            cwh.addItem(id, count, null);
          }
        }
        // reserved and not used money giving back to treasury
        if(crop.getAmount() > 0)
        {
View Full Code Here

    if(!activeChar.getInventory().validateWeight(weight))
    {
      activeChar.sendPacket(Msg.YOU_HAVE_EXCEEDED_THE_WEIGHT_LIMIT);
      return;
    }
    Warehouse warehouse;
    if(activeChar.getUsingWarehouseType() == WarehouseType.PRIVATE)
    {
      warehouse = activeChar.getWarehouse();
    }
    else if(activeChar.getUsingWarehouseType() == WarehouseType.CLAN)
    {
      ClanWarehousePool.getInstance().AddWork(activeChar, olditems, counts);
      return;
    }
    else if(activeChar.getUsingWarehouseType() == WarehouseType.FREIGHT)
    {
      warehouse = activeChar.getFreight();
    }
    else
    {
      // Something went wrong!
      _log.warning("Error retrieving a warehouse object for char " + activeChar.getName() + " - using warehouse type: " + activeChar.getUsingWarehouseType());
      return;
    }
    for(int i = 0; i < olditems.length; i++)
    {
      L2ItemInstance TransferItem = warehouse.takeItemByObj(olditems[i], counts[i]);
      if(TransferItem == null)
      {
        _log.warning("Error getItem from warhouse player: " + activeChar.getName());
      }
      activeChar.getInventory().addItem(TransferItem);
View Full Code Here

    if(fee + adenaDeposit > activeChar.getAdena())
    {
      activeChar.sendPacket(Msg.YOU_LACK_THE_FUNDS_NEEDED_TO_PAY_FOR_THIS_TRANSACTION);
      return;
    }
    Warehouse warehouse = new PcFreight(_objectID);
    // Item Max Limit Check
    if(_items.size() + warehouse.listItems(ItemClass.ALL).length > activeChar.getFreightLimit())
    {
      activeChar.sendPacket(Msg.THE_CAPACITY_OF_THE_WAREHOUSE_HAS_BEEN_EXCEEDED);
      return;
    }
    // Transfer the items from activeChar's Inventory Instance to destChar's Freight Instance
    for(Integer itemObjectId : _items.keySet())
    {
      L2ItemInstance found = inventory.getItemByObjectId(itemObjectId);
      if(found == null || !found.canBeDropped(activeChar, false))
      {
        continue;
      }
      warehouse.addItem(inventory.dropItem(found, _items.get(itemObjectId), false), null);
    }
    activeChar.reduceAdena(fee, true);
    activeChar.updateStats();
    // Delete destination L2Player used for freight
    activeChar.sendPacket(Msg.THE_TRANSACTION_IS_COMPLETE);
View Full Code Here

  {
    if(!player.getPlayerAccess().UseWarehouse)
    {
      return;
    }
    Warehouse list = player.getFreight();
    if(list != null)
    {
      player.sendPacket(new WareHouseWithdrawList(player, WarehouseType.FREIGHT, ItemClass.ALL));
    }
    player.sendActionFailed();
View Full Code Here

TOP

Related Classes of l2p.gameserver.model.items.Warehouse

Copyright © 2018 www.massapicom. 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.