Fixed private store buy and sell.

Thanks to Mode.
This commit is contained in:
MobiusDevelopment
2021-11-07 00:29:07 +00:00
parent 51087c730b
commit 3ea9a98679
4 changed files with 26 additions and 6 deletions

View File

@@ -97,6 +97,14 @@ public class SetPrivateStoreListBuy implements IClientIncomingPacket
soulCrystalSpecialOptions[k] = EnsoulData.getInstance().getOption(packet.readD()); 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); final TradeItem item = new TradeItem(template, cnt, price);
item.setEnchant(enchantLevel); item.setEnchant(enchantLevel);
item.setAugmentation(option1, option2); item.setAugmentation(option1, option2);

View File

@@ -38,8 +38,6 @@ import org.l2jmobius.gameserver.util.Util;
*/ */
public class SetPrivateStoreListSell implements IClientIncomingPacket public class SetPrivateStoreListSell implements IClientIncomingPacket
{ {
private static final int BATCH_LENGTH = 20; // length of the one item
private boolean _packageSale; private boolean _packageSale;
private Item[] _items = null; private Item[] _items = null;
@@ -48,7 +46,7 @@ public class SetPrivateStoreListSell implements IClientIncomingPacket
{ {
_packageSale = (packet.readD() == 1); _packageSale = (packet.readD() == 1);
final int count = packet.readD(); 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; return false;
} }
@@ -64,6 +62,10 @@ public class SetPrivateStoreListSell implements IClientIncomingPacket
_items = null; _items = null;
return false; return false;
} }
// Unknown.
packet.readS();
_items[i] = new Item(itemId, cnt, price); _items[i] = new Item(itemId, cnt, price);
} }
return true; return true;

View File

@@ -97,6 +97,14 @@ public class SetPrivateStoreListBuy implements IClientIncomingPacket
soulCrystalSpecialOptions[k] = EnsoulData.getInstance().getOption(packet.readD()); 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); final TradeItem item = new TradeItem(template, cnt, price);
item.setEnchant(enchantLevel); item.setEnchant(enchantLevel);
item.setAugmentation(option1, option2); item.setAugmentation(option1, option2);

View File

@@ -38,8 +38,6 @@ import org.l2jmobius.gameserver.util.Util;
*/ */
public class SetPrivateStoreListSell implements IClientIncomingPacket public class SetPrivateStoreListSell implements IClientIncomingPacket
{ {
private static final int BATCH_LENGTH = 20; // length of the one item
private boolean _packageSale; private boolean _packageSale;
private Item[] _items = null; private Item[] _items = null;
@@ -48,7 +46,7 @@ public class SetPrivateStoreListSell implements IClientIncomingPacket
{ {
_packageSale = (packet.readD() == 1); _packageSale = (packet.readD() == 1);
final int count = packet.readD(); 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; return false;
} }
@@ -64,6 +62,10 @@ public class SetPrivateStoreListSell implements IClientIncomingPacket
_items = null; _items = null;
return false; return false;
} }
// Unknown.
packet.readS();
_items[i] = new Item(itemId, cnt, price); _items[i] = new Item(itemId, cnt, price);
} }
return true; return true;