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); } }
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); } }