- public static byte[] getServerList(int serverId, String serverName, Map<Integer, Integer> channelLoad) {
- MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
- mplew.writeShort(SendPacketOpcode.SERVERLIST.getValue());
- mplew.write(serverId);
- mplew.writeMapleAsciiString(serverName);
- mplew.write(LoginServer.getFlag());
- mplew.writeMapleAsciiString(LoginServer.getEventMessage());
- mplew.write(0x64); // rate modifier, don't ask O.O!
- mplew.write(0x0); // event xp * 2.6 O.O!
- mplew.write(0x64); // rate modifier, don't ask O.O!
- mplew.writeShort(0); // drop rate * 2.6
- //mplew.writeZeroBytes(4);
- /*mplew.write(0x64); // rate modifier, don't ask O.O!
- mplew.write(0x0); // event xp * 2.6 O.O!
- mplew.write(0x64); // rate modifier, don't ask O.O!
- mplew.write(0x0); // drop rate * 2.6
- mplew.write(0x0);*/
- int lastChannel = 1;
- Set<Integer> channels = channelLoad.keySet();
- for (int i = 30; i > 0; i--) {
- if (channels.contains(i)) {
- lastChannel = i;
- break;
- }
- }
- mplew.write(lastChannel);
- int load;
- for (int i = 1; i <= lastChannel; i++) {
- if (channels.contains(i)) {
- load = channelLoad.get(i);
- } else {
- load = 1200;
- }
- mplew.writeMapleAsciiString(serverName + "-" + i);
- mplew.writeInt(load);
- mplew.write(serverId);
- mplew.writeShort(i - 1);
- }
- mplew.writeZeroBytes(6); //1 int, big penis then a short, a small penis
- return mplew.getPacket();
- }
- public static final byte[] getEndOfServerList() {
- final MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
- mplew.writeShort(SendPacketOpcode.SERVERLIST.getValue());
- mplew.write(0xFF);
- return mplew.getPacket();
- }