Examples of TradeItem


Examples of l2p.gameserver.model.TradeItem

      _seller.sendPacket(Msg.THIS_ACCOUNT_CANOT_USE_PRIVATE_STORES);
      _fail = 1;
      return;
    }
    _buyerlist = _buyer.getBuyList();
    TradeItem temp;
    long sum = 0;
    for(int i = 0; i < _count; i++)
    {
      temp = new TradeItem();
      readD(); // ObjectId, не работает, поскольку используется id вещи-образца скупщика
      temp.setItemId(readD());
      readH();
      readH();
      temp.setCount(readQ());
      temp.setOwnersPrice(readQ());
      if(temp.getItemId() < 1 || temp.getCount() < 1 || temp.getOwnersPrice() < 1)
      {
        _seller.sendPacket(Msg.ActionFail, Msg.THE_ATTEMPT_TO_SELL_HAS_FAILED);
        _fail = 1;
        return;
      }
      sum += temp.getCount() * temp.getOwnersPrice();
      L2ItemInstance SIItem = _seller.getInventory().getItemByItemId(temp.getItemId());
      if(SIItem == null)
      {
        _seller.sendActionFailed();
        _log.warning("Player " + _seller.getName() + " tries to sell to PSB:" + _buyer.getName() + " item not in inventory");
        return;
      }
      if(SIItem.isEquipped())
      {
        _seller.sendPacket(Msg.ActionFail, Msg.THE_ATTEMPT_TO_SELL_HAS_FAILED);
        _fail = 1;
        return;
      }
      temp.setObjectId(SIItem.getObjectId());
      if(temp.getCount() > SIItem.getCount())
      {
        temp.setCount(SIItem.getCount());
      }
      temp.setEnchantLevel(SIItem.getEnchantLevel());
      temp.setAttackElement(SIItem.getAttackElement());
      temp.setDefenceFire(SIItem.getDefenceFire());
      temp.setDefenceWater(SIItem.getDefenceWater());
      temp.setDefenceWind(SIItem.getDefenceWind());
      temp.setDefenceEarth(SIItem.getDefenceEarth());
      temp.setDefenceHoly(SIItem.getDefenceHoly());
      temp.setDefenceUnholy(SIItem.getDefenceUnholy());
      _sellerlist.add(temp);
    }
    if(sum > _buyer.getAdena()) // если у продавца не хватает денег - снимать с трейда, ибо нефиг
    {
      _seller.sendPacket(Msg.ActionFail, Msg.THE_ATTEMPT_TO_SELL_HAS_FAILED);
View Full Code Here

Examples of l2p.gameserver.model.TradeItem

    {
      activeChar.sendPacket(Msg.THIS_ITEM_CANNOT_BE_TRADED_OR_SOLD);
      return;
    }
    long InvItemCount = InvItem.getCount();
    TradeItem tradeItem = getItem(_objectId, transaction.getExchangeList(activeChar));
    long realCount = Math.min(_amount, InvItemCount);
    long leaveCount = InvItemCount - realCount;
    if(tradeItem == null)
    {
      // добавляем новую вещь в список
      tradeItem = new TradeItem(InvItem);
      tradeItem.setCount(realCount);
      transaction.getExchangeList(activeChar).add(tradeItem);
    }
    else
    {
      // меняем количество уже имеющегося
      if(!InvItem.canBeTraded(activeChar))
      {
        return;
      }
      long TradeItemCount = tradeItem.getCount();
      if(InvItemCount == TradeItemCount) // мы уже предлогаем всё что имеем
      {
        return;
      }
      try
      {
        if(SafeMath.safeAddLong(_amount, TradeItemCount) >= InvItemCount)
        {
          realCount = InvItemCount - TradeItemCount;
        }
      }
      catch(ArithmeticException e)
      {
        activeChar.sendPacket(Msg.SYSTEM_ERROR, Msg.ActionFail);
        return;
      }
      tradeItem.setCount(realCount + TradeItemCount);
      leaveCount = InvItemCount - realCount - TradeItemCount;
    }
    activeChar.sendPacket(new TradeOwnAdd(InvItem, tradeItem.getCount()), new TradeUpdate(InvItem, leaveCount));
    requestor.sendPacket(new TradeOtherAdd(InvItem, tradeItem.getCount()));
  }
View Full Code Here

