I have been trying to understand on how packets work for sometime now, as far I know I came across a halt I took this packet from a v142 private server and started to compare it with the source released...
I have written the part where Im stuck at how does that packet equals to what I got etc.. thanks..
Code:02 00 01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 < ????00 00 00 00 00 00 00 00 < getChannel 00 01 00 00 00 00 01 00 00 < 256 Bytes EC 38 CE 78 EC 38 CE 78 EC 38 CE 78 < Randomizer Bytes ?! FF FF FF FF FF FF BF FF < What's This 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 < 20 Bytes ?! //addCharStats C4 04 00 00 4C 6F 73 65 72 00 00 00 00 00 00 00 00 00 02 25 4E 00 00 44 75 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 0C 00 05 00 04 00 04 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E7 CD FD 77 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 E0 FD 3B 37 4F 01 00 00 00 00 00 0A 00 00 00 00 05 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E8 01 07 00 4C 75 6C 7A 7A 7A 7A 01 07 00 4C 75 6C 7A 7A 7A 7A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C4 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 60 60 60 60 60 00 40 E0 FD 3B 37 4F 01 05 00 01 04 E7 0F 00 00 00 80 05 BB 46 E6 17 02 FF FF FF FF 01 04 00 00 07 03 00 04 00 00 00 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 40 E0 FD 3B 37 4F 01 FF FF FF FF 00 00 00 00 00 00 00 00 00 40 E0 FD 3B 37 4F 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 00 01 2A 2D 10 00 00 00 80 05 BB 46 E6 17 02 FF FF FF FF 01 04 00 00 07 02 00 04 00 00 00 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 40 E0 FD 3B 37 4F 01 FF FF FF FF 00 00 00 00 00 00 00 00 00 40 E0 FD 3B 37 4F 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 01 26 5E 10 00 00 00 80 05 BB 46 E6 17 02 FF FF FF FF 01 04 00 00 05 04 00 04 00 00 00 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 40 E0 FD 3B 37 4F 01 FF FF FF FF 00 00 00 00 00 00 00 00 00 40 E0 FD 3B 37 4F 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0B 00 01 F0 DD 13 00 00 00 80 05 BB 46 E6 17 02 FF FF FF FF 01 01 00 00 07 11 00 04 00 00 00 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 40 E0 FD 3B 37 4F 01 FF FF FF FF 00 00 00 00 00 00 00 00 00 40 E0 FD 3B 37 4F 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 37 00 01 20 E2 11 00 00 00 80 05 BB 46 E6 17 02 FF FF FF FF 3C 00 00 00 01 00 01 00 01 00 01 00 04 00 00 00 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 40 E0 FD 3B 37 4F 01 FF FF FF FF 00 00 00 00 00 00 00 00 00 40 E0 FD 3B 37 4F 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 01 60 4E 0F 00 00 00 80 05 BB 46 E6 17 02 FF FF FF FF C0 80 01 00 14 00 14 00 02 00 02 00 04 00 00 00 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 40 E0 FD 3B 37 4F 01 FF FF FF FF 00 00 00 00 00 00 00 00 00 40 E0 FD 3B 37 4F 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 02 00 0C 00 00 00 00 00 00 00 00 80 05 BB 46 E6 17 02 49 00 00 00 00 00 00 00 00 80 05 BB 46 E6 17 02 00 00 00 00 01 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B FF C9 9A 3B 00 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 E0 FD 3B 37 4F 01 00 00 00 00 00 0B 00 43 72 65 61 74 69 6E 67 2E 2E 2E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 E0 FD 3B 37 4F 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 48 3B 57 F9 FD CE 01 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 75 96 8F 00 00 00 00 00 76 96 8F 00 00 00 00 00 77 96 8F 00 00 00 00 00 78 96 8F 00 00 00 00 00 00 00 00 00 30 48 3B 57 F9 FD CE 01 64 00 00 00 00 00 01AndCode:public static MaplePacket getCharInfo(MapleCharacter chr) { MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); mplew.writeShort(SendOpcode.WARP_TO_MAP.getValue()); mplew.write(HexTool.getByteArrayFromHexString("02 00 01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00")); mplew.writeLong(chr.getClient().getChannel() - 1); mplew.write(0); mplew.writeInt(1); mplew.writeInt(256); // ??? for (int i = 0; i < 3; i++) { mplew.writeInt(Randomizer.nextInt()); } mplew.write(HexTool.getByteArrayFromHexString("FF FF FF FF FF FF BF FF")); // WTF ?! Nexon addCharacterInfo(mplew, chr); mplew.writeLong(0L); mplew.writeLong(0L); mplew.writeLong(getTime(System.currentTimeMillis())); mplew.writeInt(100); mplew.write(0); mplew.write(chr.getJob().getId() >= 3200 ? 1 : 0); return mplew.getPacket(); }
Code:public static void addCharacterInfo(MaplePacketLittleEndianWriter mplew, MapleCharacter chr) { mplew.write(HexTool.hex("FF FF FF FF FF FF BF FF")); mplew.writeZeroBytes(20); addCharStats(mplew, chr); // Stuck Over Here ?! mplew.write(chr.getBuddylist().getCapacity()); if (chr.getBlessOfFairyOrigin() != null) { mplew.write(1); mplew.writeMapleAsciiString(chr.getBlessOfFairyOrigin()); } else { mplew.write(0); } if (chr.getBlessOfEmpressOrigin() != null) { mplew.write(1); mplew.writeMapleAsciiString(chr.getBlessOfEmpressOrigin()); } else { mplew.write(0); } MapleQuestStatus ultExplorer = chr.getQuestNoAdd(MapleQuest.getInstance(111111)); if ((ultExplorer != null) && (ultExplorer.getCustomData() != null)) { mplew.write(1); mplew.writeMapleAsciiString(ultExplorer.getCustomData()); } else { mplew.write(0); } addInventoryInfo(mplew, chr); addSkillInfo(mplew, chr); addCoolDownInfo(mplew, chr); addQuestInfo(mplew, chr); addRingInfo(mplew, chr); addRocksInfo(mplew, chr); addMonsterBookInfo(mplew, chr); mplew.writeShort(0); mplew.writeShort(0); chr.QuestInfoPacket(mplew); if ((chr.getJob() >= 3300) && (chr.getJob() <= 3312)) { addJaguarInfo(mplew, chr); } mplew.writeInt(0); addStealSkills(mplew, chr); mplew.writeZeroBytes(5); addInnerStats(mplew, chr); mplew.writeInt(chr.getHonourLevel()); mplew.writeInt(chr.getHonourExp()); mplew.writeLong(0); mplew.writeZeroBytes(17); mplew.writeLong(getTime(-2L)); mplew.write(0); mplew.writeInt(0); mplew.writeMapleAsciiString("Creating..."); mplew.writeInt(0); mplew.writeInt(0); mplew.writeZeroBytes(39); mplew.writeLong(getTime(-2L)); mplew.writeZeroBytes(75); mplew.writeLong(getTime(System.currentTimeMillis())); mplew.writeInt(0); mplew.write(1); mplew.writeShort(0); }



Reply With Quote

