Полуавтоматический Бот Для Игры Веселая Ферма

Добрый вечер, читатели Хабра! Недавно один человек показал макробота для браузерной игры Diamond Dash. быстрый .

И делал все с помощью макроязыка AutoIt. И я вспомнил, что использовал библиотеку AutoIt для разработки полуавтоматического бота на C#.

Как я это разработал, смотрите ниже.



Необходимые инструменты для работы

  • Сама VisualStudio 2010
  • Навыки С#
  • И библиотека AutoIt
Первым делом я скачал сам AutoIt( Полная установка AutoIt ) и установил его.

Затем я добавил библиотеку в VisualStudio. Не знаю почему, но я не смог пользоваться библиотекой без установки exe-файла.



Начало работы

Суть моей программы заключалась в том, что вам нужно выделить прямоугольник и затем с помощью горячих клавиш указать его положение, а также указать, сколько полей он содержит. Например:

Полуавтоматический бот для игры

  • Положение прямоугольника задается точками 1.1, 1.n, n.1.
  • Высота 4
  • Ширина 3


Горячие клавиши:
Чтобы использовать горячие клавиши, я использовал класс нашел в интернете , который использовал горячие клавиши не только когда окно приложения было активным, но и когда оно было неактивным.

Мой код горячей клавиши:

HotKey[] Key = new HotKey[4]; Key[1] = new HotKey(); Key[2] = new HotKey(); Key[3] = new HotKey(); Key[1].

KeyModifier = HotKey.KeyModifiers.Shift; Key[1].

Key = Keys.Q; Key[1].

HotKeyPressed += new KeyEventHandler(position1); Key[2].

KeyModifier = HotKey.KeyModifiers.Shift; Key[2].

Key = Keys.W; Key[2].

HotKeyPressed += new KeyEventHandler(position2); Key[3].

KeyModifier = HotKey.KeyModifiers.Shift; Key[3].

Key = Keys.E; Key[3].

HotKeyPressed += new KeyEventHandler(position3);

У нас есть 3 горячие клавиши: Shift+Q, Shift+W, Shift+E, которые выполняют события Position1, Position2 и Position3. Вы можете использовать не только Shift, но и Ctrl, Alt, Win или ничего.



Расчет баллов за «клик»:
Мы передаем позиции в программу для расчета сетки, по которой нужно нажать.

Код расчета:

private void button1_Click(object sender, EventArgs e) { int shirina = Convert.ToInt32(textBox4.Text); int Vnax, Vnay, Vx, Vy, Nx, Ny; Vx = Convert.ToInt32(textBox1.Text); Vy = Convert.ToInt32(textBox2.Text); Nx = Convert.ToInt32(textBox3.Text); Ny = Convert.ToInt32(textBox6.Text); Vnax = (Convert.ToInt32(textBox7.Text) - Convert.ToInt32(textBox1.Text)) / (shirina - 1); Vnay = (Convert.ToInt32(textBox2.Text) - Convert.ToInt32(textBox8.Text)) / (shirina - 1); for (int i = 1; i <= shirina; i++) { Shag(Vx, Vy, Nx, Ny); Vx += Vnax; Vy -= Vnay; Nx += Vnax; Ny -= Vnay; } } private void Shag(int Vx, int Vy, int Nx, int Ny) { int vysota = Convert.ToInt32(textBox5.Text); int nax, nay, x, y; int nS = 4; int nCout = 1; String Str = "left"; nax = (Nx - Vx) / (vysota - 1); nay = (Ny - Vy) / (vysota - 1); x = Vx; y = Vy; for (int i = 1; i <= vysota; i++) { autoIt.MouseClick(Str, x, y, nCout, nS); x += nax; y += nay; }

Параметры:

  • Положение верхней точки Vx, Vy
  • Nx, Ny нижнее положение точки
И самое интересное в методе махорка , в котором мы вызываем метод из библиотеки AutoIt МышьНажмите его параметры:
  • x, y — положение точки для клика
  • nS - скорость перемещения курсора от одной точки к другой
  • nCout — количество кликов
  • Str - какую кнопку нажать, правую или левую
Ну вот и всё главное, что я вам показал.

Исходники моей программы: Скачать .

Небольшое видео о приложении:

  • Не знаю почему пропал курсор, но в пред. он смотрел.

    Камтасия б/у

  • нажатие немного подвисает, виноват в этом мой слабый бук + Камтасия хорошо загружала систему
  • и еще, точность щелчков зависит от правильного определения положения области «щелкания»
PS: Выражаю благодарность своей маме, которая однажды попросила меня придумать, как тратить меньше времени на приложения «Веселая ферма», но так как она ни от чего не могла отказаться, я написал эту программу.

Сначала мне пришлось немного обучить ее использованию программы, но теперь она счастлива.

Спасибо всем.

Теги: #C++ #autoit #программирование

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.