Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/model/tradelist/TradeList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/model/tradelist/TradeList.java
- index 805345e..2656768 100644
- --- a/aCis_gameserver/java/net/sf/l2j/gameserver/model/tradelist/TradeList.java
- +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/model/tradelist/TradeList.java
- @@ -563,8 +563,8 @@ public class TradeList
- return 1;
- int slots = 0;
- - int weight = 0;
- - int totalPrice = 0;
- + long weight = 0;
- + long totalPrice = 0;
- final PcInventory ownerInventory = _owner.getInventory();
- final PcInventory playerInventory = player.getInventory();
- @@ -599,17 +599,9 @@ public class TradeList
- continue;
- }
- - // check for overflow in the single item
- - if ((Integer.MAX_VALUE / item.getCount()) < item.getPrice())
- - {
- - // private store attempting to overflow - disable it
- - lock();
- - return 1;
- - }
- -
- - totalPrice += item.getCount() * item.getPrice();
- - // check for overflow of the total price
- - if (Integer.MAX_VALUE < totalPrice || totalPrice < 0)
- + totalPrice += (long)item.getCount() * item.getPrice();
- + // Check for overflow
- + if (Integer.MAX_VALUE / item.getCount() < item.getPrice() || totalPrice > Integer.MAX_VALUE || totalPrice < 0)
- {
- // private store attempting to overflow - disable it
- lock();
- @@ -628,7 +620,7 @@ public class TradeList
- Item template = ItemTable.getInstance().getTemplate(item.getItemId());
- if (template == null)
- continue;
- - weight += item.getCount() * template.getWeight();
- + weight += (long)item.getCount() * template.getWeight();
- if (!template.isStackable())
- slots += item.getCount();
- else if (playerInventory.getItemByItemId(item.getItemId()) == null)
- @@ -641,15 +633,15 @@ public class TradeList
- return 1;
- }
- - if (!playerInventory.validateWeight(weight))
- + if (!playerInventory.validateCapacity(slots))
- {
- - player.sendPacket(SystemMessageId.WEIGHT_LIMIT_EXCEEDED);
- + player.sendPacket(SystemMessageId.SLOTS_FULL);
- return 1;
- }
- - if (!playerInventory.validateCapacity(slots))
- + if (weight > Integer.MAX_VALUE || weight < 0 || !playerInventory.validateWeight((int)weight))
- {
- - player.sendPacket(SystemMessageId.SLOTS_FULL);
- + player.sendPacket(SystemMessageId.WEIGHT_LIMIT_EXCEEDED);
- return 1;
- }
- @@ -658,14 +650,14 @@ public class TradeList
- final InventoryUpdate playerIU = new InventoryUpdate();
- final ItemInstance adenaItem = playerInventory.getAdenaInstance();
- - if (!playerInventory.reduceAdena("PrivateStore", totalPrice, player, _owner))
- + if (totalPrice < 0 || !playerInventory.reduceAdena("PrivateStore", (int)totalPrice, player, _owner))
- {
- player.sendPacket(SystemMessageId.YOU_NOT_ENOUGH_ADENA);
- return 1;
- }
- playerIU.addItem(adenaItem);
- - ownerInventory.addAdena("PrivateStore", totalPrice, _owner, player);
- + ownerInventory.addAdena("PrivateStore", (int)totalPrice, _owner, player);
- boolean ok = true;
- @@ -792,16 +784,9 @@ public class TradeList
- if (!found)
- continue;
- - // check for overflow in the single item
- - if ((Integer.MAX_VALUE / item.getCount()) < item.getPrice())
- - {
- - lock();
- - break;
- - }
- -
- - int _totalPrice = totalPrice + item.getCount() * item.getPrice();
- - // check for overflow of the total price
- - if (Integer.MAX_VALUE < _totalPrice || _totalPrice < 0)
- + long _totalPrice = totalPrice + (long)item.getCount() * item.getPrice();
- + // check for overflow
- + if (Integer.MAX_VALUE / item.getCount() < item.getPrice() || _totalPrice > Integer.MAX_VALUE || _totalPrice < 0)
- {
- lock();
- break;
- @@ -844,7 +829,7 @@ public class TradeList
- ok = true;
- // increase total price only after successful transaction
- - totalPrice = _totalPrice;
- + totalPrice = (int)_totalPrice;
- // Add changes to inventory update packets
- if (oldItem.getCount() > 0 && oldItem != newItem)
- diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/MultiSellChoose.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/MultiSellChoose.java
- index 8780de4..df4a463 100644
- --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/MultiSellChoose.java
- +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/MultiSellChoose.java
- @@ -105,7 +105,7 @@ public class MultiSellChoose extends L2GameClientPacket
- }
- int slots = 0;
- - int weight = 0;
- + long weight = 0;
- for (Ingredient e : entry.getProducts())
- {
- if (e.getItemId() < 0)
- @@ -116,18 +116,18 @@ public class MultiSellChoose extends L2GameClientPacket
- else if (player.getInventory().getItemByItemId(e.getItemId()) == null)
- slots++;
- - weight += e.getItemCount() * _amount * e.getWeight();
- + weight += (long)e.getItemCount() * _amount * e.getWeight();
- }
- - if (!inv.validateWeight(weight))
- + if (!inv.validateCapacity(slots))
- {
- - player.sendPacket(SystemMessageId.WEIGHT_LIMIT_EXCEEDED);
- + player.sendPacket(SystemMessageId.SLOTS_FULL);
- return;
- }
- - if (!inv.validateCapacity(slots))
- + if (weight > Integer.MAX_VALUE || weight < 0 || !inv.validateWeight((int)weight))
- {
- - player.sendPacket(SystemMessageId.SLOTS_FULL);
- + player.sendPacket(SystemMessageId.WEIGHT_LIMIT_EXCEEDED);
- return;
- }
- @@ -149,7 +149,8 @@ public class MultiSellChoose extends L2GameClientPacket
- // this happens if 1 list entry has the same ingredient twice (example 2 swords = 1 dual)
- if (ex.getItemId() == e.getItemId() && ex.getEnchantLevel() == e.getEnchantLevel())
- {
- - if (ex.getItemCount() + e.getItemCount() > Integer.MAX_VALUE)
- + long totalCount = (long)ex.getItemCount() + e.getItemCount();
- + if (totalCount > Integer.MAX_VALUE || totalCount < 0)
- {
- player.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_QUANTITY_THAT_CAN_BE_INPUTTED);
- return;
- @@ -157,7 +158,7 @@ public class MultiSellChoose extends L2GameClientPacket
- // two same ingredients, merge into one and replace old
- final Ingredient ing = ex.getCopy();
- - ing.setItemCount(ex.getItemCount() + e.getItemCount());
- + ing.setItemCount((int)totalCount);
- ingredientsList.set(i, ing);
- newIng = false;
- @@ -173,7 +174,7 @@ public class MultiSellChoose extends L2GameClientPacket
- // now check if the player has sufficient items in the inventory to cover the ingredients' expences
- for (Ingredient e : ingredientsList)
- {
- - if (e.getItemCount() * _amount > Integer.MAX_VALUE)
- + if (Integer.MAX_VALUE / e.getItemCount() < _amount)
- {
- player.sendPacket(SystemMessageId.YOU_HAVE_EXCEEDED_QUANTITY_THAT_CAN_BE_INPUTTED);
- return;
- @@ -203,7 +204,7 @@ public class MultiSellChoose extends L2GameClientPacket
- {
- // if this is not a list that maintains enchantment, check the count of all items that have the given id.
- // otherwise, check only the count of items with exactly the needed enchantment level
- - if (inv.getInventoryItemCount(e.getItemId(), list.getMaintainEnchantment() ? e.getEnchantLevel() : -1, false) < ((Config.ALT_BLACKSMITH_USE_RECIPES || !e.getMaintainIngredient()) ? (e.getItemCount() * _amount) : e.getItemCount()))
- + if (inv.getInventoryItemCount(e.getItemId(), list.getMaintainEnchantment() ? e.getEnchantLevel() : -1, false) < ((Config.ALT_BLACKSMITH_USE_RECIPES || !e.getMaintainIngredient()) ? e.getItemCount() * _amount : e.getItemCount()))
- {
- player.sendPacket(SystemMessageId.NOT_ENOUGH_ITEMS);
- return;
- diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuyItem.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuyItem.java
- index e13baba..fba561b 100644
- --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuyItem.java
- +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuyItem.java
- @@ -42,6 +42,7 @@ public final class RequestBuyItem extends L2GameClientPacket
- protected void readImpl()
- {
- _listId = readD();
- +
- int count = readD();
- if (count <= 0 || count > Config.MAX_ITEM_IN_PACKET || count * BATCH_LENGTH != _buf.remaining())
- return;
- @@ -98,9 +99,9 @@ public final class RequestBuyItem extends L2GameClientPacket
- castleTaxRate = merchant.getCastle().getTaxRate();
- }
- - int subTotal = 0;
- + long totalPrice = 0;
- int slots = 0;
- - int weight = 0;
- + long weight = 0;
- for (IntIntHolder i : _items)
- {
- @@ -140,43 +141,37 @@ public final class RequestBuyItem extends L2GameClientPacket
- return;
- }
- - if ((Integer.MAX_VALUE / i.getValue()) < price)
- - {
- - Util.handleIllegalPlayerAction(player, player.getName() + " of account " + player.getAccountName() + " tried to purchase over " + Integer.MAX_VALUE + " adena worth of goods.", Config.DEFAULT_PUNISH);
- - return;
- - }
- -
- // first calculate price per item with tax, then multiply by count
- price = (int) (price * (1 + castleTaxRate));
- - subTotal += i.getValue() * price;
- -
- - if (subTotal > Integer.MAX_VALUE)
- + totalPrice += (long)i.getValue() * price;
- + // Check for overflow
- + if (Integer.MAX_VALUE / i.getValue() < price || totalPrice > Integer.MAX_VALUE || totalPrice < 0)
- {
- Util.handleIllegalPlayerAction(player, player.getName() + " of account " + player.getAccountName() + " tried to purchase over " + Integer.MAX_VALUE + " adena worth of goods.", Config.DEFAULT_PUNISH);
- return;
- }
- - weight += i.getValue() * product.getItem().getWeight();
- + weight += (long)i.getValue() * product.getItem().getWeight();
- if (!product.getItem().isStackable())
- slots += i.getValue();
- else if (player.getInventory().getItemByItemId(i.getId()) == null)
- slots++;
- }
- - if (weight > Integer.MAX_VALUE || weight < 0 || !player.getInventory().validateWeight(weight))
- + if (!player.getInventory().validateCapacity(slots))
- {
- - sendPacket(SystemMessage.getSystemMessage(SystemMessageId.WEIGHT_LIMIT_EXCEEDED));
- + sendPacket(SystemMessage.getSystemMessage(SystemMessageId.SLOTS_FULL));
- return;
- }
- - if (slots > Integer.MAX_VALUE || slots < 0 || !player.getInventory().validateCapacity(slots))
- + if (weight > Integer.MAX_VALUE || weight < 0 || !player.getInventory().validateWeight((int)weight))
- {
- - sendPacket(SystemMessage.getSystemMessage(SystemMessageId.SLOTS_FULL));
- + sendPacket(SystemMessage.getSystemMessage(SystemMessageId.WEIGHT_LIMIT_EXCEEDED));
- return;
- }
- // Charge buyer and add tax to castle treasury if not owned by npc clan
- - if (subTotal < 0 || !player.reduceAdena("Buy", subTotal, player.getCurrentFolkNPC(), false))
- + if (!player.reduceAdena("Buy", (int)totalPrice, player.getCurrentFolkNPC(), false))
- {
- sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_NOT_ENOUGH_ADENA));
- return;
- @@ -203,7 +198,7 @@ public final class RequestBuyItem extends L2GameClientPacket
- // add to castle treasury
- if (merchant instanceof L2MerchantInstance)
- - ((L2MerchantInstance) merchant).getCastle().addToTreasury((int) (subTotal * castleTaxRate));
- + ((L2MerchantInstance) merchant).getCastle().addToTreasury((int) (totalPrice * castleTaxRate));
- StatusUpdate su = new StatusUpdate(player);
- su.addAttribute(StatusUpdate.CUR_LOAD, player.getCurrentLoad());
- diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuyProcure.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuyProcure.java
- index 74192a1..f94e2c5 100644
- --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuyProcure.java
- +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuyProcure.java
- @@ -91,14 +91,14 @@ public class RequestBuyProcure extends L2GameClientPacket
- Castle castle = ((L2ManorManagerInstance) manager).getCastle();
- int slots = 0;
- - int weight = 0;
- + long weight = 0;
- for (Procure i : _items)
- {
- i.setReward(castle);
- Item template = ItemTable.getInstance().getTemplate(i.getReward());
- - weight += i.getCount() * template.getWeight();
- + weight += (long)i.getCount() * template.getWeight();
- if (!template.isStackable())
- slots += i.getCount();
- @@ -106,15 +106,15 @@ public class RequestBuyProcure extends L2GameClientPacket
- slots++;
- }
- - if (!player.getInventory().validateWeight(weight))
- + if (!player.getInventory().validateCapacity(slots))
- {
- - sendPacket(SystemMessage.getSystemMessage(SystemMessageId.WEIGHT_LIMIT_EXCEEDED));
- + sendPacket(SystemMessage.getSystemMessage(SystemMessageId.SLOTS_FULL));
- return;
- }
- - if (!player.getInventory().validateCapacity(slots))
- + if (weight > Integer.MAX_VALUE || weight < 0 || !player.getInventory().validateWeight((int)weight))
- {
- - sendPacket(SystemMessage.getSystemMessage(SystemMessageId.SLOTS_FULL));
- + sendPacket(SystemMessage.getSystemMessage(SystemMessageId.WEIGHT_LIMIT_EXCEEDED));
- return;
- }
- diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuySeed.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuySeed.java
- index 6edc5d6..9147a25 100644
- --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuySeed.java
- +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBuySeed.java
- @@ -86,9 +86,9 @@ public class RequestBuySeed extends L2GameClientPacket
- if (!player.isInsideRadius(manager, INTERACTION_DISTANCE, true, false))
- return;
- - int totalPrice = 0;
- + long totalPrice = 0;
- int slots = 0;
- - int totalWeight = 0;
- + long weight = 0;
- Castle castle = CastleManager.getInstance().getCastleById(_manorId);
- @@ -98,35 +98,35 @@ public class RequestBuySeed extends L2GameClientPacket
- return;
- totalPrice += i.getPrice();
- -
- - if (totalPrice > Integer.MAX_VALUE)
- + // Check for overflow
- + if (totalPrice > Integer.MAX_VALUE || totalPrice < 0)
- {
- Util.handleIllegalPlayerAction(player, player.getName() + " of account " + player.getAccountName() + " tried to purchase over " + Integer.MAX_VALUE + " adena worth of goods.", Config.DEFAULT_PUNISH);
- return;
- }
- Item template = ItemTable.getInstance().getTemplate(i.getSeedId());
- - totalWeight += i.getCount() * template.getWeight();
- + weight += (long)i.getCount() * template.getWeight();
- if (!template.isStackable())
- slots += i.getCount();
- else if (player.getInventory().getItemByItemId(i.getSeedId()) == null)
- slots++;
- }
- - if (!player.getInventory().validateWeight(totalWeight))
- + if (!player.getInventory().validateCapacity(slots))
- {
- - sendPacket(SystemMessage.getSystemMessage(SystemMessageId.WEIGHT_LIMIT_EXCEEDED));
- + sendPacket(SystemMessage.getSystemMessage(SystemMessageId.SLOTS_FULL));
- return;
- }
- - if (!player.getInventory().validateCapacity(slots))
- + if (weight > Integer.MAX_VALUE || weight < 0 || !player.getInventory().validateWeight((int)weight))
- {
- - sendPacket(SystemMessage.getSystemMessage(SystemMessageId.SLOTS_FULL));
- + sendPacket(SystemMessage.getSystemMessage(SystemMessageId.WEIGHT_LIMIT_EXCEEDED));
- return;
- }
- // test adena
- - if (totalPrice < 0 || player.getAdena() < totalPrice)
- + if (player.getAdena() < totalPrice)
- {
- sendPacket(SystemMessage.getSystemMessage(SystemMessageId.YOU_NOT_ENOUGH_ADENA));
- return;
- @@ -151,7 +151,7 @@ public class RequestBuySeed extends L2GameClientPacket
- if (totalPrice > 0)
- {
- castle.addToTreasuryNoTax(totalPrice);
- - player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1_DISAPPEARED_ADENA).addItemNumber(totalPrice));
- + player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.S1_DISAPPEARED_ADENA).addItemNumber((int)totalPrice));
- }
- }
- diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestPreviewItem.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestPreviewItem.java
- index 3920fd6..ac881c5 100644
- --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestPreviewItem.java
- +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestPreviewItem.java
- @@ -130,7 +130,7 @@ public final class RequestPreviewItem extends L2GameClientPacket
- return;
- }
- - int totalPrice = 0;
- + long totalPrice = 0;
- _listId = buyList.getListId();
- _itemList = new HashMap<>();
- @@ -161,7 +161,8 @@ public final class RequestPreviewItem extends L2GameClientPacket
- _itemList.put(slot, itemId);
- totalPrice += Config.WEAR_PRICE;
- - if (totalPrice > Integer.MAX_VALUE)
- + // Check for overflow
- + if (totalPrice > Integer.MAX_VALUE || totalPrice < 0)
- {
- Util.handleIllegalPlayerAction(activeChar, activeChar.getName() + " of account " + activeChar.getAccountName() + " tried to purchase over " + Integer.MAX_VALUE + " adena worth of goods.", Config.DEFAULT_PUNISH);
- return;
- @@ -169,7 +170,7 @@ public final class RequestPreviewItem extends L2GameClientPacket
- }
- // Charge buyer and add tax to castle treasury if not owned by npc clan because a Try On is not Free
- - if (totalPrice < 0 || !activeChar.reduceAdena("Wear", totalPrice, activeChar.getCurrentFolkNPC(), true))
- + if (!activeChar.reduceAdena("Wear", (int)totalPrice, activeChar.getCurrentFolkNPC(), true))
- {
- activeChar.sendPacket(SystemMessageId.YOU_NOT_ENOUGH_ADENA);
- return;
- diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestProcureCropList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestProcureCropList.java
- index 50f7b71..ec81897 100644
- --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestProcureCropList.java
- +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestProcureCropList.java
- @@ -79,7 +79,7 @@ public class RequestProcureCropList extends L2GameClientPacket
- // Calculate summary values
- int slots = 0;
- - int weight = 0;
- + long weight = 0;
- for (Crop i : _items)
- {
- @@ -87,7 +87,7 @@ public class RequestProcureCropList extends L2GameClientPacket
- continue;
- Item template = ItemTable.getInstance().getTemplate(i.getReward());
- - weight += i.getCount() * template.getWeight();
- + weight += (long)i.getCount() * template.getWeight();
- if (!template.isStackable())
- slots += i.getCount();
- @@ -95,15 +95,15 @@ public class RequestProcureCropList extends L2GameClientPacket
- slots++;
- }
- - if (!player.getInventory().validateWeight(weight))
- + if (!player.getInventory().validateCapacity(slots))
- {
- - sendPacket(SystemMessage.getSystemMessage(SystemMessageId.WEIGHT_LIMIT_EXCEEDED));
- + sendPacket(SystemMessage.getSystemMessage(SystemMessageId.SLOTS_FULL));
- return;
- }
- - if (!player.getInventory().validateCapacity(slots))
- + if (weight > Integer.MAX_VALUE || weight < 0 || !player.getInventory().validateWeight((int)weight))
- {
- - sendPacket(SystemMessage.getSystemMessage(SystemMessageId.SLOTS_FULL));
- + sendPacket(SystemMessage.getSystemMessage(SystemMessageId.WEIGHT_LIMIT_EXCEEDED));
- return;
- }
- diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestSellItem.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestSellItem.java
- index e09ef3c..9eb7132 100644
- --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestSellItem.java
- +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestSellItem.java
- @@ -90,7 +90,7 @@ public final class RequestSellItem extends L2GameClientPacket
- return;
- }
- - int totalPrice = 0;
- + long totalPrice = 0;
- // Proceed the sell
- for (IntIntHolder i : _items)
- {
- @@ -99,8 +99,9 @@ public final class RequestSellItem extends L2GameClientPacket
- continue;
- int price = item.getReferencePrice() / 2;
- - totalPrice += price * i.getValue();
- - if ((Integer.MAX_VALUE / i.getValue()) < price || totalPrice > Integer.MAX_VALUE)
- + totalPrice += (long)price * i.getValue();
- + // Check for overflow
- + if ((Integer.MAX_VALUE / i.getValue()) < price || totalPrice > Integer.MAX_VALUE || totalPrice < 0)
- {
- Util.handleIllegalPlayerAction(player, player.getName() + " of account " + player.getAccountName() + " tried to purchase over " + Integer.MAX_VALUE + " adena worth of goods.", Config.DEFAULT_PUNISH);
- return;
- @@ -108,7 +109,7 @@ public final class RequestSellItem extends L2GameClientPacket
- item = player.getInventory().destroyItem("Sell", i.getId(), i.getValue(), player, merchant);
- }
- - player.addAdena("Sell", totalPrice, merchant, false);
- + player.addAdena("Sell", (int)totalPrice, merchant, false);
- // Send the htm, if existing.
- String htmlFolder = "";
- diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SendWarehouseWithdrawList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SendWarehouseWithdrawList.java
- index 324335c..4016531 100644
- --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SendWarehouseWithdrawList.java
- +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SendWarehouseWithdrawList.java
- @@ -114,8 +114,8 @@ public final class SendWarehouseWithdrawList extends L2GameClientPacket
- }
- }
- - int weight = 0;
- int slots = 0;
- + long weight = 0;
- for (IntIntHolder i : _items)
- {
- @@ -127,7 +127,7 @@ public final class SendWarehouseWithdrawList extends L2GameClientPacket
- return;
- }
- - weight += i.getValue() * item.getItem().getWeight();
- + weight += (long)i.getValue() * item.getItem().getWeight();
- if (!item.isStackable())
- slots += i.getValue();
- @@ -143,7 +143,7 @@ public final class SendWarehouseWithdrawList extends L2GameClientPacket
- }
- // Weight limit Check
- - if (!player.getInventory().validateWeight(weight))
- + if (weight > Integer.MAX_VALUE || weight < 0 || !player.getInventory().validateWeight((int)weight))
- {
- sendPacket(SystemMessage.getSystemMessage(SystemMessageId.WEIGHT_LIMIT_EXCEEDED));
- return;
- diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListBuy.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListBuy.java
- index 3010659..b1468a5 100644
- --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListBuy.java
- +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListBuy.java
- @@ -101,7 +101,7 @@ public final class SetPrivateStoreListBuy extends L2GameClientPacket
- return;
- }
- - int totalCost = 0;
- + long totalCost = 0;
- for (Item i : _items)
- {
- if (!i.addToTradeList(tradeList))
- @@ -112,7 +112,7 @@ public final class SetPrivateStoreListBuy extends L2GameClientPacket
- }
- totalCost += i.getCost();
- - if (totalCost > Integer.MAX_VALUE)
- + if (totalCost > Integer.MAX_VALUE || totalCost < 0)
- {
- player.sendPacket(SystemMessageId.EXCEEDED_THE_MAXIMUM);
- player.sendPacket(new PrivateStoreManageListBuy(player));
- diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListSell.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListSell.java
- index eb5500f..29d9768 100644
- --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListSell.java
- +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/SetPrivateStoreListSell.java
- @@ -103,7 +103,7 @@ public final class SetPrivateStoreListSell extends L2GameClientPacket
- tradeList.clear();
- tradeList.setPackaged(_packageSale);
- - int totalCost = player.getAdena();
- + long totalCost = player.getAdena();
- for (Item i : _items)
- {
- if (!i.addToTradeList(tradeList))
- @@ -114,7 +114,7 @@ public final class SetPrivateStoreListSell extends L2GameClientPacket
- }
- totalCost += i.getPrice();
- - if (totalCost > Integer.MAX_VALUE)
- + if (totalCost > Integer.MAX_VALUE || totalCost < 0)
- {
- player.sendPacket(SystemMessageId.EXCEEDED_THE_MAXIMUM);
- player.sendPacket(new PrivateStoreManageListSell(player, _packageSale));
Add Comment
Please, Sign In to add comment