Example #1
0
        private void Main_Load(object sender, EventArgs e)
        {
            _helper.Location = new Point(Bounds.Location.X + Bounds.Size.Width, Bounds.Location.Y);

            uiTimer.Start();

            labelEnemyName.Text = _playerEnemy.Name;
            labelYourName.Text  = _playerYou.Name;

            _buyPoints = _playerYou.StartPoints;

            progressLifeBarYou.Maximum = _playerYou.StartPoints;
            labelLifePointsYou.Text    = _playerYou.StartPoints.ToString();
            progressLifeBarYou.Value   = _playerYou.ObjectSum;

            if (_debug)
            {
                return;
            }

            try
            {
                if (_isHost)
                {
                    Thread server = new Thread(ServerThread)
                    {
                        IsBackground = true
                    };
                    server.Start();

                    Thread initThread = new Thread(InitThread)
                    {
                        IsBackground = true
                    };
                    initThread.Start();

                    listBoxLog.Items.Add("Du bist Host.");
                    listBoxLog.Items.Add("Warte auf Verbindung.");
                }
                else
                {
                    _network = new NetworkManager(IPAddress.Parse(_ip), _port, _isHost);

                    _network.SendMessage($"/c3/{_playerYou.Name}/{_playerYou.StartPoints}");

                    for (int index = 0; index < 5; index++)
                    {
                        string data = _network.GetMessage().Trim();

                        if (data.StartsWith("/sc"))
                        {
                            string stateInfo = data.Substring(4);

                            string[] segments = stateInfo.Split('/');

                            string enemyName   = segments[0];
                            int    enemyPoints = int.Parse(segments[1]);

                            progressLifebarEnemy.Maximum = enemyPoints;
                            progressLifebarEnemy.Value   = enemyPoints;
                            labelLifePointsEnemy.Text    = enemyPoints.ToString();

                            _playerEnemy.StartPoints = enemyPoints;
                            _playerEnemy.Name        = enemyName;
                            labelEnemyName.Text      = enemyName;

                            listBoxLog.Items.Add("Verbindung zum Host hergestellt.");
                            break;
                        }
                    }

                    buttonReady.Text = "Fertig (" + _buyPoints.ToString() + ")";
                    mainTimer.Start();
                    _starter.Hide();
                }
            }
            catch (System.Net.Sockets.SocketException sEx)
            {
                MessageBox.Show(sEx.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error);

                _starter.Show();

                Dispose();

                return;
            }
            catch (Exception ex)
            {
                if (_network.IsConnected)
                {
                    _network.SendMessage("$CLOSEERROR$");
                }

                mainTimer.Stop();

                StringBuilder builder = new StringBuilder();
                builder.AppendFormat("Fehler bei: {0}\n", ex.Source);
                builder.Append(ex.Message);

                MessageBox.Show(builder.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Example #2
0
 private void ServerThread()
 {
     _isServerConnected = false;
     _network           = new NetworkManager(IPAddress.Any, _port, true);
     _isServerConnected = true;
 }