Examples of lineage2.gameserver.model.items.TradeItem

          if (si.getObjectId() == item.getObjectId())
          {
            if (si.getCount() == item.getCount())
              continue loop;
            // Показывает остаток вещей для продажи
            TradeItem ti = new TradeItem(item);
            ti.setCount(item.getCount() - si.getCount());
            _sellList.add(ti);
            continue loop;
          }
        _sellList.add(new TradeItem(item));
      }
  }
View Full Code Here

Examples of lineage2.gameserver.model.items.TradeItem

    List<TradeItem> buyList = buyer.getBuyList();
    ItemInstance[] items = seller.getInventory().getItems();

    for (TradeItem bi : buyList)
    {
      TradeItem si = null;
      for (ItemInstance item : items)
        if (item.getItemId() == bi.getItemId() && item.canBeTraded(seller))
        {
          si = new TradeItem(item);
          _sellList.add(si);
          si.setOwnersPrice(bi.getOwnersPrice());
          si.setCount(bi.getCount());
          si.setCurrentValue(Math.min(bi.getCount(), item.getCount()));
        }
      if (si == null)
      {
        si = new TradeItem();
        si.setItemId(bi.getItemId());
        si.setOwnersPrice(bi.getOwnersPrice());
        si.setCount(bi.getCount());
        si.setCurrentValue(0);
        _sellList.add(si);
      }
    }
  }
View Full Code Here

