Guest User

Untitled

a guest
Jul 21st, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.65 KB | None | 0 0
  1. private static void addItemInfo(MaplePacketLittleEndianWriter mplew, IItem item, boolean zeroPosition) {
  2. MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
  3. boolean isCash = ii.isCash(item.getItemId());
  4. boolean isPet = item.getPetId() > -1;
  5. boolean isRing = false;
  6. IEquip equip = null;
  7. byte pos = item.getPosition();
  8. if (item.getType() == IItem.EQUIP) {
  9. equip = (IEquip) item;
  10. isRing = equip.getRingId() > -1;
  11. }
  12. if (!zeroPosition) {
  13. if (equip != null) {
  14. if (pos < 0) {
  15. pos *= -1;
  16. }
  17. mplew.writeShort(pos > 100 ? pos - 100 : pos);
  18. } else {
  19. mplew.write(pos);
  20. }
  21. }
  22. mplew.write(item.getType());
  23. mplew.writeInt(item.getItemId());
  24. mplew.write(isCash ? 1 : 0);
  25. if (isCash) {
  26. mplew.writeLong(isPet ? item.getPetId() : isRing ? equip.getRingId() : item.getCashId());
  27. }
  28. addExpirationTime(mplew, item.getExpiration());
  29. if (isPet) {
  30. MaplePet pet = item.getPet();
  31. mplew.writeAsciiString(StringUtil.getRightPaddedStr(pet.getName(), '\0', 13));
  32. mplew.write(pet.getLevel());
  33. mplew.writeShort(pet.getCloseness());
  34. mplew.write(pet.getFullness());
  35. addExpirationTime(mplew, item.getExpiration() * 1.2);
  36. mplew.writeInt(0);
  37. mplew.write(new byte[]{(byte) 0x50, (byte) 0x46}); //wonder what this is
  38. mplew.writeInt(0);
  39. return;
  40. }
  41. if (equip == null) {
  42. mplew.writeShort(item.getQuantity());
  43. mplew.writeMapleAsciiString(item.getOwner());
  44. mplew.writeShort(item.getFlag()); // flag
  45.  
  46. if (ItemConstants.isRechargable(item.getItemId())) {
  47. mplew.writeInt(2);
  48. mplew.write(new byte[]{(byte) 0x54, 0, 0, (byte) 0x34});
  49. }
  50. return;
  51. }
  52. mplew.write(equip.getUpgradeSlots()); // upgrade slots
  53. mplew.write(equip.getLevel()); // level
  54. mplew.writeShort(equip.getStr()); // str
  55. mplew.writeShort(equip.getDex()); // dex
  56. mplew.writeShort(equip.getInt()); // int
  57. mplew.writeShort(equip.getLuk()); // luk
  58. mplew.writeShort(equip.getHp()); // hp
  59. mplew.writeShort(equip.getMp()); // mp
  60. mplew.writeShort(equip.getWatk()); // watk
  61. mplew.writeShort(equip.getMatk()); // matk
  62. mplew.writeShort(equip.getWdef()); // wdef
  63. mplew.writeShort(equip.getMdef()); // mdef
  64. mplew.writeShort(equip.getAcc()); // accuracy
  65. mplew.writeShort(equip.getAvoid()); // avoid
  66. mplew.writeShort(equip.getHands()); // hands
  67. mplew.writeShort(equip.getSpeed()); // speed
  68. mplew.writeShort(equip.getJump()); // jump
  69. mplew.writeMapleAsciiString(equip.getOwner()); // owner name
  70. mplew.writeShort(equip.getFlag()); //Item Flags
  71.  
  72. if (isCash) {
  73. for (int i = 0; i < 10; i++) {
  74. mplew.write(0x40);
  75. }
  76. } else {
  77. mplew.write(0);
  78. mplew.write(equip.getItemLevel()); //Item Level
  79. mplew.writeShort(0);
  80. mplew.writeShort(equip.getItemExp()); //Works pretty weird :s
  81. mplew.writeInt(equip.getVicious()); //WTF NEXON ARE YOU SERIOUS?
  82. mplew.writeLong(0);
  83. }
  84. mplew.write(new byte[]{0, (byte) 0x40, (byte) 0xE0, (byte) 0xFD, (byte) 0x3B, (byte) 0x37, (byte) 0x4F, 1});
  85. mplew.writeInt(-1);
  86.  
  87. }
Add Comment
Please, Sign In to add comment