⬆️ ⬇️

Semi-automatic bot for the game "Farm Frenzy"

Good evening readers Habra! Recently, one person showed a macro bot for the Diamond Dash browser post . And he did everything using the AutoIt macro language. And I remembered that I used the AutoIt library to develop a semi-automatic bot on C #.

As I developed, see below ...



Necessary funds for work





First of all I downloaded AutoIt ( AutoIt Full Installation ) and installed it. Then in VisualStudio added library. I do not know why but I could not use the library without installing the exe file.



Beginning of work



The essence of my program was to select a rectangle and then use its hot keys to indicate its position and also indicate how many fields there are.

For example:

image





Hotkeys:


To use hot keys, I used the class found on the Internet , which used hot keys not only with the active application window, but also with the inactive one.

')

My hotkey code:



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);




We get 3 hot keys: Shift + Q, Shift + W, Shift + E, which execute the position1, position2 and position3 events.

You can use not only Shift but Ctrl, Alt, Win or nothing.



Calculation points for "click":


We transfer positions to the program to calculate the grid for which you need to make clicks.



Calculation Code:



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;

}


Options:







And the most interesting thing about the Shag method, in which we call its parameters from the AutoIt MouseClick library:







Well, that's all I showed you. Sources of my program: Download .



A small video of the application:











PS: I express my gratitude to my mother, who once asked me to think of how to spend less time on Farm Frenzy apps, but since she could not refuse at all, I wrote this program. At first I had to teach her a little about using the program, but now she is happy.



Thanks to all.

Source: https://habr.com/ru/post/126964/



All Articles