Jump to content
  • 0

Ertheia Serverlist Packet


Question

Posted

Hello

 

Anybody knows correct structure of ServerList Login>Client packet of ertheia or similar client?

I have tested L2JServer Ertheia structure and Mobius/L2JUnity, they don't work correctly on ertheia(amount of characters is always shown as 0).

 

L2JServer ertheia structure:

        writeC(0x04);
		writeC(_servers.size());
		writeC(_lastServer);
		for (ServerData server : _servers)
		{
			writeC(server._serverId); // server id
			
			writeC(server._ip[0] & 0xff);
			writeC(server._ip[1] & 0xff);
			writeC(server._ip[2] & 0xff);
			writeC(server._ip[3] & 0xff);
			
			writeD(server._port);
			writeC(server._ageLimit); // Age Limit 0, 15, 18
			writeC(server._pvp ? 0x01 : 0x00);
			writeH(server._currentPlayers);
			writeH(server._maxPlayers);
			writeC(server._status == ServerStatus.STATUS_DOWN ? 0x00 : 0x01);
			writeD(server._serverType); // 1: Normal, 2: Relax, 4: Public Test, 8: No Label, 16: Character Creation Restricted, 32: Event, 64: Free
			writeC(server._brackets ? 0x01 : 0x00);
		}
		writeH(0x00); // unknown
		if (_charsOnServers != null)
		{
			writeC(_charsOnServers.size());
			for (int servId : _charsOnServers.keySet())
			{
				writeC(servId);
				writeC(_charsOnServers.get(servId));
				if ((_charsToDelete == null) || !_charsToDelete.containsKey(servId))
				{
					writeC(0x00);
				}
				else
				{
					writeC(_charsToDelete.get(servId).length);
					for (long deleteTime : _charsToDelete.get(servId))
					{
						writeD((int) ((deleteTime - System.currentTimeMillis()) / 1000));
					}
				}
			}
		}
		else
		{
			writeC(0x00);
		}

2 answers to this question

Recommended Posts

  • 0
Posted

I figured it out. Packet structure seems to be fine, I had L2.ini from Interlude(not Ertheia) and that was the cause. Game was running normally, just characters online count was not showing...

Guest
This topic is now closed to further replies.


×
×
  • Create New...