Buddy find (#311)

This commit is contained in:
MedicOP
2019-01-11 03:11:40 +01:00
committed by Ronan Lana
parent 37dbf6d2b5
commit 322b80f176
2 changed files with 43 additions and 1 deletions

View File

@@ -128,7 +128,18 @@ public final class WhisperHandler extends AbstractMaplePacketHandler {
c.announce(MaplePacketCreator.getWhisperReply(recipient, (byte) 0));
}
} else if (mode == 0x44) {
//Buddy find?
//Buddy find
String recipient = slea.readMapleAsciiString();
MapleCharacter player = c.getWorldServer().getPlayerStorage().getCharacterByName(recipient);
if (player != null && c.getPlayer().gmLevel() >= player.gmLevel()) {
if (player.getCashShop().isOpened()) { // in CashShop
c.getSession().write(MaplePacketCreator.getFindReplyWithCS(recipient));
} else if (player.isAwayFromWorld()) { // in MTS
c.getSession().write(MaplePacketCreator.getFindReplyWithMTS(recipient));
} else {
c.getSession().write(MaplePacketCreator.getFindReplyWithMap(player.getName(), player.getMap().getId()));
}
}
}
}
}

View File

@@ -6067,6 +6067,37 @@ public class MaplePacketCreator {
return mplew.getPacket();
}
public static byte[] getFindReplyWithMap(String target, int mapid) {
MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
mplew.writeShort(SendOpcode.WHISPER.getValue());
mplew.write(72);
mplew.writeMapleAsciiString(target);
mplew.write(1);
mplew.writeInt(mapid);
mplew.write(new byte[8]);
return mplew.getPacket();
}
public static byte[] getFindReplyWithCS(String target) {
MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
mplew.writeShort(SendOpcode.WHISPER.getValue());
mplew.write(72);
mplew.writeMapleAsciiString(target);
mplew.write(2);
mplew.writeInt(-1);
return mplew.getPacket();
}
public static byte[] getFindReplyWithMTS(String target) {
MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
mplew.writeShort(SendOpcode.WHISPER.getValue());
mplew.write(72);
mplew.writeMapleAsciiString(target);
mplew.write(0);
mplew.writeInt(-1);
return mplew.getPacket();
}
public static byte[] sendAutoHpPot(int itemId) {
final MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
mplew.writeShort(SendOpcode.AUTO_HP_POT.getValue());