Example #1
0
        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)
                       ));
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }