예제 #1
0
        private void timer_Tick(object sender, EventArgs e)
        {
            //looking for servers
            if (splashState == MainSplashState.Searching)
            {
                Console.Out.WriteLine("searching...");
                //update the engine state
                ymfasClient.Update();

                //attempt to find a new server
                Lidgren.Library.Network.NetServerInfo session = ymfasClient.GetLocalSession();
                if (session != null)
                {
                    String hostname = ymfasClient.GetHostNameFromIP(session.RemoteEndpoint.Address.ToString());
                    lstServers.Items.Add(hostname + " - " + session.RemoteEndpoint.Address.ToString());
                }
            }

            //connecting to a server
            if (splashState == MainSplashState.Connecting)
            {
                // update the engine state
                ymfasClient.Update();

                //time out if too long
                if (ticksConnecting * timer.Interval >= MAX_CONNECT_TIME)
                {
                    splashState = MainSplashState.Searching;
                    ymfasClient.Dispose();
                    ymfasClient = null;
                    MessageBox.Show("Connection attempt failed.");
                }
                else
                {
                    ticksConnecting++;

                    //check for successful connection
                    if (ymfasClient.Status == NetConnectionStatus.Connected)
                    {
                        splashState = MainSplashState.None;

                        // join lobby
                        GameLobby = new frmGameLobby(ymfasClient);
                        GameLobby.ShowDialog();

                        if (GameLobby.DialogResult == DialogResult.OK)
                        {
                            ymfasClient       = GameLobby.Client;
                            this.DialogResult = DialogResult.OK;
                            this.Close();
                        }
                    }
                }
            }
        }
예제 #2
0
        private void btnHost_Click(object sender, EventArgs e)
        {
            //Host a game
            // create a client and a server for the game lobby to use
            ymfasServer = new YmfasServer(txtName.Text);
            ymfasClient = new YmfasClient(txtName.Text);

            ymfasClient.Update();
            ymfasClient.Connect(IPAddress.Loopback);

            //Enter lobby
            GameLobby = new frmGameLobby(ymfasClient, ymfasServer);

            GameLobby.ShowDialog();
            // if we actually started a game
            if (GameLobby.DialogResult == DialogResult.OK)
            {
                ymfasClient = GameLobby.Client;
                ymfasServer = GameLobby.Server;

                this.DialogResult = DialogResult.OK;
                this.Close();
            }
        }
예제 #3
0
        private void btnHost_Click(object sender, EventArgs e)
        {
            //Host a game
            // create a client and a server for the game lobby to use
            ymfasServer = new YmfasServer(txtName.Text);
            ymfasClient = new YmfasClient(txtName.Text);

            ymfasClient.Update();
            ymfasClient.Connect(IPAddress.Loopback);

            //Enter lobby
            GameLobby = new frmGameLobby(ymfasClient, ymfasServer);

            GameLobby.ShowDialog();
            // if we actually started a game
            if (GameLobby.DialogResult == DialogResult.OK) {
                ymfasClient = GameLobby.Client;
                ymfasServer = GameLobby.Server;

                this.DialogResult = DialogResult.OK;
                this.Close();
            }
        }
예제 #4
0
        private void timer_Tick(object sender, EventArgs e)
        {
            //looking for servers
            if (splashState == MainSplashState.Searching) {

                Console.Out.WriteLine("searching...");
                //update the engine state
                ymfasClient.Update();

                //attempt to find a new server
                Lidgren.Library.Network.NetServerInfo session = ymfasClient.GetLocalSession();
                if (session != null) {
                    String hostname = ymfasClient.GetHostNameFromIP(session.RemoteEndpoint.Address.ToString());
                    lstServers.Items.Add(hostname + " - " + session.RemoteEndpoint.Address.ToString());
                }
            }

            //connecting to a server
            if (splashState == MainSplashState.Connecting) {

                // update the engine state
                ymfasClient.Update();

                //time out if too long
                if (ticksConnecting * timer.Interval >= MAX_CONNECT_TIME) {
                    splashState = MainSplashState.Searching;
                    ymfasClient.Dispose();
                    ymfasClient = null;
                    MessageBox.Show("Connection attempt failed.");
                }
                else {
                    ticksConnecting++;

                    //check for successful connection
                    if (ymfasClient.Status == NetConnectionStatus.Connected) {
                        splashState = MainSplashState.None;

                        // join lobby
                        GameLobby = new frmGameLobby(ymfasClient);
                        GameLobby.ShowDialog();

                        if (GameLobby.DialogResult == DialogResult.OK)
                        {
                            ymfasClient = GameLobby.Client;
                            this.DialogResult = DialogResult.OK;
                            this.Close();
                        }
                    }
                }
            }
        }