Example #1
0
        static void Main()
        {
            /* Ищем процесс арчейджа, получаем его TITLE для того чтобы использовать в CaptureScreen */
            Process[] processlist = Process.GetProcesses();

            foreach (Process process in processlist)
            {
                if (process.ProcessName == "archeage")
                {
                    Program.ArcheageWindowTitle  = process.MainWindowTitle;
                    Program.ArcheageWindowHandle = process.MainWindowHandle;
                }
            }

            Program.Archeage = User32.FindWindow(null, Program.ArcheageWindowTitle);

            /* Загружаем элементы интерфейса для распознавания */

            VisionHeroLocation.LoadHeroCircle();
            VisionTarget.LoadTargetBars();
            VisionEnemy.LoadEnemyBars();
            VisionHero.LoadHeroBars();
            VisionAlliance.LoadAllianceBars();
            VisionAlliance.LoadManaBars();
            VisionEnemy.LoadEnemyTooltips();
            VisionNumbers.LoadDistanceNumbers();
            VisionGame.LoadButtonF();
            VisionGame.LoadButtonG();

            Route.LoadGrindRoute("D:\\CurrentRoute.txt");

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
Example #2
0
        static void Main()
        {
            /* Ищем процесс арчейджа, получаем его TITLE для того чтобы использовать в CaptureScreen */
            Process[] processlist = Process.GetProcesses();

            foreach (Process process in processlist)
            {
                if (process.ProcessName == "archeage")
                {
                    Program.ArcheageWindowTitle  = process.MainWindowTitle;
                    Program.ArcheageWindowHandle = process.MainWindowHandle;
                }
            }
            /////////////////////////
            WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
            bool             hasAdministrativeRight = pricipal.IsInRole(WindowsBuiltInRole.Administrator);

            if (hasAdministrativeRight == false)
            {
                ProcessStartInfo processInfo = new ProcessStartInfo(); //создаем новый процесс
                processInfo.Verb     = "runas";                        //в данном случае указываем, что процесс должен быть запущен с правами администратора
                processInfo.FileName = Application.ExecutablePath;     //указываем исполняемый файл (программу) для запуска
                try
                {
                    Process.Start(processInfo); //пытаемся запустить процесс
                }
                catch (System.ComponentModel.Win32Exception)
                {
                    //Ничего не делаем, потому что пользователь, возможно, нажал кнопку "Нет" в ответ на вопрос о запуске программы в окне предупреждения UAC (для Windows 7)
                }
                Application.Exit(); //закрываем текущую копию программы (в любом случае, даже если пользователь отменил запуск с правами администратора в окне UAC)
            }
            else //имеем права администратора, значит, стартуем
            {
                ////////////////////////
                Program.Archeage = User32.FindWindow(null, Program.ArcheageWindowTitle);

                /* Загружаем элементы интерфейса для распознавания */

                VisionHeroLocation.LoadHeroCircle();
                VisionTarget.LoadTargetBars();
                VisionEnemy.LoadEnemyBars();
                VisionHero.LoadHeroBars();
                VisionAlliance.LoadAllianceBars();
                VisionAlliance.LoadManaBars();
                VisionEnemy.LoadEnemyTooltips();
                VisionNumbers.LoadDistanceNumbers();
                VisionGame.LoadButtonF();
                VisionGame.LoadButtonG();

                // Route.LoadGrindRoute("RecordRoute.txt");

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form3());
            }
        }
Example #3
0
        private void TargetTimer_Tick(object sender, EventArgs e)
        {
            bool FindForm = false;

            for (int y = 100; y < 200; y++)
            {
                if (FindForm == true)
                {
                    break;
                }
                for (int x = 0; x < ScreenCapture.LockBitmap.Screen.Width - 900; x++)
                {
                    if (FindForm == true)
                    {
                        break;
                    }

                    int?TargetBarForm = VisionForm.FindForm(VisionTarget.TargetBars, x, y);
                    if (TargetBarForm != null)
                    {
                        FindForm    = true;
                        Hero.Target = true;
                        int TargetBarFormNumber = TargetBarForm ?? default(int);

                        /* Определяем количество ХП у врага */
                        int EnemyHpLenght;
                        for (EnemyHpLenght = 0; EnemyHpLenght < 365; ++EnemyHpLenght)
                        {
                            if (VisionForm.FindForm(VisionEnemy.EnemyBars, x + EnemyHpLenght + 1, y + 2) != null)
                            {
                                //continue;
                            }
                            else
                            {
                                break;
                            }
                        }

                        /* Определяем дистанцию для разных типов монстров */
                        if (TargetBarFormNumber == 0)
                        {
                            /* Обычный моб */
                            Enemy.Distance = VisionNumbers.GetDistance(x + 215, y - 12);
                            Enemy.Type     = "Normal";
                        }
                        else if (TargetBarFormNumber == 1)
                        {
                            /* Босс */
                            Enemy.Distance = VisionNumbers.GetDistance(x + 325, y - 12);
                            Enemy.Type     = "Boss";
                        }
                        else if (TargetBarFormNumber == 2)
                        {
                            /* Слабый моб */
                            Enemy.Distance = VisionNumbers.GetDistance(x + 110, y - 12);
                            Enemy.Type     = "Easy";
                        }

                        Enemy.Health = EnemyHpLenght;
                    }
                }
            }

            if (FindForm == false)
            {
                Hero.Target    = false;
                Enemy.Distance = null;
                Enemy.Health   = null;
            }
        }