Что нового

[RF Online] Бот

Dellroc

Осваивающий
Сообщения
151
Репутация
31
Собственно моя версия бота для рфки.
Бот умеет:
Заходить в игру.
Одеваться после входа в прем шмот.
Продавать лут.
Покупать бутыли для фарма.
Идти до места для фарма.
После воскрешения возвращаться.

Принцип действия:
Ходит бот по вейпоинтам. На месте фарма ищет цель по уникальному пикселю.

Для простоты перепрограммирования сделаны файлики с основными командами и путями.
Опишу один пример файлика:
[FullTravel]
0=180|0|||RotEx
1=63020|71624|50||
2=63519|71397|40||
3=190|160|||Rotation
4=1|1|||Shop
5=120|0|||Rotation
6=63845|71309|50||
7=63977|71088|50||
8=64446|71297|50||
9=65646|71839|50||
10=67148|69690|50||
11=68314|68567|50||
12=69031|68519|50||
13=71014|69450|50||
14=71911|69968|50||
15=73861|70636|50||
16=74663|71491|50||
17=75684|72463|50||
18=75978|73261|50||
19=200|0|||DestPoint
26=2|Богомол Доминант|304124||Start
[PointTravel]
0=100|0|||RotEx
1=71014|69450|50||
2=71911|69968|50||
3=73861|70636|50||
4=74663|71491|50||
5=75684|72463|50||
6=75978|73261|50||
7=200|0|||DestPoint
26=2|Богомол Доминант|304124||Start
[FastTravel]
0=180|0|||RotEx
1=63020|71624|50||
2=63519|71397|40||
3=63845|71309|50||
4=63977|71088|50||
5=64446|71297|50||
6=65646|71839|50||
7=67148|69690|50||
8=68314|68567|50||
9=69031|68519|50||
10=71014|69450|50||
11=71911|69968|50||
12=73861|70636|50||
13=74663|71491|50||
14=75684|72463|50||
15=75978|73261|50||
16=200|0|||DestPoint
26=2|Богомол Доминант|304124||Start
[GoToBase]
0=62918|63026|||
[StartAdd]
26=2|Богомол Доминант|304124||Start
Рассмотрим фулл тревел:
0=180|0|||RotEx - функция поворота. Угол определяет через память. 180 - угол поворота. 0 - угол наклона.
1=63020|71624|50|| - координаты точки. 63020 - Х, 71624 - У, 50 - погрешность, т.к. идиальнов координаты не попасть.
3=190|160|||Rotation - функция поворота. Угол устанавливается тычками мышки в игре. 190 - угол поворота, 160 - угол наклона.
4=1|1|||Shop - функция дающая команду боту для поиска торговца и закупу. 1 - ничего не значит и необходима для правильной работы скрипта.
19=200|0|||DestPoint - даёт команду боту подготовится к фарму. 200 - угол поворота камеры. 0 - угол наклона.
26=2|Богомол Доминант|304124||Start - задаёт данные для фарма. 2 - погрешность поиска уникального пикселя, Богомол Доминант - название моба (чтобы бот убедился, что ткнул куда нужно), 304124 - цвет уникального пикселя.

Обязательные условия:
Игра обязательно должна быть в оконном режиме 1024х768.
Работает только на Win7x64.
Управление должно быть AWSD, тоесть на клавиатуре (Кнопка "h" на клаве в игре для переключения).
Копки бара 123456, а не F1 F2 F3... (Кнопка "\" на клаве в игре для переключения).
Программа должна быть скомпилирована в x86.
Пример настройки бара во вложении. Важно: 1 кнопка всегда макрос для атаки, 5 бафы (не обязательная), 8 телепорт на базу (по желанию), 10 бутылки обязательно (иначе после воскрешения бот не сможет проверить наличие бутылей и решит, что их нету).

PS: Защиты от тупости нету. Так что если делаете фигню, не удивляйтесь результату.
PS2: Если что не понятно, задавайте вопросы - отвечу по мере возможности.
Ссылка на архив http://autoit-script.ru/index.php?action=downloads;sa=downfile&id=202

Скомпилированная программа и необходимы для работы файлы:
http://autoit-script.ru/index.php?action=downloads;sa=downfile&id=210
 

MrGep

Новичок
Сообщения
74
Репутация
1
Зашел, запустил, подключился, выбрал одну из настроек - нажимаю "Начать движение" и экран начинает крутиться, словно колесико мыши заело. Так как никто больше не отписался, есть вероятность, что у меня руки не из того места растут. Автор, что скажешь? С чем это может быть связано, кроме прямоты моих рук?)
 
Автор
D

Dellroc

Осваивающий
Сообщения
151
Репутация
31
Игра в окне? В какой локации дело происходит? Какой файлик в качестве маршрута выбран? Только что проверял, всё работает.
Добавлю уточнение: Программа должна быть скомпилирована в x86.
 

MrGep

Новичок
Сообщения
74
Репутация
1
Да, все так. Ты на каком сервере тестил? На оффе?
 
