示例#1
0
        private void MainTimer_Tick(object sender, EventArgs e)
        {
            try
            {
                if (_isHost)
                {
                    string recieveMessage = _network.GetMessage().Trim();
                    if (recieveMessage != null && recieveMessage != string.Empty)
                    {
                        if (recieveMessage.Contains("$CLOSECONNECTION$"))
                        {
                            mainTimer.Stop();

                            listBoxLog.Items.Add("Verbindung zum Partner verloren.");

                            return;
                        }
                        else if (recieveMessage.Contains("$CLOSEERROR$"))
                        {
                            mainTimer.Stop();

                            listBoxLog.Items.Add("Bei deinem Gegner ist ein Fehler aufgetreten!");
                            MessageBox.Show("Bei deinem Gegner ist ein Fehler aufgetreten!\nDaher wurde die Verbindung aufgelöst!", "Fehler beim Gegner", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                            return;
                        }
                        else if (recieveMessage.Contains("$SURRENDER$"))
                        {
                            mainTimer.Stop();

                            MessageBox.Show("Dein Gegner hat aufgegeben!\nDu gast gewonnen!", "Glückwunsch", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                            listBoxLog.Items.Add("Dein Gegner hat aufgegeben! Du hast gewonnen!");

                            return;
                        }

                        ParseCommands(recieveMessage);
                    }


                    StringBuilder builder = new StringBuilder();
                    builder.Append("/t");
                    builder.Append((int)Math.Ceiling(_playerYou.Tanks));
                    builder.Append("/j");
                    builder.Append((int)Math.Ceiling(_playerYou.Jets));
                    builder.Append("/s");
                    builder.Append((int)Math.Ceiling(_playerYou.Soldiers));
                    builder.Append("/l");
                    builder.Append((int)_playerYou.LivePoints);
                    builder.Append(_commands.ToString());

                    _commands = new StringBuilder();

                    if (_network.IsConnected)
                    {
                        _network.SendMessage(builder.ToString());
                    }
                    else
                    {
                        mainTimer.Stop();

                        MessageBox.Show("FATAL ERROR: VERBINDUNG VERLOREN", "FATAL", MessageBoxButtons.OK, MessageBoxIcon.Error);

                        return;
                    }
                }
                else
                {
                    StringBuilder builder = new StringBuilder();
                    builder.Append("/t");
                    builder.Append((int)Math.Ceiling(_playerYou.Tanks));
                    builder.Append("/j");
                    builder.Append((int)Math.Ceiling(_playerYou.Jets));
                    builder.Append("/s");
                    builder.Append((int)Math.Ceiling(_playerYou.Soldiers));
                    builder.Append("/l");
                    builder.Append(((int)_playerYou.LivePoints));
                    builder.Append(_commands.ToString());

                    _commands = new StringBuilder();

                    string recieveMessage = string.Empty;

                    if (_network.IsConnected)
                    {
                        _network.SendMessage(builder.ToString());

                        recieveMessage = _network.GetMessage().Trim();
                    }
                    else
                    {
                        mainTimer.Stop();

                        MessageBox.Show("FATAL ERROR: VERBINDUNG VERLOREN", "FATAL", MessageBoxButtons.OK, MessageBoxIcon.Error);

                        return;
                    }


                    if (recieveMessage != null && recieveMessage != string.Empty)
                    {
                        if (recieveMessage.Contains("$CLOSECONNECTION$"))
                        {
                            mainTimer.Stop();

                            listBoxLog.Items.Add("Verbindung zum Partner verloren.");

                            return;
                        }
                        else if (recieveMessage.Contains("$CLOSEERROR$"))
                        {
                            mainTimer.Stop();

                            listBoxLog.Items.Add("Bei deinem Gegner ist ein Fehler aufgetreten!");
                            MessageBox.Show("Bei deinem Gegner ist ein Fehler aufgetreten!\nDaher wurde die Verbindung aufgelöst!", "Fehler beim Gegner", MessageBoxButtons.OK, MessageBoxIcon.Warning);

                            return;
                        }
                        else if (recieveMessage.Contains("$SURRENDER$"))
                        {
                            mainTimer.Stop();

                            MessageBox.Show("Dein Gegner hat aufgegeben!\nDu gast gewonnen!", "Glückwunsch", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                            listBoxLog.Items.Add("Dein Gegner hat aufgegeben! Du hast gewonnen!");

                            return;
                        }

                        ParseCommands(recieveMessage);
                    }
                }
            }
            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);
            }
        }
示例#2
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);
            }
        }