public void SelectGameServer(Model.GameServer gameServer) { if (gameServer != null) { GameServer = gameServer; } else { throw new ArgumentNullException(); } SendPacket(new Packet.Client.RequestServerLogin() { ServerId = (byte)gameServer.Id, LoginKey = LoginKey }); }
/// <returns>Character list</returns> public IEnumerable <Model.Player> SelectServer(Model.GameServer server) // Todo: SocketException { lock (Sync) { LoginServer.SelectGameServer(server); var result = Wait(r => r is Result.ServerSelected | r is Result.PlayFail); if (result is Result.ServerSelected) { lock (Sync) { var sk = (Result.ServerSelected)result; GameServer.Connect(server, Identity.Login, sk.LoginKey, sk.GameKey, Config.Protocol); var cl = Wait(r => r is Result.GameConnected) as Result.GameConnected; return(cl.Characters); } } else { throw new PlayFailException((Result.PlayFail)result); } } }