shape1
shape2
shape3
shape4
shape7
shape8

Создание NPC (бота)


Mirex

Руководитель проекта
Команда портала
Гл.Администратор
Золотой
21.12.2013
2 512
3
550
0
29
definehost.ru
Скриптер
Здравствуйте. В этой теме мы научимся делать ботов для CR:MP.

Для начало, скачаем необходимые файлы, пароль: pawno-crmp.ru

Скачать

Файлы npc_record.pwn и npc_record.amx копируем в filterscripts, а a_npc.inc в /pawno/include.

Далее открываем server.cfg и в строке filterscripts прописываем npc_record, также изменяем maxnpc на количество ботов на сервере.

Далее открываем мод через pawno.exe и после #include добавляем #include и компилируем мод.

В этом уроке мы будем делать бота который ездит на машине по заданному маршруту. Заходим на сервер, входим как RCON администратор, садимся в машину и как только вы готовы начать записывать бота - вводим команду /vrecord [имя бота] (не используйте кириллицу в названии бота). Запись началась, ездим по нужному нам маршруту и когда нужно остановить запись бота - вводим команду /srecord и запись останавливается. 

Выходим из игры и заходим в scriptfiles, там вы увидите названия бота.rec копируем этот файл в /npcmodes/recordings.

Создаем чистый .pwn файл и вносим в него следующий код:

#define RECORDING "NameNPC" //Имя вашего записанного файла из scriptfiles без расширения
#define RECORDING_TYPE 1 //1 - если путь записан на машине, 2 - пешком
#include <a_npc>

main(){}

public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);
#if RECORDING_TYPE == 1
public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);
public OnNPCExitVehicle() StopRecordingPlayback();
#else
public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING); .
#endif

Компилируем и перемещаем его в папку npcmodes

Открываем свой мод и ко всем глобальным переменным добавляем (название может быть любое, я взял ProverkaNPC):

new ProverkaNPC;

Далее идем в public OnGameModeInit() и добавляем:

ConnectNPC("любое имя бота","название файла из scriptfiles без расширения");
ProverkaNPC = CreateVehicle(400,0.0,0.0,5.0,0.0,3,3,5000);//Координаты изменять не надо, можете изменить только модель ТС и цвет

Далее идем в public OnPlayerSpawn(playerid) и добавляем:

if(IsPlayerNPC(playerid))
{
new npcname[MAX_PLAYER_NAME];
GetPlayerName(playerid,npcname,sizeof(npcname));
if(!strcmp(npcname,"имя указанное в ConnectNPC",true))
{
PutPlayerInVehicle(playerid,ProverkaNPC,0);
}
return 1;
}
Если при подключении бота, его выкидывает с сервера из-за того, что у вас система регистрации, то при регистрации нужно вставить этот код:

if(IsPlayerNPC(playerid)) return 1;

Всё! Если вы всё сделали правильно, то у вас всё должно работать.

 
Последнее редактирование модератором:

Unknown

Освоившийся
Пользователь
08.10.2014
150
26
0
29
Хороший урок Neat !

 

BlaqStarr

Освоившийся
Пользователь
23.07.2014
329
1
28
0
28
Спасибо понадобится.

 

Nester

Освоившийся
Пользователь
29.09.2014
324
21
0
25
Игрок
Спасибо за урок.Думаю в будущем мне это пригодится.

 

Evolution

Новичок
Пользователь
03.11.2014
9
2
0
Полезно будет снимать всякие видяхи на пмар сервера)

 

Crank7772

Новичок
Пользователь
13.08.2014
179
2
0
Хм...а как к примеру сделать,что бы бот,ездил по другому маршруту?

 
C

compan

Гость
Гость
Записываете какой вам надо маршрут пешком или на авто.

 

vladkapalkin

Новичок
Пользователь
29.09.2014
42
0
0
я зделал как в начале захожу на сервер создаю авто и пишу каманду /vrecord         

   А она не робит 

 

artem060400

Новичок
Пользователь
16.07.2014
27
3
0
всё сделал правильно...захожу на сервер бота нет. почему?

 

vladz

Новичок
Пользователь
06.08.2014
21
0
0
Все правильно сделал, запустил сервер, а бота нету.(

 

Mirex

Руководитель проекта
Команда портала
Гл.Администратор
Золотой
21.12.2013
2 512
3
550
0
29
definehost.ru
Скриптер

TheSeLToN

Участник
Пользователь
21.09.2014
452
125
0
Я это добавил. его даже не видно как он подключается.
Значит вы не правильно вставили. Нужно вставлять туда, где происходит сама функция регистрации, а не туда где появляются диалоговые окна.

 
A

Amfy

Гость
Гость
vladz, если бот даже не подключается, значит что-то не правильно сделал.

Если подключается и сражу же кикает, значит где-то в моде бот не может правильно заспавниться.

 

MotoSport

Pawno-Crmp.Ru || Живи вечно!
Пользователь
08.03.2015
921
168
0
23
Т. е. можно запустить бесплатный автобус?  :D83DDE03: