diff --git a/src/tools/data/MaplePacketLittleEndianWriter.java b/src/tools/data/MaplePacketLittleEndianWriter.java index 969768e..0869dda 100644 --- a/src/tools/data/MaplePacketLittleEndianWriter.java +++ b/src/tools/data/MaplePacketLittleEndianWriter.java @@ -13,6 +13,7 @@ import tools.HexTool; import java.nio.charset.Charset; import java.io.ByteArrayOutputStream; +import java.nio.charset.StandardCharsets; public class MaplePacketLittleEndianWriter { private final ByteArrayOutputStream baos; @@ -101,6 +102,12 @@ public class MaplePacketLittleEndianWriter { this.writeAsciiString(s); } + public final void writeUTF8(final String s) { + this.writeInt(s.getBytes(StandardCharsets.UTF_8).length); + this.write(s.getBytes(StandardCharsets.UTF_8)); + } + + public final void writeMapleAsciiString(String s, final int max) { if (s.getBytes(MaplePacketLittleEndianWriter.ASCII).length > max) { s = s.substring(0, max); diff --git a/src/tools/packet/PacketHelper.java b/src/tools/packet/PacketHelper.java index 5f02abc..268e4f9 100644 --- a/src/tools/packet/PacketHelper.java +++ b/src/tools/packet/PacketHelper.java @@ -449,7 +449,7 @@ public class PacketHelper { if (item.getPet() != null) { addPetItemInfo(mplew, item, item.getPet()); } else { - addExpirationTime(mplew, item.getExpiration()); + addExpirationTime(mplew, item.getExpiration());//里面4个包 if (item.getType() == 1 && equip != null) { mplew.write(equip.getUpgradeSlots()); mplew.write(equip.getLevel()); @@ -479,6 +479,9 @@ public class PacketHelper { } mplew.writeLong(getTime(-2L)); mplew.writeInt(-1); + mplew.writeUTF8(equip.getdb()); + mplew.writeUTF8(equip.getdd()); + mplew.writeUTF8(equip.getqg()); } else { mplew.writeShort((int) item.getQuantity()); mplew.writeMapleAsciiString(item.getOwner());