/* * Copyright (C) 2004-2014 L2J Server * * This file is part of L2J Server. * * L2J Server is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * L2J Server is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.l2jserver.gameserver.network.serverpackets; import com.l2jserver.gameserver.model.items.instance.L2ItemInstance; /** * @author KenM */ public final class ExRpItemLink extends L2GameServerPacket { private final L2ItemInstance _item; private int check_Augmentation; // 603 private int check_ElementType; // 603 private int check_EnchantOption; // 603 public ExRpItemLink(L2ItemInstance item) { _item = item; } @Override protected void writeImpl() { writeC(0xFE); writeH(0x6D); // 603 check_Augmentation = 0; check_ElementType = 0; check_EnchantOption = 0; if (_item.isAugmented()) { check_Augmentation = 1; } if (_item.getAttackElementPower() > 0) { check_ElementType = 2; } else { for (byte i = 0; i < 6; i++) { if (_item.getElementDefAttr(i) > 0) { check_ElementType = 2; } } } for (int op : _item.getEnchantOptions()) { if (op > 0) { check_EnchantOption = 4; } } writeC(check_Augmentation + check_ElementType + check_EnchantOption + 0); writeD(_item.getObjectId()); writeD(_item.getDisplayId()); writeC(_item.getLocationSlot()); // 603 writeQ(_item.getCount()); writeC(_item.getItem().getType2()); // 603 writeC(_item.getCustomType1()); // 603 writeH(_item.isEquipped() ? 0x01 : 0x00); writeQ(_item.getItem().getBodyPart()); // 603 writeC(_item.getEnchantLevel()); // 603 writeC(_item.getCustomType2()); // 603 /* 603 if (_item.isAugmented()) { writeD(_item.getAugmentation().getAugmentationId()); } else { writeD(0x00); } */ writeD(_item.getMana()); writeD(_item.isTimeLimitedItem() ? (int) (_item.getRemainingTime() / 1000) : -9999); writeC(0x01); // 603 if (_item.isAugmented()) // 603 { writeD(_item.getAugmentation().getAugmentationId()); } if (check_ElementType > 0) // 603 { writeH(_item.getAttackElementType()); writeH(_item.getAttackElementPower()); for (byte i = 0; i < 6; i++) { writeH(_item.getElementDefAttr(i)); } } // Enchant Effects if (check_EnchantOption > 0) // 603 { for (int op : _item.getEnchantOptions()) { writeH(op); } } //603 writeD(0x00); // 603-Appearance } }