Ejemplo n.º 1
0
        private void HandleGameServerLoginRequest(GameServerLoginRequest packet)
        {
            if (packet.AccountName.Equals(startConfig.AccountName) && packet.Password.Equals(this.startConfig.Password))
            {
                clientConnection.Status = UltimaClientConnectionStatus.Game;

                Task.Run(() =>
                {
                    if (this.startConfig.ClientVersion >= new Version(7, 0, 0, 0))
                    {
                        EnterGameSA();
                    }
                    else
                    {
                        EnterGamePre7000();
                    }

                    transmitClientPackets = true;
                });
            }
            else
            {
                throw new NotImplementedException("account/password mismatch");
            }
        }
Ejemplo n.º 2
0
        private void HandleConnectToGameServer(ConnectToGameServerPacket packet)
        {
            lock (serverStreamLock)
            {
                DisconnectFromServer();
                Thread.Sleep(1000);
                serverEndpoint = new IPEndPoint(new IPAddress(packet.GameServerIp), packet.GameServerPort);
                serverStream   = ConnectToServer();
            }

            SendToServer(new Packet(PacketDefinitions.LoginSeed.Id, packet.Seed));

            var loginRequest = new GameServerLoginRequest
            {
                Key         = packet.Seed,
                AccountName = startConfig.AccountName,
                Password    = startConfig.Password
            };

            SendToServer(loginRequest.Serialize());
        }