コード例 #1
0
ファイル: WizardMain.cs プロジェクト: jnnpsubm/YAR-Auth
        private void button1_Click(object sender, EventArgs e)
        {
            // NEXT / finish
            if (_stepCount == FinishCount)
            {
                int result;
                var b = new BotClass();
                var db = new DemonbuddyClass();
                var d = new DiabloClass();
                var ps = new ProfileScheduleClass();
                var w = new Helpers.Bot.WeekSchedule();

                b.Name = _ucDemonbuddy.textBox1.Text;
                b.Description = _ucDemonbuddy.textBox2.Text;

                // Advanced
                b.CreateWindowsUser = _ucAdvanced.checkBox2.Checked;
                b.UseWindowsUser = _ucAdvanced.checkBox1.Checked;
                b.WindowsUserName = _ucAdvanced.textBox1.Text;
                b.WindowsUserPassword = _ucAdvanced.maskedTextBox1.Text;
                b.D3PrefsLocation = _ucAdvanced.textBox3.Text;
                b.UseDiabloClone = _ucAdvanced.checkBox3.Checked;
                b.DiabloCloneLocation = _ucAdvanced.textBox2.Text;

                // Demonbuddy
                db.Location = _ucDemonbuddy.textBox4.Text;
                db.Key = _ucDemonbuddy.textBox3.Text;
                db.CombatRoutine = _ucDemonbuddy.comboBox1.SelectedItem != null
                    ? _ucDemonbuddy.comboBox1.SelectedItem.ToString()
                    : _ucDemonbuddy.comboBox1.Text;
                db.NoFlash = _ucDemonbuddy.checkBox1.Checked;
                db.AutoUpdate = _ucDemonbuddy.checkBox2.Checked;
                db.NoUpdate = _ucDemonbuddy.checkBox3.Checked;
                db.BuddyAuthUsername = _ucDemonbuddy.textBox9.Text;
                db.BuddyAuthPassword = _ucDemonbuddy.maskedTextBox2.Text;
                db.Priority = _ucDemonbuddy.comboBox2.SelectedIndex;
                db.ForceEnableAllPlugins = _ucDemonbuddy.checkBox5.Checked;

                db.ManualPosSize = _ucDemonbuddy.checkBox4.Checked;
                int.TryParse(_ucDemonbuddy.textBox6.Text, out result);
                db.X = result;
                int.TryParse(_ucDemonbuddy.textBox5.Text, out result);
                db.Y = result;
                int.TryParse(_ucDemonbuddy.textBox10.Text, out result);
                db.W = result;
                int.TryParse(_ucDemonbuddy.textBox11.Text, out result);
                db.H = result;

                // Diablo
                d.Username = _ucDiablo.username.Text;
                d.Password = _ucDiablo.password.Text;
                d.Location = _ucDiablo.diablo3Path.Text;
                d.Language = _ucDiablo.language.SelectedItem.ToString();
                d.Region = _ucDiablo.region.SelectedItem.ToString();
                d.UseAuthenticator = _ucDiablo.checkBox1.Checked;
                d.Serial = string.Format("{0}-{1}-{2}-{3}", _ucDiablo.textBox4.Text, _ucDiablo.textBox5.Text,
                    _ucDiablo.textBox7.Text, _ucDiablo.textBox6.Text);
                d.Serial2 = string.Format("{0}{1}{2}{3}", _ucDiablo.textBox4.Text, _ucDiablo.textBox5.Text,
                    _ucDiablo.textBox7.Text, _ucDiablo.textBox6.Text);
                d.RestoreCode = _ucDiablo.textBox8.Text;
                d.Priority = _ucDiablo.processorAffinity.SelectedIndex;
                d.UseIsBoxer = _ucDiablo.useInnerSpace.Checked;
                d.CharacterSet = _ucDiablo.characterSet.Text;
                d.DisplaySlot = _ucDiablo.displaySlot.Text;
                d.NoFrame = _ucDiablo.removeWindowFrame.Checked;

                // Affinity Diablo
                if (d.CpuCount != Environment.ProcessorCount)
                {
                    d.ProcessorAffinity = d.AllProcessors;
                    d.CpuCount = Environment.ProcessorCount;
                }

                if (AffinityDiablo.cpus.Count != d.CpuCount)
                {
                    Logger.Instance.Write(
                        "For whatever reason Diablo and UI see different number of CPUs, affinity disabled");
                }
                else
                {
                    int intProcessorAffinity = 0;
                    for (int i = 0; i < d.CpuCount; i++)
                    {
                        if (AffinityDiablo.cpus[i].Checked)
                            intProcessorAffinity |= (1 << i);
                    }
                    if (intProcessorAffinity == 0)
                        intProcessorAffinity = -1;
                    d.ProcessorAffinity = intProcessorAffinity;
                }
                if (AffinityDiablo != null)
                    AffinityDiablo.Dispose();

                // Affinity Demonbuddy
                if (db.CpuCount != Environment.ProcessorCount)
                {
                    db.ProcessorAffinity = db.AllProcessors;
                    db.CpuCount = Environment.ProcessorCount;
                }

                if (AffinityDemonbuddy.cpus.Count != db.CpuCount)
                {
                    Logger.Instance.Write(
                        "For whatever reason Demonbuddy and UI see different number of CPUs, affinity disabled");
                }
                else
                {
                    int intProcessorAffinity = 0;
                    for (int i = 0; i < db.CpuCount; i++)
                    {
                        if (AffinityDemonbuddy.cpus[i].Checked)
                            intProcessorAffinity |= (1 << i);
                    }
                    if (intProcessorAffinity == 0)
                        intProcessorAffinity = -1;
                    db.ProcessorAffinity = intProcessorAffinity;
                }
                if (AffinityDemonbuddy != null)
                    AffinityDemonbuddy.Dispose();

                d.ManualPosSize = _ucDiablo.manualPositionAndSize.Checked;
                if (d.ManualPosSize)
                {
                    int.TryParse(_ucDiablo.positionX.Text, out result);
                    d.X = result;
                    int.TryParse(_ucDiablo.positionY.Text, out result);
                    d.Y = result;
                    int.TryParse(_ucDiablo.width.Text, out result);
                    d.W = result;
                    int.TryParse(_ucDiablo.height.Text, out result);
                    d.H = result;
                }

                w.GenerateNewSchedule();
                w.Shuffle = _ucWeekSchedule.checkBox1.Checked;
                w.MinRandom = Convert.ToInt32(_ucWeekSchedule.textBox1.Text);
                w.MaxRandom = Convert.ToInt32(_ucWeekSchedule.textBox2.Text);

                ps.Profiles = _ucProfileSchedule.Profiles;
                ps.MaxRandomTime = Convert.ToInt32(_ucProfileSchedule.textBox1.Text);
                ps.MaxRandomRuns = Convert.ToInt32(_ucProfileSchedule.textBox2.Text);
                ps.Random = _ucProfileSchedule.checkBox1.Checked;

                b.Week = w;
                b.Demonbuddy = db;
                b.Diablo = d;
                b.ProfileSchedule = ps;

                if (bot != null && index >= 0)
                {
                    Logger.Instance.WriteGlobal("Editing bot: {0}", b.Name);

                    // Copy some important stuff from old bot

                    b.IsStarted = BotSettings.Instance.Bots[index].IsStarted;
                    b.IsEnabled = BotSettings.Instance.Bots[index].IsEnabled;
                    b.IsRunning = BotSettings.Instance.Bots[index].IsRunning;
                    b.Diablo.Proc = BotSettings.Instance.Bots[index].Diablo.Proc;
                    b.Demonbuddy.Proc = BotSettings.Instance.Bots[index].Demonbuddy.Proc;
                    b.Demonbuddy.MainWindowHandle = BotSettings.Instance.Bots[index].Demonbuddy.MainWindowHandle;
                    b.Diablo.MainWindowHandle = BotSettings.Instance.Bots[index].Diablo.MainWindowHandle;
                    b.AntiIdle = BotSettings.Instance.Bots[index].AntiIdle;
                    b.Week.ForceStart = BotSettings.Instance.Bots[index].Week.ForceStart;
                    b.RunningTime = BotSettings.Instance.Bots[index].RunningTime;

                    BotSettings.Instance.Bots[index] = b;
                }
                else
                {
                    Logger.Instance.WriteGlobal("Adding new bot: {0}", b.Name);
                    BotSettings.Instance.Bots.Add(b);
                }

                BotSettings.Instance.Save();
                shouldClose = true;
                ActiveForm.Close();

                BotSettings.Instance.Save();
                Program.Mainform.UpdateGridView();
                return;
            }

            if (ValidateControl(Controls[_stepCount]))
            {
                Controls[_stepCount].Visible = false; // Hide old
                _stepCount++;
                Controls[_stepCount].Visible = true; // Show new
            }

            if (_stepCount > _mainCount)
                buttonBack.Enabled = true;
            if (_stepCount == FinishCount)
                buttonNext.Text = "Save!";
        }