Examples of lineage2.gameserver.model.items.TradeItem

      for (int i = 0; i < _count; i++)
      {
        int objectId = _items[i];
        long count = _itemQ[i];
        long price = _itemP[i];
        TradeItem bi = null;
        for (TradeItem si : sellList)
        {
          if (si.getObjectId() == objectId)
          {
            if (si.getOwnersPrice() == price)
            {
              if (count > si.getCount())
              {
                break loop;
              }
              ItemInstance item = seller.getInventory().getItemByObjectId(objectId);
              if ((item == null) || (item.getCount() < count) || !item.canBeTraded(seller))
              {
                break loop;
              }
              totalCost = SafeMath.addAndCheck(totalCost, SafeMath.mulAndCheck(count, price));
              weight = SafeMath.addAndCheck(weight, SafeMath.mulAndCheck(count, item.getTemplate().getWeight()));
              if (!item.isStackable() || (buyer.getInventory().getItemByItemId(item.getItemId()) == null))
              {
                slots++;
              }
              bi = new TradeItem();
              bi.setObjectId(objectId);
              bi.setItemId(item.getItemId());
              bi.setCount(count);
              bi.setOwnersPrice(price);
              buyList.add(bi);
              break;
            }
          }
        }
      }
    }
    catch (ArithmeticException ae)
    {
      buyList.clear();
      sendPacket(Msg.YOU_HAVE_EXCEEDED_THE_QUANTITY_THAT_CAN_BE_INPUTTED);
      return;
    }
    finally
    {
      try
      {
        if ((buyList.size() != _count) || ((seller.getPrivateStoreType() == Player.STORE_PRIVATE_SELL_PACKAGE) && (buyList.size() != sellList.size())))
        {
          buyer.sendPacket(Msg.THE_ATTEMPT_TO_TRADE_HAS_FAILED);
          buyer.sendActionFailed();
          return;
        }
        if (!buyer.getInventory().validateWeight(weight))
        {
          buyer.sendPacket(Msg.YOU_HAVE_EXCEEDED_THE_WEIGHT_LIMIT);
          buyer.sendActionFailed();
          return;
        }
        if (!buyer.getInventory().validateCapacity(slots))
        {
          buyer.sendPacket(Msg.YOUR_INVENTORY_IS_FULL);
          buyer.sendActionFailed();
          return;
        }
        if (!buyer.reduceAdena(totalCost))
        {
          buyer.sendPacket(Msg.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
          buyer.sendActionFailed();
          return;
        }
        ItemInstance item;
        for (TradeItem bi : buyList)
        {
          item = seller.getInventory().removeItemByObjectId(bi.getObjectId(), bi.getCount());
          for (TradeItem si : sellList)
          {
            if (si.getObjectId() == bi.getObjectId())
            {
              si.setCount(si.getCount() - bi.getCount());
              if (si.getCount() < 1L)
              {
                sellList.remove(si);
              }
              break;
View Full Code Here

Examples of lineage2.gameserver.model.items.TradeItem

      else
      {
        ItemInstance[] items = activeChar.getRefund().getItems();
        _refundList = new ArrayList<TradeItem>(items.length);
        for (ItemInstance item : items)
          _refundList.add(new TradeItem(item));

        items = activeChar.getInventory().getItems();
        _sellList = new ArrayList<TradeItem>(items.length);
        for (ItemInstance item : items)
          if (item.canBeSold(activeChar))
            _sellList.add(new TradeItem(item));
      }
    }
View Full Code Here

Examples of lineage2.gameserver.model.items.TradeItem

                            {
                              continue;
                            }
                            counterItems++;
                            long price = i.getAttributes().getNamedItem("price") != null ? Long.parseLong(i.getAttributes().getNamedItem("price").getNodeValue()) : Math.round(template.getReferencePrice() * markup);
                            TradeItem item = new TradeItem();
                            item.setItemId(itemId);
                            final int itemCount = i.getAttributes().getNamedItem("count") != null ? Integer.parseInt(i.getAttributes().getNamedItem("count").getNodeValue()) : 0;
                            final int itemRechargeTime = i.getAttributes().getNamedItem("time") != null ? Integer.parseInt(i.getAttributes().getNamedItem("time").getNodeValue()) : 0;
                            item.setOwnersPrice(price);
                            item.setCount(itemCount);
                            item.setCurrentValue(itemCount);
                            item.setLastRechargeTime((int) (System.currentTimeMillis() / 60000));
                            item.setRechargeTime(itemRechargeTime);
                            tl.addItem(item);
                          }
                        }
                        _lists.put(shop_id, tl);
                      }
View Full Code Here

Examples of lineage2.gameserver.model.items.TradeItem

     */
    public synchronized void updateItems(List<TradeItem> buyList)
    {
      for (TradeItem ti : buyList)
      {
        TradeItem ic = getItemByItemId(ti.getItemId());
        if (ic.isCountLimited())
        {
          ic.setCurrentValue(Math.max(ic.getCurrentValue() - ti.getCount(), 0));
        }
      }
    }
View Full Code Here

Examples of lineage2.gameserver.model.items.TradeItem

    if (!TradeHelper.checksIfCanOpenStore(seller, _package ? Player.STORE_PRIVATE_SELL_PACKAGE : Player.STORE_PRIVATE_SELL))
    {
      seller.sendActionFailed();
      return;
    }
    TradeItem temp;
    List<TradeItem> sellList = new CopyOnWriteArrayList<>();
    seller.getInventory().writeLock();
    try
    {
      for (int i = 0; i < _count; i++)
      {
        int objectId = _items[i];
        long count = _itemQ[i];
        long price = _itemP[i];
        ItemInstance item = seller.getInventory().getItemByObjectId(objectId);
        if ((item == null) || (item.getCount() < count) || !item.canBeTraded(seller) || (item.getItemId() == ItemTemplate.ITEM_ID_ADENA))
        {
          continue;
        }
        temp = new TradeItem(item);
        temp.setCount(count);
        temp.setOwnersPrice(price);
        sellList.add(temp);
      }
    }
    finally
    {
View Full Code Here

Examples of lineage2.gameserver.model.items.TradeItem

      parthner1.sendPacket(SystemMsg.THIS_ITEM_CANNOT_BE_TRADED_OR_SOLD);
      return;
    }
    long count = Math.min(_amount, item.getCount());
    List<TradeItem> tradeList = parthner1.getTradeList();
    TradeItem tradeItem = null;
    try
    {
      for (TradeItem ti : parthner1.getTradeList())
      {
        if (ti.getObjectId() == _objectId)
        {
          count = SafeMath.addAndCheck(count, ti.getCount());
          count = Math.min(count, item.getCount());
          ti.setCount(count);
          tradeItem = ti;
          break;
        }
      }
    }
    catch (ArithmeticException ae)
    {
      parthner1.sendPacket(SystemMsg.INCORRECT_ITEM_COUNT);
      return;
    }
    if (tradeItem == null)
    {
      tradeItem = new TradeItem(item);
      tradeItem.setCount(count);
      tradeList.add(tradeItem);
    }
    parthner1.sendPacket(new TradeOwnAdd(tradeItem, tradeItem.getCount()), new TradeUpdate(tradeItem, item.getCount() - tradeItem.getCount()));
    parthner2.sendPacket(new TradeOtherAdd(tradeItem, tradeItem.getCount()));
  }
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.