private Rectangle obterRetanguloAreaColeta() { Size bounds = Proporcao.obterProporcao(); return(new Rectangle( (bounds.Width / 4) - ((bounds.Width / 2 * _percentualAreaBusca / 100) / 2), (bounds.Height / 2) - ((bounds.Height * _percentualAreaBusca / 100) / 2), (bounds.Width / 2 * _percentualAreaBusca / 100), (bounds.Height * _percentualAreaBusca / 100) )); }
public void movimentarAleatoriamente() { Random objRandomNumber = new Random(); /*int eixoHorizontalRandomico = objRandomNumber.Next((int)(Screen.PrimaryScreen.Bounds.Width / 2) - 100, (int)(Screen.PrimaryScreen.Bounds.Width / 2) + 100); * int eixoVertucalRandomico = objRandomNumber.Next((int)(Screen.PrimaryScreen.Bounds.Height / 2) - 100, (int)(Screen.PrimaryScreen.Bounds.Height / 2) + 100);*/ Size bounds = Proporcao.obterProporcao(); int variancia = 10; int eixoHorizontalRandomico = objRandomNumber.Next((int)(bounds.Width / 2) - variancia, (int)(bounds.Width / 2) + variancia); int eixoVertucalRandomico = objRandomNumber.Next((int)(bounds.Height / 2) - variancia, (int)(bounds.Height / 2) + variancia); Win32.clicarBotaoEsquerdo(eixoHorizontalRandomico, eixoVertucalRandomico); }
public bool acaoIniciarBatalha() { System.Threading.Thread.Sleep(1000); System.Windows.Forms.SendKeys.SendWait(" "); System.Threading.Thread.Sleep(4000); try { Size bounds = Proporcao.obterProporcao(); if (ImagemCaptura.obterInstancia().objBitmap != null) { ImagemCaptura.obterInstancia().objBitmap.Dispose(); } Bitmap objBitmap = ImagemCaptura.obterInstancia().obterImagemTela(true); int eixoHorizontal = 275; int eixoVertical = 405; //Acrescentado 21 pixels na altura/largura do retangulo do personagem e gato, estava cortando no meio do retangulo do número. int larguraEAlturaRetangulo = 107 + 21; Rectangle retanguloPersonagem = new Rectangle(eixoHorizontal, eixoVertical, larguraEAlturaRetangulo, larguraEAlturaRetangulo); eixoHorizontal = 448; Rectangle retanguloGato = new Rectangle(eixoHorizontal, eixoVertical, larguraEAlturaRetangulo, larguraEAlturaRetangulo); Dictionary <int, Model.Match> MatchesGato = new Dictionary <int, Model.Match>(); AntiBOT objAntiBOT = new AntiBOT(); for (int numeroMatch = 1; numeroMatch <= 8; numeroMatch++) { MatchesGato.Add(numeroMatch, ImagemBusca.obterInstancia().buscarImagemPorTemplateRotacionado( objAntiBOT.numerosMatch["Numero" + numeroMatch], Imagem.EnumRegiaoImagem.RETANGULO, retanguloGato ) ); } Application.DoEvents(); List <Model.Match> Verificar = new List <Model.Match>(); List <Model.Match> NaoEncontrados = new List <Model.Match>(); //Buscar os números até encontrar pelo menos 3 do lado do gato Verificar.Clear(); foreach (Model.Match m in MatchesGato.Values) { if (m.Semelhanca > 0) { Verificar.Add(m); } else { NaoEncontrados.Add(m); } } List <Model.Match> Clicar = new List <Model.Match>(); bool conflito = false; if (Verificar.Count > 3) { for (int i = 0; i < Verificar.Count; i++) { conflito = false; for (int j = 0; j < Verificar.Count; j++) { if (i == j) { continue; } if (new Rectangle(Verificar[i].Location, new Size(24, 24)).Contains(Verificar[j].Location)) { conflito = true; if (Verificar[i].Semelhanca > Verificar[j].Semelhanca) { Clicar.Add(Verificar[i]); } else { Clicar.Add(Verificar[j]); } } } if (!conflito) { Clicar.Add(Verificar[i]); } } } else { Clicar.AddRange(Verificar); } System.Threading.Thread.Sleep(1100); foreach (Model.Match objMatch in Clicar) { //System.Threading.Thread.Sleep(2000); Model.Match matchClicar = ImagemBusca.obterInstancia().buscarImagemPorTemplateRotacionado(objAntiBOT.numerosMatch["Numero" + objMatch.Numero.ToString()], Imagem.EnumRegiaoImagem.RETANGULO, retanguloPersonagem); System.Windows.Forms.SendKeys.SendWait("1"); System.Threading.Thread.Sleep(800); Common.Lib.Win32.clicarBotaoEsquerdo(matchClicar.Location.X, matchClicar.Location.Y); } Application.DoEvents(); System.Threading.Thread.Sleep(5000); Busca.obterInstancia().validarFechamentoMensagens(); } catch (Exception objException) { MessageBox.Show(objException.Message); } return(true); }