예제 #1
0
        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();
        }