private void popularInformacoesWakshark(int indiceInicial) { for (int indice = indiceInicial; indice < this.IndiceUltimaAcao; indice++) { ComboBox comboboxRecurso = (ComboBox)this.obterControlPorName(this, "comboBoxRecurso_" + indice.ToString()); ComboBox comboboxAcao = (ComboBox)this.obterControlPorName(this, "comboBoxAcao_" + indice.ToString()); comboboxRecurso.DataSource = null; comboboxAcao.DataSource = null; EnumTipoBusca objEnumTipoBusca = EnumUtil.ParseEnum <EnumTipoBusca>(comboBoxTipoBusca.SelectedItem.ToString()); if (objEnumTipoBusca == EnumTipoBusca.Coleta && comboBoxProfissao.SelectedValue != null) { EnumProfissoes objEnumProfissao = EnumUtil.ParseEnum <EnumProfissoes>(comboBoxProfissao.SelectedValue.ToString()); ServiceRecurso objServiceRecurso = ServiceRecurso.obterInstancia(); Dictionary <string, string> objListaRecursos = objServiceRecurso.obterListaSimplificadaRecursos(objEnumProfissao); comboboxRecurso.DataSource = new BindingSource(objListaRecursos, null); comboboxRecurso.ValueMember = "Value"; comboboxRecurso.DisplayMember = "Key"; ServiceBotaoAcao objServiceBotaoAcao = ServiceBotaoAcao.obterInstancia(); Dictionary <string, string> objListaAcoes = objServiceBotaoAcao.obterListaSimplificadaAcoes(); comboboxAcao.DataSource = new BindingSource(objListaAcoes, null); comboboxAcao.ValueMember = "Value"; comboboxAcao.DisplayMember = "Key"; } } }
private void checkBoxCacadorPixelsLigado_CheckedChanged(object sender, EventArgs e) { try { if (!String.IsNullOrEmpty(comboBoxTipoBusca.SelectedValue.ToString())) { CheckBox objCheckBox = (CheckBox)sender; this.checkBoxCacadorPixelsLigado.Checked = objCheckBox.Checked; this.checkBoxCacadorPixelsLigado.BackColor = Color.Gray; if (objCheckBox.Checked == true) { this.checkBoxCacadorPixelsLigado.BackColor = Color.Green; ImagemCaptura.obterInstancia().isUtilizarMascaraLuminosidade = checkBoxMascaraLuminosidade.Checked; Common.Lib.Win32.clicarBotaoEsquerdo(Screen.PrimaryScreen.Bounds.Width / 2, Screen.PrimaryScreen.Bounds.Height / 2); Camera.obterInstancia().padronizarDistanciaCamera(); // Modificar esse trecho utilizado para teste, porque está sendo validado somente por 'coleta'. Quem sabe um switch não caia melhor? if (EnumUtil.ParseEnum <EnumTipoBusca>(comboBoxTipoBusca.SelectedValue.ToString()) == EnumTipoBusca.Coleta) { ServiceRecurso objRecurso = ServiceRecurso.obterInstancia(); ServiceBotaoAcao objServiceBotaoAcao = ServiceBotaoAcao.obterInstancia(); Service.Busca objServiceBusca = Service.Busca.obterInstancia(); objServiceBusca.isAtivarModoBaixoConsumo = checkBoxAtivarBaixoConsumo.Checked; bool isMovimentarAleatoriamente = checkBoxMovimentarAleatoriamente.Checked; EnumProfissoes objEnumProfissao = EnumUtil.ParseEnum <EnumProfissoes>(comboBoxProfissao.SelectedValue.ToString()); List <AViewModelColeta> listaColetas = new List <AViewModelColeta>(); for (int indice = 0; indice < this.IndiceUltimaAcao; indice++) { ComboBox comboboxRecurso = (ComboBox)this.obterControlPorName(this, "comboBoxRecurso_" + indice.ToString()); ComboBox comboboxAcao = (ComboBox)this.obterControlPorName(this, "comboBoxAcao_" + indice.ToString()); string nomeRecurso = ((KeyValuePair <string, string>)comboboxRecurso.SelectedItem).Key; string nomeAcao = ((KeyValuePair <string, string>)comboboxAcao.SelectedItem).Key; ABotaoAcao botaAcao = objServiceBotaoAcao.obterBotaoAcao(nomeAcao); AViewModelColeta objAViewModelColeta = new Colheita(); if (botaAcao != null && botaAcao is IPlantio) { objAViewModelColeta = new Plantio(); } objAViewModelColeta.objRecurso = objRecurso.obterRecurso(nomeRecurso, objEnumProfissao); objAViewModelColeta.objABotaoAcao = botaAcao; listaColetas.Add(objAViewModelColeta); } // Responsável por permitir que o loop consiga ser encerrado utilizando as hotkeys ou clique no botão. Task.Factory.StartNew(() => { while (this.checkBoxCacadorPixelsLigado.Checked) { bool isSucessoNaColeta = true; foreach (AViewModelColeta objAViewModelColeta in listaColetas) { isSucessoNaColeta = true; while (isSucessoNaColeta && this.checkBoxCacadorPixelsLigado.Checked) { isSucessoNaColeta = objServiceBusca.buscar(objAViewModelColeta); } } if (!isSucessoNaColeta && isMovimentarAleatoriamente && this.checkBoxCacadorPixelsLigado.Checked) { Personagem.obterInstancia().movimentarAleatoriamente(); Thread.Sleep(800); } } }); } } } else { MessageBox.Show("Preencha os campos obrigatórios."); } } catch (Exception objException) { MessageBox.Show(objException.Message); } }