示例#1
0
        private void btnConnect_Click(object sender, EventArgs e)
        {
            if (_currentServer == null)
            {
                return;
            }

            var settings = new ArmaStartSettings {
                Windowed         = chkWindow.Checked,
                ShowScriptErrors = chkScriptErrors.Checked,
                NoPause          = chkNoSplash.Checked,
                Profile          = listProfiles.SelectedIndex >= 0 ? listProfiles.SelectedItem.ToString() : ""
            };

            new ArmaLauncher().Connect(txtArmaPath.Text, _currentServer, settings);
        }
示例#2
0
        public static void StartArma(
            Modpack modpack,
            IEnumerable <Addon> addons,
            DirectoryInfo basePath,
            IEnumerable <string> arguments,
            bool connectIsChecked,
            IEnumerable <string> userAddons,
            bool set64bit,
            bool battleEye)
        {
            if (!Process.GetProcessesByName("Steam").Any())
            {
                MessageBox.Show(
                    "Steam is not running. Arma will probably not launch.",
                    "Steam not running",
                    MessageBoxButton.OK,
                    MessageBoxImage.Warning);
            }

            var addonFolders = basePath.EnumerateDirectories();
            var settings     = new ArmaStartSettings();

            settings.Mods =
                addons.Select(addon => addonFolders.First(folder => folder.Name == addon.Name).FullName).ToList();
            settings.Mods.AddRange(userAddons);
            settings.OtherArgs.AddRange(arguments);
            settings.OtherArgs.Add(modpack.AdditionalParams);
            var server = ServerInfo(modpack);

            try
            {
                var exe = "arma3battleye.exe";
                if (!battleEye)
                {
                    exe = set64bit ? "arma3_x64.exe" : "arma3.exe";
                }
                new ArmaLauncher().Connect(
                    Path.Combine(GetArma3Path(), exe),
                    connectIsChecked ? server : null,
                    settings,
                    true,
                    set64bit: set64bit, battleEye: battleEye);
            }
            catch (ArmaRunningException ex)
            {
                Log.Warning(ex, "Arma already running");
                MessageBox.Show(
                    "Arma already running!",
                    "Error launching Arma",
                    MessageBoxButton.OK,
                    MessageBoxImage.Error);
            }
            catch (ArmaNotFoundException ex)
            {
                Log.Warning(ex, "Arma path not found");
                MessageBox.Show(
                    "Arma path not found in the registry! Have you launched Arma at least once without the launcher before?",
                    "Error launching Arma",
                    MessageBoxButton.OK,
                    MessageBoxImage.Error);
            }
        }