protected final void writeImpl()
{
writeC(0x30);
writeD(_objId);
writeC(_showWindow ? 0x01 : 0x00);
int count = Math.min(_items.length, ServerConstants.getInstance().getMaxItemCount());
writeD(count); // item count
for (ItemInstance temp : _items)
{
if (count-- == 0)
{
break;
}
if ((temp == null) || (temp.getItem() == null))
{
writeD(0);
continue;
}
temp.checkMarkTime();
writeD(temp.getObjectId());
writeD(temp.getItemId());
writeC(temp.getItem().getType1()); // item type1
writeC(temp.getItem().getType2()); // item type2
writeD(temp.getCount());
writeC(temp.isEquipped() ? 0x01 : 0x00);
//writeD(temp.getItemIdByObjId().getBodyPart());
int slot = Inventory.getSlotFromItem(temp);
writeD(slot);
writeH(temp.getDurability()); // durability
writeH(temp.getMaxDurability());
writeH(temp.calcMaxDurability());
writeC(temp.getTrimmedEnhanceLevel(true));
writeBool(temp.isPoweredByBattery());
writeC(temp.isMarked() ? (temp.isRent() ? -1 : 1) : 0);
if (temp.isMarked()) {
writeS(temp.getMarkerOwnerName());
writeD(temp.getMarkTimeLeft());
}
writeC(temp.getEnhanceLevel());
GiftInfo giftInfo = temp.getGiftInfo();
if(giftInfo != null) {
writeC(giftInfo.getGiftType().ordinal());
writeS(giftInfo.getGifterName());
}
else {
writeC(-1);
}
int countModules = temp.getCountInstallModules();
writeH(countModules);
if(count > 0){
for(int i = 0; i<countModules; i++){
ItemInstance module = new ItemInstance(222222222, 3333);
writeD(module.getObjectId());
writeD(module.getItemId());
writeC(module.getItem().getType1()); // item type1
writeC(module.getItem().getType2()); // item type2
writeD(Inventory.getSlotFromItem(module));
writeH(module.getDurability()); // durability
writeH(module.getMaxDurability());
writeH(module.getInstallSlot());
writeD(module.getInstalledOn());
}
}
}
}