Fixed invisible trade items.

This commit is contained in:
MobiusDevelopment 2020-08-15 05:15:24 +00:00
parent df0c559501
commit 08d72b1ec8
8 changed files with 38 additions and 6 deletions

View File

@ -62,6 +62,21 @@ public abstract class AbstractItemPacket extends AbstractMaskPacket<ItemListType
writeItem(packet, new ItemInfo(item));
}
protected void writeTradeItem(PacketWriter packet, TradeItem item)
{
packet.writeH(item.getItem().getType1());
packet.writeD(item.getObjectId()); // ObjectId
packet.writeD(item.getItem().getDisplayId()); // ItemId
packet.writeQ(item.getCount()); // Quantity
packet.writeC(item.getItem().getType2()); // Item Type 2 : 00-weapon, 01-shield/armor, 02-ring/earring/necklace, 03-questitem, 04-adena, 05-item
packet.writeC(item.getCustomType1()); // Filler (always 0)
packet.writeQ(item.getItem().getBodyPart()); // Slot : 0006-lr.ear, 0008-neck, 0030-lr.finger, 0040-head, 0100-l.hand, 0200-gloves, 0400-chest, 0800-pants, 1000-feet, 4000-r.hand, 8000-r.hand
packet.writeH(item.getEnchant()); // Enchant level (pet level shown in control item)
packet.writeH(0x00); // Equipped : 00-No, 01-yes
packet.writeH(item.getCustomType2());
writeItemElementalAndEnchant(packet, new ItemInfo(item));
}
protected void writeItem(PacketWriter packet, ItemInfo item)
{
final int mask = calculateMask(item);

View File

@ -37,7 +37,7 @@ public class TradeOtherAdd extends AbstractItemPacket
{
OutgoingPackets.TRADE_OTHER_ADD.writeId(packet);
packet.writeH(1); // item count
writeItem(packet, _item);
writeTradeItem(packet, _item);
return true;
}
}

View File

@ -37,7 +37,7 @@ public class TradeOwnAdd extends AbstractItemPacket
{
OutgoingPackets.TRADE_OWN_ADD.writeId(packet);
packet.writeH(1); // items added count
writeItem(packet, _item);
writeTradeItem(packet, _item);
return true;
}
}

View File

@ -42,7 +42,7 @@ public class TradeUpdate extends AbstractItemPacket
packet.writeH(1);
packet.writeH((_newCount > 0) && _item.getItem().isStackable() ? 3 : 2);
writeItem(packet, _item);
writeTradeItem(packet, _item);
return true;
}
}

View File

@ -63,6 +63,23 @@ public abstract class AbstractItemPacket extends AbstractMaskPacket<ItemListType
writeItem(packet, new ItemInfo(item));
}
protected void writeTradeItem(PacketWriter packet, TradeItem item)
{
packet.writeH(item.getItem().getType1());
packet.writeD(item.getObjectId()); // ObjectId
packet.writeD(item.getItem().getDisplayId()); // ItemId
packet.writeQ(item.getCount()); // Quantity
packet.writeC(item.getItem().getType2()); // Item Type 2 : 00-weapon, 01-shield/armor, 02-ring/earring/necklace, 03-questitem, 04-adena, 05-item
packet.writeC(item.getCustomType1()); // Filler (always 0)
packet.writeQ(item.getItem().getBodyPart()); // Slot : 0006-lr.ear, 0008-neck, 0030-lr.finger, 0040-head, 0100-l.hand, 0200-gloves, 0400-chest, 0800-pants, 1000-feet, 4000-r.hand, 8000-r.hand
packet.writeH(item.getEnchant()); // Enchant level (pet level shown in control item)
packet.writeH(0x00); // Equipped : 00-No, 01-yes
packet.writeH(item.getCustomType2());
final ItemInfo iteminfo = new ItemInfo(item);
writeItemElementalAndEnchant(packet, iteminfo);
writeItemEnsoulOptions(packet, iteminfo);
}
protected void writeItem(PacketWriter packet, ItemInfo item)
{
final int mask = calculateMask(item);

View File

@ -37,7 +37,7 @@ public class TradeOtherAdd extends AbstractItemPacket
{
OutgoingPackets.TRADE_OTHER_ADD.writeId(packet);
packet.writeH(1); // item count
writeItem(packet, _item);
writeTradeItem(packet, _item);
return true;
}
}

View File

@ -37,7 +37,7 @@ public class TradeOwnAdd extends AbstractItemPacket
{
OutgoingPackets.TRADE_OWN_ADD.writeId(packet);
packet.writeH(1); // items added count
writeItem(packet, _item);
writeTradeItem(packet, _item);
return true;
}
}

View File

@ -42,7 +42,7 @@ public class TradeUpdate extends AbstractItemPacket
packet.writeH(1);
packet.writeH((_newCount > 0) && _item.getItem().isStackable() ? 3 : 2);
writeItem(packet, _item);
writeTradeItem(packet, _item);
return true;
}
}