Создание простого бота для игры

  • Для просмотра чата и остального функционала вам нужно авторизоваться или пройти регистрацию!
A

>A1RN1kE<

Автор темы
Добрый день!


В данной статье пойдет речь о том, как сделать Бота для Point Blank.

Что нам потребуется :
  • Microsoft Visual Studio 2010
  • Easy Macro Recorder 4.2

И так, всем иногда приходила в голову идея сделать "бота", который за вас бы качался. Да, есть определенные программы, которые заменяют ниже мною написанное, но у нас будет возможность настраивать данный бот "как хочешь", можно всякие возможности добавить. Т.е мы будем подстраивать под себя.


Первая часть.
Мы хотим, что бы данный бот делал движения мышкой + управлял нажатием клавиш.
Для управлением мышкой нам потребуется идентификатор окна, в котором будет управление.
Я не стал замарачиваться с поиском окна. К тому же, фрост скрывает его, хоть и есть несколько способов обойти это, я решил пойти намного легким путем.
Я создал фейковое окно. Создал форму, положил панель1 на форму, сделал прозрачным центр и установил положение окна при включении - Maximized.
Детально все описывать не буду. Готовый проект (под названием - "Посмотреть вложение 262")

Вторая часть.
Добавляем в файле Form1.cs ссылки на библиотеку:
Код:
using System.Runtime.InteropServices;
Теперь чуть ниже вставляем:
Код:
//SendMessage - отправляет сообщение для приложения (окна).
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);

static int GetParamFromButton(MouseButtons btn)
{
switch (btn)
{
case MouseButtons.Left: return 0x0001;
case MouseButtons.Middle: return 0x0010;
case MouseButtons.Right: return 0x0002;
default: throw new Win32Exception("Невозможно преобразовать значение!");
}
}

public static void MouseClick(IntPtr hWnd, MouseButtons btn, int x, int y , int Sleep)
{
int xyPoint = MAKELONG(x, y);
int wParam = GetParamFromButton(btn);

SendMessage(hWnd, (int)btn, wParam, xyPoint);
System.Threading.Thread.Sleep(Sleep);
SendMessage(hWnd, (int)btn + 1, wParam, xyPoint);
}
void KeysPress(string key,int sleep)
{
SendKeys.Send(key);
System.Threading.Thread.Sleep(sleep);
// SendKeys.Send(key);
}
Теперь мы можем управлять мышкой и нажатием клавиши мышки.

Еще ниже после этого как вставили предыдущий код, вставляем:
Код:
[DllImport("user32.dll")]
public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);
private const int WM_KEYUP = 0x0002;//Отжимает клавишу
private const int WM_KEYDOWN = 0x0001;//Нажимает клавишу
Вот теперь, мы можем управлять не только мышкой, но еще и клавиатурой.

Третья часть.
Скачиваем программку "Easy Macro Recorder 4.2 + ".
Устанавливаем, запускаем, регистрируемся.
Устанавливаем софт клавиши для управления
Скрин

1. - Софт клавиша для записи
2. - Софт клавиша для остановки записи.
3. - Ок, сохраняет

Записываем то, что хотите, что бы потом бот повторял.
Затем, сохраняем файл с макросом и открываем его через "блокнот". Видим вот такое:

где :
MouseMove 1273,561 - движение мышки до позиции (X = 1273, Y = 561)
Wait 16 - 16 миллисекунд ничего не делается.

KeyDown j - зажатие клавиши j
Wait 140 - продолжительность действия (в миллисекундах)
KeyUp j - отжатие клавиши (прекращает нажатие).

Немного разобравшись мы сможем понять, что каждое нажатие клавиши - состоит из 3х действий
Макроса от Easy Macro Recorder , который делает два действия - это переводит мышку по координатам X,Y и нажимает клавишу левой кнопки мыши (1 секунду = 1000 миллисекунд) :
Код:
LButtonUp [COLOR=#00FF00]867,714[/COLOR]
Wait [COLOR=#00FFFF]234[/COLOR]
LButtonDown [COLOR=#00FF00]867,714[/COLOR]
где 867,714 - координаты
234 - продолжительность зажатия левой кнопки мыши (в миллисекундах)

В С# это будет выглядеть так:
Код:
MouseClick([COLOR=#FFD700]panel1.Handle[/COLOR], MouseButtons.Left, [COLOR=#00FFFF]867[/COLOR], [COLOR=#00FF00]714[/COLOR], [COLOR=#FF0000]234[/COLOR]);
где 867 - координаты по оси X.
714 - координаты по оси Y.
234 - задержка в миллисекундах.
panel1.Handle - Идентификатор окна.

Вот такое будет управление мышью.

Управление клавиатурой:
Опять же думаю, показать на примере.
В Easy Macro Recorder будет выглядеть так:
Код:
KeyDown n
Wait 78
KeyUp n
Опять все объяснять не буду, читайте выше.
в C#:
Код:
KeysPress("'N",78);
С этим я думаю разобрались.


Теперь поговорим о фросте и его способности - "скрывать окно".
Для этого, я в начале темы и затронул эту тему. Но это все решено
вставляем в файл "Form1.cs":
Код:
public static FormFakeWindow Ffw = new FormFakeWindow();
Затем открываем файл "FormFakeWindow.Designer.cs" и изменяем приватность panel1 на "public".
После этого, можем вставлять в функции вот это:
Код:
MouseClick([COLOR=#FFD700]Ffw.panel1.Handle[/COLOR], MouseButtons.Left, 867, 714, 234);
Ffw.panel1.Handle - То что нужно вставлять..

Вот и все...
Особая благодарность ''Mathers''
 
  • Like
Реакции: By_Miha

crofman

Новенький
21 Апр 2012
2
0
1
Хорошо бы было и сам релиз софта выложить)
 

maSter™

Новенький
5 Дек 2011
8
0
1
с# же
а так для кача пригодится.
 

SHAPEN

Злой кодер
25 Апр 2013
42
55
179
ap, фича работает ещё? использовать можно?
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.