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.textBox3.Text;
d.Password = _ucDiablo.maskedTextBox1.Text;
d.Location = _ucDiablo.textBox1.Text;
d.Language = _ucDiablo.comboBox1.SelectedItem.ToString();
d.Region = _ucDiablo.comboBox2.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.RestoreCode = _ucDiablo.textBox8.Text;
d.Priority = _ucDiablo.comboBox3.SelectedIndex;
d.UseIsBoxer = _ucDiablo.checkBox2.Checked;
d.CharacterSet = _ucDiablo.textBox13.Text;
d.DisplaySlot = _ucDiablo.textBox12.Text;
d.NoFrame = _ucDiablo.checkBox4.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.checkBox3.Checked;
int.TryParse(_ucDiablo.textBox2.Text, out result);
d.X = result;
int.TryParse(_ucDiablo.textBox9.Text, out result);
d.Y = result;
int.TryParse(_ucDiablo.textBox10.Text, out result);
d.W = result;
int.TryParse(_ucDiablo.textBox11.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;
WizardMain.ActiveForm.Close();
Program.Mainform.UpdateGridView();
return;
}
if (ValidateControl(Controls[_stepCount]))
{
Controls[_stepCount].Visible = false; // Hide old
_stepCount++;
Controls[_stepCount].Visible = true; // Show new
}
if (_stepCount > _mainCount)
button2.Enabled = true;
if (_stepCount == FinishCount)
button1.Text = "Save!";
}