e.AddServer(ServerName, new IPEndPoint(localAddress, localPort));
e.AddServer("Server 2", new IPEndPoint("255.255.255.255", 2593));
When you log-in and the server sends the server list packet, you can include an extra custom entry for that packet for additional shards.
Line 101:
C#:e.AddServer(ServerName, new IPEndPoint(localAddress, localPort));
You can do it there, by adding a line after, something like this;
C#:e.AddServer("Server 2", new IPEndPoint("255.255.255.255", 2593));
But you won't be able to login to one or the other, depending on your initial connection IP.
If you first login to 'localAddress:localPort', you may only select 'ServerName' from the list to connect, selecting "Server 2" would make the client deadlock.
It works the other way too, if you first connect to "255.255.255.255:2593", you can only select "Server 2", selecting "ServerName" will make the client deadlock.
This can be resolved by informing the target (selected) shard that the client has already passed login verification, in order for the client to follow through with server selection.
Both shards would need to auth the username/password again and would more than likely have to share a central accounts database so that both shards maintain the same account list.
It's a pretty complex change to make, but maybe it will become standard some day.
We use essential cookies to make this site work, and optional cookies to enhance your experience.