package tools.packet; import client.MapleCharacter; import handling.SendPacketOpcode; import java.util.List; import server.MapleCarnivalParty; import tools.data.MaplePacketLittleEndianWriter; public class MonsterCarnivalPacket { public static byte[] startMonsterCarnival(MapleCharacter chr, int enemyavailable, int enemytotal) { MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); mplew.writeShort(SendPacketOpcode.MONSTER_CARNIVAL_START.getValue()); MapleCarnivalParty friendly = chr.getCarnivalParty(); mplew.write(friendly.getTeam()); mplew.writeInt(chr.getAvailableCP()); mplew.writeInt(chr.getTotalCP()); mplew.writeInt(friendly.getAvailableCP()); mplew.writeInt(friendly.getTotalCP()); mplew.write(0); return mplew.getPacket(); } public static byte[] playerDiedMessage(String name, int lostCP, int team) { MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); mplew.writeShort(SendPacketOpcode.MONSTER_CARNIVAL_DIED.getValue()); mplew.write(team); mplew.writeMapleAsciiString(name); mplew.write(lostCP); return mplew.getPacket(); } public static byte[] playerLeaveMessage(boolean leader, String name, int team) { MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); mplew.writeShort(SendPacketOpcode.MONSTER_CARNIVAL_LEAVE.getValue()); mplew.write(leader ? 7 : 0); mplew.write(team); mplew.writeMapleAsciiString(name); return mplew.getPacket(); } public static byte[] CPUpdate(boolean party, int curCP, int totalCP, int team) { MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); mplew.writeShort(SendPacketOpcode.MONSTER_CARNIVAL_OBTAINED_CP.getValue()); mplew.writeInt(curCP); mplew.writeInt(totalCP); return mplew.getPacket(); } public static byte[] showMCStats(int left, int right) { MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); mplew.writeShort(SendPacketOpcode.MONSTER_CARNIVAL_STATS.getValue()); mplew.writeInt(left); mplew.writeInt(right); return mplew.getPacket(); } public static byte[] playerSummoned(String name, int tab, int number) { MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); mplew.writeShort(SendPacketOpcode.MONSTER_CARNIVAL_SUMMON.getValue()); mplew.write(tab); mplew.write(number); mplew.writeMapleAsciiString(name); return mplew.getPacket(); } public static byte[] showMCResult(int mode) { MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); mplew.writeShort(SendPacketOpcode.MONSTER_CARNIVAL_RESULT.getValue()); mplew.write(mode); return mplew.getPacket(); } public static byte[] showMCRanking(List<MapleCharacter> players) { MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); mplew.writeShort(SendPacketOpcode.MONSTER_CARNIVAL_RANKING.getValue()); mplew.writeShort(players.size()); for (MapleCharacter i : players) { mplew.writeInt(i.getId()); mplew.writeMapleAsciiString(i.getName()); mplew.writeInt(10); mplew.write(0); } return mplew.getPacket(); } }