Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static void addItemInfo(MaplePacketLittleEndianWriter mplew, IItem item, boolean zeroPosition) {
- MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
- boolean isCash = ii.isCash(item.getItemId());
- boolean isPet = item.getPetId() > -1;
- boolean isRing = false;
- IEquip equip = null;
- byte pos = item.getPosition();
- if (item.getType() == IItem.EQUIP) {
- equip = (IEquip) item;
- isRing = equip.getRingId() > -1;
- }
- if (!zeroPosition) {
- if (equip != null) {
- if (pos < 0) {
- pos *= -1;
- }
- mplew.writeShort(pos > 100 ? pos - 100 : pos);
- } else {
- mplew.write(pos);
- }
- }
- mplew.write(item.getType());
- mplew.writeInt(item.getItemId());
- mplew.write(isCash ? 1 : 0);
- if (isCash) {
- mplew.writeLong(isPet ? item.getPetId() : isRing ? equip.getRingId() : item.getCashId());
- }
- addExpirationTime(mplew, item.getExpiration());
- if (isPet) {
- MaplePet pet = item.getPet();
- mplew.writeAsciiString(StringUtil.getRightPaddedStr(pet.getName(), '\0', 13));
- mplew.write(pet.getLevel());
- mplew.writeShort(pet.getCloseness());
- mplew.write(pet.getFullness());
- addExpirationTime(mplew, item.getExpiration() * 1.2);
- mplew.writeInt(0);
- mplew.write(new byte[]{(byte) 0x50, (byte) 0x46}); //wonder what this is
- mplew.writeInt(0);
- return;
- }
- if (equip == null) {
- mplew.writeShort(item.getQuantity());
- mplew.writeMapleAsciiString(item.getOwner());
- mplew.writeShort(item.getFlag()); // flag
- if (ItemConstants.isRechargable(item.getItemId())) {
- mplew.writeInt(2);
- mplew.write(new byte[]{(byte) 0x54, 0, 0, (byte) 0x34});
- }
- return;
- }
- mplew.write(equip.getUpgradeSlots()); // upgrade slots
- mplew.write(equip.getLevel()); // level
- mplew.writeShort(equip.getStr()); // str
- mplew.writeShort(equip.getDex()); // dex
- mplew.writeShort(equip.getInt()); // int
- mplew.writeShort(equip.getLuk()); // luk
- mplew.writeShort(equip.getHp()); // hp
- mplew.writeShort(equip.getMp()); // mp
- mplew.writeShort(equip.getWatk()); // watk
- mplew.writeShort(equip.getMatk()); // matk
- mplew.writeShort(equip.getWdef()); // wdef
- mplew.writeShort(equip.getMdef()); // mdef
- mplew.writeShort(equip.getAcc()); // accuracy
- mplew.writeShort(equip.getAvoid()); // avoid
- mplew.writeShort(equip.getHands()); // hands
- mplew.writeShort(equip.getSpeed()); // speed
- mplew.writeShort(equip.getJump()); // jump
- mplew.writeMapleAsciiString(equip.getOwner()); // owner name
- mplew.writeShort(equip.getFlag()); //Item Flags
- if (isCash) {
- for (int i = 0; i < 10; i++) {
- mplew.write(0x40);
- }
- } else {
- mplew.write(0);
- mplew.write(equip.getItemLevel()); //Item Level
- mplew.writeShort(0);
- mplew.writeShort(equip.getItemExp()); //Works pretty weird :s
- mplew.writeInt(equip.getVicious()); //WTF NEXON ARE YOU SERIOUS?
- mplew.writeLong(0);
- }
- mplew.write(new byte[]{0, (byte) 0x40, (byte) 0xE0, (byte) 0xFD, (byte) 0x3B, (byte) 0x37, (byte) 0x4F, 1});
- mplew.writeInt(-1);
- }
Add Comment
Please, Sign In to add comment