From 3ea9a98679d47fa38aeb028123335528bfad05f6 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sun, 7 Nov 2021 00:29:07 +0000 Subject: [PATCH] Fixed private store buy and sell. Thanks to Mode. --- .../network/clientpackets/SetPrivateStoreListBuy.java | 8 ++++++++ .../network/clientpackets/SetPrivateStoreListSell.java | 8 +++++--- .../network/clientpackets/SetPrivateStoreListBuy.java | 8 ++++++++ .../network/clientpackets/SetPrivateStoreListSell.java | 8 +++++--- 4 files changed, 26 insertions(+), 6 deletions(-) diff --git a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/SetPrivateStoreListBuy.java b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/SetPrivateStoreListBuy.java index 4e5f5ad43b..07be0d5d83 100644 --- a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/SetPrivateStoreListBuy.java +++ b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/SetPrivateStoreListBuy.java @@ -97,6 +97,14 @@ public class SetPrivateStoreListBuy implements IClientIncomingPacket soulCrystalSpecialOptions[k] = EnsoulData.getInstance().getOption(packet.readD()); } + // Unknown. + packet.readC(); + packet.readC(); + packet.readC(); + packet.readC(); + packet.readC(); + packet.readS(); + final TradeItem item = new TradeItem(template, cnt, price); item.setEnchant(enchantLevel); item.setAugmentation(option1, option2); diff --git a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/SetPrivateStoreListSell.java b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/SetPrivateStoreListSell.java index 4bb16a147e..0efd5f7a5d 100644 --- a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/SetPrivateStoreListSell.java +++ b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/network/clientpackets/SetPrivateStoreListSell.java @@ -38,8 +38,6 @@ import org.l2jmobius.gameserver.util.Util; */ public class SetPrivateStoreListSell implements IClientIncomingPacket { - private static final int BATCH_LENGTH = 20; // length of the one item - private boolean _packageSale; private Item[] _items = null; @@ -48,7 +46,7 @@ public class SetPrivateStoreListSell implements IClientIncomingPacket { _packageSale = (packet.readD() == 1); final int count = packet.readD(); - if ((count < 1) || (count > Config.MAX_ITEM_IN_PACKET) || ((count * BATCH_LENGTH) != packet.getReadableBytes())) + if ((count < 1) || (count > Config.MAX_ITEM_IN_PACKET)) { return false; } @@ -64,6 +62,10 @@ public class SetPrivateStoreListSell implements IClientIncomingPacket _items = null; return false; } + + // Unknown. + packet.readS(); + _items[i] = new Item(itemId, cnt, price); } return true; diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/SetPrivateStoreListBuy.java b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/SetPrivateStoreListBuy.java index 4e5f5ad43b..07be0d5d83 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/SetPrivateStoreListBuy.java +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/SetPrivateStoreListBuy.java @@ -97,6 +97,14 @@ public class SetPrivateStoreListBuy implements IClientIncomingPacket soulCrystalSpecialOptions[k] = EnsoulData.getInstance().getOption(packet.readD()); } + // Unknown. + packet.readC(); + packet.readC(); + packet.readC(); + packet.readC(); + packet.readC(); + packet.readS(); + final TradeItem item = new TradeItem(template, cnt, price); item.setEnchant(enchantLevel); item.setAugmentation(option1, option2); diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/SetPrivateStoreListSell.java b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/SetPrivateStoreListSell.java index 4bb16a147e..0efd5f7a5d 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/SetPrivateStoreListSell.java +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/network/clientpackets/SetPrivateStoreListSell.java @@ -38,8 +38,6 @@ import org.l2jmobius.gameserver.util.Util; */ public class SetPrivateStoreListSell implements IClientIncomingPacket { - private static final int BATCH_LENGTH = 20; // length of the one item - private boolean _packageSale; private Item[] _items = null; @@ -48,7 +46,7 @@ public class SetPrivateStoreListSell implements IClientIncomingPacket { _packageSale = (packet.readD() == 1); final int count = packet.readD(); - if ((count < 1) || (count > Config.MAX_ITEM_IN_PACKET) || ((count * BATCH_LENGTH) != packet.getReadableBytes())) + if ((count < 1) || (count > Config.MAX_ITEM_IN_PACKET)) { return false; } @@ -64,6 +62,10 @@ public class SetPrivateStoreListSell implements IClientIncomingPacket _items = null; return false; } + + // Unknown. + packet.readS(); + _items[i] = new Item(itemId, cnt, price); } return true;