public static async void StartHalo(string Gamertag, string LoginToken, Halo_2_Launcher.Forms.MainForm Form) { Form.Hide(); XliveSettings.ProfileName1 = Gamertag; XliveSettings.loginToken = LoginToken; XliveSettings.SaveSettings(); LauncherSettings.SaveSettings(); await Task.Delay(1); //File.WriteAllLines(Paths.InstallPath + "token.ini", new string[] { "token=" + LoginToken, "username="******"halo2"); int RunningTicks = 0; /* * Game Running thread ticks every 1 second with a maximum of 15 ticks till reset. * * */ while (Process.GetProcessesByName("halo2").Length == 1) //DURING HALO RUNNING THREAD { if (RunningTicks == 15) //Check Ban Status every 15 ticks { var banResult = WebControl.CheckBan(Gamertag, LoginToken); if (banResult == CheckBanResult.Banned) { H2Launcher.H2Game.KillGame(); Form.BringToFront(); if (MetroMessageBox.Show(Form, "You have been banned, please visit the forum to appeal your ban.\r\nWould you like us to open the forums for you?.", Fun.PauseIdiomGenerator, System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Error) == DialogResult.Yes) { System.Diagnostics.Process.Start(@"http://www.halo2vista.com/forums/"); } } } #region GameStateChecks if (RunningTicks == 5) //GameState Check every 5 ticks { switch (H2Game.GameState) { case H2GameState.ingame: { H2Game.SetCrossHairPosition(); break; } } } #endregion HotkeyController.ExecuteHotKeys(); #region TickLogic if (RunningTicks == 15) { RunningTicks = 0; } else { RunningTicks++; } await Task.Delay(1000); #endregion } Form.Show(); }