Jump to content
  • 0

[AuthD] ServerList packet


Rootware

Question

Following NetPro data i interests the additional block what was added since Freya.

 

<?xml version="1.0" encoding="UTF-8"?>
<packet id="LS_SM_SERVER_LIST" xmlns="http://www.l2emu-unique.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.l2emu-unique.net ../../../schemata/packet.xsd">
	<byte alias="Game server count" id="gs_list" />
	<branch id="gs_list" condition="serverlist.ServerListPrelude">
		<byte alias="Last game server" type="GameServerName" />
	</branch>
	<loop id="gs_list">
		<byte alias="Game server" type="GameServerName">
			<scriptAlias id="__INVASIVE_AUTO_EXTRACT_GS_ID" />
		</byte>
		<branch id="gs_list" condition="serverlist.ServerListNamed">
			<bytes alias="Server name" type="auth.CustomServerName">
				<length>40</length>
			</bytes>
		</branch>
		<bytes alias="IPv4" type="IPv4">
			<length>4</length>
			<scriptAlias id="__INVASIVE_AUTO_REPLACE_GS_IP" />
		</bytes>
		<dword alias="Port">
			<scriptAlias id="__INVASIVE_AUTO_REPLACE_GS_PORT" />
		</dword>
		<branch id="gs_list" condition="serverlist.ServerListPrelude">
			<byte alias="Minimum player age" />
			<byte alias="PvP allowed" type="YesOrNo" />
			<word alias="Online players" />
			<word alias="Maximum players" />
			<byte alias="Online" type="YesOrNo" />
			<branch id="gs_list" condition="serverlist.ServerListC1">
				<dword alias="Type(s)" type="GameServerKind" />
				<branch id="gs_list" condition="serverlist.ServerListC2">
					<byte alias="Region" />
				</branch>
			</branch>
		</branch>
	</loop>
	<branch id="gs_list" condition="serverlist.ServerListFreya">
		<word alias="Non-padded bytes" id="bytesize" />
		<branch id="bytesize" condition="Positive">
			<branch id="bytesize" condition="serverlist.ServerList5Ex2">
				<bytes alias="Characters" type="ServerCharacterCount" />
			</branch>
			<branch id="bytesize" condition="serverlist.ServerList5Ex1">
				<byte alias="Game server count" id="gs_list" />
				<loop id="gs_list">
					<byte alias="Game server" type="GameServerName" />
					<byte alias="Total characters" />
					<byte alias="Pending deletion" id="timestamp_list" />
					<loop id="timestamp_list">
						<dword alias="Date of removal" type="SecondsSinceEpoch" />
					</loop>
				</loop>
			</branch>
		</branch>
	</branch>
	<!-- The rest is padding, except for 2nd last DWORD, which is the checksum -->
</packet>

 

Somebody to knows how the "ServerListFreya" block must to look in example? If i'm not mistake it's must add into every server list row the character count of this account for all servers in list. Or client isn't processing this data?

 

Thanks in advance.

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

I am pretty sure that the character count per server is what is contained in that second loop, though personally i have not bothered with a  new Auth yet. i am pretty sure the loop is something like count of servers with characters, then a for each server, how many characters exist.

Edited by pada
Link to comment
Share on other sites

  • 0

@pada ofc, i wanted to example of this loop. Working code. I checked many examples from L2J forks and nothing happened in my client. Maybe it's client side problem, but need be sure what server sent correct info. Otherwise it will looks like searching the black cat in dark room even his is not exists.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now


×
×
  • Create New...