From 8bb3d9d937b366d371b7bea97d87e7e2f80ceb1e Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Wed, 13 Nov 2019 15:00:33 +0000 Subject: [PATCH] Fixed private store related packets. --- .../serverpackets/PrivateStoreListBuy.java | 29 +++++++++-- .../serverpackets/PrivateStoreListSell.java | 26 ++++++++-- .../PrivateStoreManageListBuy.java | 46 +++++++++++++++-- .../PrivateStoreManageListSell.java | 50 +++++++++++++++++-- 4 files changed, 134 insertions(+), 17 deletions(-) diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/network/serverpackets/PrivateStoreListBuy.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/network/serverpackets/PrivateStoreListBuy.java index a516e825b7..267e2a173e 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/network/serverpackets/PrivateStoreListBuy.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/network/serverpackets/PrivateStoreListBuy.java @@ -48,11 +48,32 @@ public class PrivateStoreListBuy extends AbstractItemPacket for (TradeItem item : _items) { - writeItem(packet, item); packet.writeD(item.getObjectId()); - packet.writeQ(item.getPrice()); - packet.writeQ(item.getItem().getReferencePrice() * 2); - packet.writeQ(item.getStoreCount()); + packet.writeD(item.getItem().getId()); + packet.writeH(item.getEnchant()); + packet.writeQ(item.getCount()); // give max possible sell amount + + packet.writeQ(item.getItem().getReferencePrice()); + packet.writeH(0); + + packet.writeD(item.getItem().getBodyPart()); + packet.writeH(item.getItem().getType2()); + packet.writeQ(item.getPrice()); // buyers price + + packet.writeQ(item.getStoreCount()); // maximum possible tradecount + + // T1 + packet.writeH(item.getAttackElementType()); + packet.writeH(item.getAttackElementPower()); + for (byte i = 0; i < 6; i++) + { + packet.writeH(item.getElementDefAttr(i)); + } + + for (int op : item.getEnchantOptions()) + { + packet.writeH(op); + } } return true; } diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/network/serverpackets/PrivateStoreListSell.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/network/serverpackets/PrivateStoreListSell.java index 9231a97abe..2e4d73cc9b 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/network/serverpackets/PrivateStoreListSell.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/network/serverpackets/PrivateStoreListSell.java @@ -50,9 +50,29 @@ public class PrivateStoreListSell extends AbstractItemPacket packet.writeD(_seller.getSellList().getItems().length); for (TradeItem item : _seller.getSellList().getItems()) { - writeItem(packet, item); - packet.writeQ(item.getPrice()); - packet.writeQ(item.getItem().getReferencePrice() * 2); + packet.writeD(item.getItem().getType2()); + packet.writeD(item.getObjectId()); + packet.writeD(item.getItem().getId()); + packet.writeQ(item.getCount()); + packet.writeH(0x00); + packet.writeH(item.getEnchant()); + packet.writeH(item.getCustomType2()); + packet.writeD(item.getItem().getBodyPart()); + packet.writeQ(item.getPrice()); // your price + packet.writeQ(item.getItem().getReferencePrice()); // store price + + // T1 + packet.writeH(item.getAttackElementType()); + packet.writeH(item.getAttackElementPower()); + for (byte i = 0; i < 6; i++) + { + packet.writeH(item.getElementDefAttr(i)); + } + + for (int op : item.getEnchantOptions()) + { + packet.writeH(op); + } } } return true; diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/network/serverpackets/PrivateStoreManageListBuy.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/network/serverpackets/PrivateStoreManageListBuy.java index 68c3b11f14..3f3d3cd1ab 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/network/serverpackets/PrivateStoreManageListBuy.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/network/serverpackets/PrivateStoreManageListBuy.java @@ -49,18 +49,54 @@ public class PrivateStoreManageListBuy extends AbstractItemPacket packet.writeD(_itemList.length); // inventory items for potential buy for (ItemInstance item : _itemList) { - writeItem(packet, item); - packet.writeQ(item.getItem().getReferencePrice() * 2); + packet.writeD(item.getId()); + packet.writeH(0); // show enchant lvl as 0, as you can't buy enchanted weapons + packet.writeQ(item.getCount()); + packet.writeQ(item.getReferencePrice()); + packet.writeH(0x00); + packet.writeD(item.getItem().getBodyPart()); + packet.writeH(item.getItem().getType2()); + + // T1 + packet.writeH(item.getAttackElementType()); + packet.writeH(item.getAttackElementPower()); + for (byte i = 0; i < 6; i++) + { + packet.writeH(item.getElementDefAttr(i)); + } + + for (int op : item.getEnchantOptions()) + { + packet.writeH(op); + } } // section 3 packet.writeD(_buyList.length); // count for all items already added for buy for (TradeItem item : _buyList) { - writeItem(packet, item); - packet.writeQ(item.getPrice()); - packet.writeQ(item.getItem().getReferencePrice() * 2); + packet.writeD(item.getItem().getId()); + packet.writeH(0); packet.writeQ(item.getCount()); + packet.writeQ(item.getItem().getReferencePrice()); + packet.writeH(0x00); + packet.writeD(item.getItem().getBodyPart()); + packet.writeH(item.getItem().getType2()); + packet.writeQ(item.getPrice());// your price + packet.writeQ(item.getItem().getReferencePrice());// fixed store price + + // T1 + packet.writeH(item.getAttackElementType()); + packet.writeH(item.getAttackElementPower()); + for (byte i = 0; i < 6; i++) + { + packet.writeH(item.getElementDefAttr(i)); + } + + for (int op : item.getEnchantOptions()) + { + packet.writeH(op); + } } return true; } diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/network/serverpackets/PrivateStoreManageListSell.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/network/serverpackets/PrivateStoreManageListSell.java index 075ae1e198..2c05f02163 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/network/serverpackets/PrivateStoreManageListSell.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/network/serverpackets/PrivateStoreManageListSell.java @@ -52,16 +52,56 @@ public class PrivateStoreManageListSell extends AbstractItemPacket packet.writeD(_itemList.length); // for potential sells for (TradeItem item : _itemList) { - writeItem(packet, item); - packet.writeQ(item.getItem().getReferencePrice() * 2); + packet.writeD(item.getItem().getType2()); + packet.writeD(item.getObjectId()); + packet.writeD(item.getItem().getId()); + packet.writeQ(item.getCount()); + packet.writeH(0); + packet.writeH(item.getEnchant());// enchant lvl + packet.writeH(item.getCustomType2()); + packet.writeD(item.getItem().getBodyPart()); + packet.writeQ(item.getPrice()); // store price + + // T1 + packet.writeH(item.getAttackElementType()); + packet.writeH(item.getAttackElementPower()); + for (byte i = 0; i < 6; i++) + { + packet.writeH(item.getElementDefAttr(i)); + } + + for (int op : item.getEnchantOptions()) + { + packet.writeH(op); + } } // section 3 packet.writeD(_sellList.length); // count for any items already added for sell for (TradeItem item : _sellList) { - writeItem(packet, item); - packet.writeQ(item.getPrice()); - packet.writeQ(item.getItem().getReferencePrice() * 2); + packet.writeD(item.getItem().getType2()); + packet.writeD(item.getObjectId()); + packet.writeD(item.getItem().getId()); + packet.writeQ(item.getCount()); + packet.writeH(0); + packet.writeH(item.getEnchant());// enchant lvl + packet.writeH(0x00); + packet.writeD(item.getItem().getBodyPart()); + packet.writeQ(item.getPrice());// your price + packet.writeQ(item.getItem().getReferencePrice()); // store price + + // T1 + packet.writeH(item.getAttackElementType()); + packet.writeH(item.getAttackElementPower()); + for (byte i = 0; i < 6; i++) + { + packet.writeH(item.getElementDefAttr(i)); + } + + for (int op : item.getEnchantOptions()) + { + packet.writeH(op); + } } return true; }