Автор
D

Dellroc

Осваивающий
Сообщения
151
Репутация
31
Тестил и использовал на офе.
Управление должно быть AWSD, тоесть на клавиатуре (Кнопка "h" на клаве в игре для переключения).
Копки бара 123456, а не F1 F2 F3... (Кнопка "\" на клаве в игре для переключения).
Вы не ответили про выбранный файлик в качестве маршрута, в котором собственно все движения персонажа и лежат.
 

MrGep

Новичок
Сообщения
74
Репутация
1
Локация Солус, выбранный файл "1BelkiSolusBogomol"
 
Автор
D

Dellroc

Осваивающий
Сообщения
151
Репутация
31
Ну я так подозреваю, что если крутится на месте, значит не может определить угол на который повёрнут в данный момент... а вообще что в трее пишет? Для информации: за поворот отвечают 2 функции: Новая - RotationEx и старая Rotation. Если не лень, то посмотри какое значение поворота возвращает из памяти _Turn($PID,$DllInformation)
 

MrGep

Новичок
Сообщения
74
Репутация
1
Так, значение _Turn($PID,$DllInformation) (он же $tTurn, если я правильно понял) равно 77, при этом каждый раз выравнивается именно на это значение.
 
Автор
D

Dellroc

Осваивающий
Сообщения
151
Репутация
31
Это угол на который повёрнут персонаж. Управление точно на кнопках awsd?
 
Автор
D

Dellroc

Осваивающий
Сообщения
151
Репутация
31
Попробуй вот этот набор
http://autoit-script.ru/index.php?action=downloads;sa=downfile&id=210
 

MrGep

Новичок
Сообщения
74
Репутация
1
Не помогло. Я друга попросил проверить, но пока у него времени нет. Слушай, а ты можешь на фрапс записать, к примеру? Может я что - то не так делаю.
 
Автор
D

Dellroc

Осваивающий
Сообщения
151
Репутация
31
Вот видео... http://youtu.be/6ChFgnQIZqk К сожалению нету вкачаного персонажа для показа всех функций.
Если есть ненужный акаунт, то не поленюсь записать полное видео.
 
Автор
D

Dellroc

Осваивающий
Сообщения
151
Репутация
31
У вас почему-то программа не определяет значения в памяти игры.... Попробуйте через Cheat Engine найти значения ХП персонажа... Может UAC в винде включён?
Да и вообще при нажатии на конопку "Подключение к РФ" он должен выставить текущие координаты, имя персонажа и значения ХП.

Вот этот кусок кода отвечает за подключение к процессу:
Код:
Global $ProcessName = "RF Online"
Func _OpenProc()
$PID = WinGetProcess($ProcessName)
	$DllInformation = _MemoryOpen($PID)
	$hWnd = WinGetHandle('[CLASS:D3D Window]')
	GUICtrlSetData($Name,_name($PID,$DllInformation))
	GUICtrlSetData($Xdisp,_xCoordEx($PID,$DllInformation))
	GUICtrlSetData($Ydisp,_yCoordEx($PID,$DllInformation))
	GUICtrlSetData($gHP,_HP($PID,$DllInformation))
EndFunc

Может у вас имя процесса по другому выглядит.
 
Автор
D

Dellroc

Осваивающий
Сообщения
151
Репутация
31
Напишите как и что исправили, после чего у вас стало подключатся к игре.
На кнопку стоп процесс не останавливается. Выход из программы alt+f, пауза alt+c.
Ну и ещё очень удивлён вашему ролику на 30 секунд из 90 секунд, в котором оставшиеся 60 секунд чёрный экран.... Да и как вы умудрились на минутный ролик сделать файл в 400мб?
И если не трудно перезапишите ролик.
 

MrGep

Новичок
Сообщения
74
Репутация
1
Исправил запуском от админа. Да, я видел в коде. Я поэтому и ткнул, показать, что только хоткеи, думал где - то ссыль на кнопку не видна. А вы через что смотрите? Просто у меня ролик нормально воспроизводится. У меня разрешение экрана 1920х1080, возможно, поэтому столько весит.
 
Автор
D

Dellroc

Осваивающий
Сообщения
151
Репутация
31
Если требуется запуск с правами админа, значит у вас не отключён контроль учётных записей и из-за этого видимо возникают все проблемы. BSPlayer
Из записи видно, что скрипт работает правильно и видит нужные значения в памяти. Мышкой он выставляет направление движения, а вот нажать на кнопку "W", чтобы побежать, у него не получается. Видимо мешается всё тот же контроль учётных записей или же в принципе не проходит команда "send". Советую вам попробовать по отправлять команды в игру каким-нибудь простеньким скриптом. Например ту же кнопку "в перёд" отдельным скриптом. А там уже посмотрим по результату.
 

MrGep

Новичок
Сообщения
74
Репутация
1
Отключил контроль( Как раз надо было) , запускается без админа, подключается, но все так же. Да, действительно,дело в команде отправки.
 
Верх