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!"; }