增加字符串下发

This commit is contained in:
雪风 2025-03-18 13:58:12 +08:00
parent e69083d8e8
commit 79d5e16478
2 changed files with 11 additions and 1 deletions

View File

@ -13,6 +13,7 @@ import tools.HexTool;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.nio.charset.StandardCharsets;
public class MaplePacketLittleEndianWriter { public class MaplePacketLittleEndianWriter {
private final ByteArrayOutputStream baos; private final ByteArrayOutputStream baos;
@ -101,6 +102,12 @@ public class MaplePacketLittleEndianWriter {
this.writeAsciiString(s); 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) { public final void writeMapleAsciiString(String s, final int max) {
if (s.getBytes(MaplePacketLittleEndianWriter.ASCII).length > max) { if (s.getBytes(MaplePacketLittleEndianWriter.ASCII).length > max) {
s = s.substring(0, max); s = s.substring(0, max);

View File

@ -449,7 +449,7 @@ public class PacketHelper {
if (item.getPet() != null) { if (item.getPet() != null) {
addPetItemInfo(mplew, item, item.getPet()); addPetItemInfo(mplew, item, item.getPet());
} else { } else {
addExpirationTime(mplew, item.getExpiration()); addExpirationTime(mplew, item.getExpiration());//里面4个包
if (item.getType() == 1 && equip != null) { if (item.getType() == 1 && equip != null) {
mplew.write(equip.getUpgradeSlots()); mplew.write(equip.getUpgradeSlots());
mplew.write(equip.getLevel()); mplew.write(equip.getLevel());
@ -479,6 +479,9 @@ public class PacketHelper {
} }
mplew.writeLong(getTime(-2L)); mplew.writeLong(getTime(-2L));
mplew.writeInt(-1); mplew.writeInt(-1);
mplew.writeUTF8(equip.getdb());
mplew.writeUTF8(equip.getdd());
mplew.writeUTF8(equip.getqg());
} else { } else {
mplew.writeShort((int) item.getQuantity()); mplew.writeShort((int) item.getQuantity());
mplew.writeMapleAsciiString(item.getOwner()); mplew.writeMapleAsciiString(item.getOwner());