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

  • Для просмотра чата и остального функционала вам нужно авторизоваться или пройти регистрацию!
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

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

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

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