1. Установленая GTA San Andreas
2. Установленый клиент SA-MP последней версии (Скачать клиент SA-MP 0.3a)
3. Установленый сервер SA-MP последней версии (Скачать сервер SA-MP 0.3a R4)
4. Руки и чуть мозгов =) Кучерявые руки не подходят!)))
Для начала настроим сервер и подберём оптимальный мод для него. Я взял простой мод FreeRoam. Вы же можете использовать любой мод. Так, дальше запускаем сервер и заходим на него через клиент. Используйте для этого IP адрес - 127.0.0.1:ваш порт . Зашли на сервер, выбрали любой скин игрока... И что же дальше? - спросите вы) А дальше мы будем записывать файл, который будет иметь в себе полную запись двтжений нашего бота.
Такс, входим под rcon админа сервера используя команду - /rcon login пароль .
Затем нам нужно подгрузить скрипт npc_record.amx , который дает возможность записывать движения бота в файл (этот скрипт также можно прописать в файле конфигурации "server.cfg", чтобы не подгружать его в игре). Вводим в окно чата команду, которая подгрузит наш скрипт - /rcon loadfs npc_record .
Вам должно написать - "Filterscript 'npc_record.amx' loaded". Написало? Если да - то продолжаем дальше. В случае если не подгружает, проверьте в папке filterscript наличие файла npc_record.amx .
После того, как мы подгрузили наш скрипт, для нас открываются три новых команды:
/vrecord "имя файла" - начать запись игрока в файл, который управляет любым транспортом (имя файла вводить без кавычек!).
/ofrecord "имя файла" - начать запись игрока в файл пешком (имя файла вводить без кавычек!).
/stoprecord - остановить запись.
Для нас сейчас главные две команды - /vrecord "имя файла" и /stoprecord .
На сервере вы должны найти транспорт, запись движений которого вы хотите зделать. Затем определитесь из стартом, т.е. из местом где вы введёте команду записи и начнёте своё движение. Рекомендую вам и заканчивать свой путь на старте, т.е. делать круг, ну это не обязательно.
Сейчас стаём на старт и вводим команду - /vrecord "имя файла" . После ввода можете начинать движение. В примере, я выбрал у качестве транспорта - автомобиль Elegy и начал запись в файл "mynpc" . Теперь нужно поездить где вам угодно. Не забывайте, все ваши движения на транспорте записуются.
По окончанию нужно ввести в окно чата команду - /stoprecord , запись остановится.
Все, мы закончили запись движений нашего бота в транспорте, можете выходить из игры и выключать сервер.
Мы с вами уже записали файл движений бота. А где же он? - спросите вы. А я отвечу, - В папочке "scriptfiles" в директории вашей игры (если же ваш сервер установлен в эту директорию). Проверьте, он должен быть под расширением .rec , т.е. если вы вводили, когда начинали запись, имя mynpc то файл будет mynpc.rec .
Это ключевой файл бата, без него никуда.
Теперь вам нужно вырезать этот файл, зайти в папку "npcmodes" затем в "recordings" и вставить туда файл.
Ну а теперь начинается самое тяжолое для многих людей, но я постараюсь объяснить все доходчиво.
Откройте Pawno, создайте там новый документ (File >> New), нажмите Ctrl+A (т.е. выделить все) и затем Delete (Удалить). Зделали? Хорошо... Теперь вставьте туда этот исходный код:
#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
Потом измените в строке "#define RECORDING "mynpc"" , "mynpc" - на имя файла движений вашего бота. В меня он называется "mynpc". Остальные строки вам пока не нужны, я их опишу в следуйщих уроках.
Теперь нам нужно сохранить этот файл (File >> Save as) в папке npcmodes под любым именем. Я сохранил под именем "younpc".
Файл сохранится с расширением .pwn , но нам он нужен в расширении .amx т.е. уже скомпилировам. По-этому нажимаем на синий трикутник в pawno и файл скомпилируется.
Все, первый скрипт готов. Но остался еще один, который мы потом подключим к серверу. Так что не торопитесь закрывать pawno). Опять же создаем новый документ (File >> New) все там удаляем и сейчас будем вставлять несколько исходных кодов по очереди и объяснять их. Сначала вставляем эти три строчки:
#define FILTERSCRIPT
#if defined FILTERSCRIPT
Затем вставляем этой код, которым мы присоединим нашего бота к скрипту:
public OnFilterScriptInit()
{
ConnectNPC("You_NPC","younpc");
BotCar = CreateVehicle(562,0,0,0,0,0,0,0);
return 1;
}
В строке "new BotCar" , "BotCar" - глобальная переменная, которая будет использоватся для создании транспотра для бота. Можете придумать любое название.
Дальше, строкой "ConnectNPC("You_NPC","younpc");" мы присоединяем нашего бота. Здесь "You_NPC" - любое название вашего бота, которое будет отображаться над ним (в дальнейшем мы сможет творить с ним много разных вещей); "younpc" - название скрипта, который мы создали перед этим и поместили в папку npcmodes.
Этой строкой мы создаём транспотрт для нашего бота "BotCar = CreateVehicle(562,0,0,0,0,0,0,0);" , где "BotCar" - глобальная переменная; "449,0,0,0,0,0,0,0" - ид транспотрта и координаты автомобиля. Не важно какие координаты вы укажете, все равно транспорт будет автоматически перемещен к боту.
Такс, с этим мы розобрались, теперь вставляем еще один код:
{
return 1;
}
#else
#endif
Сразу после этого кода вставляем вот этот, которым мы посадим нашего бота в транспорт созданый ранее:
{
if(IsPlayerNPC(playerid))
{
new npcname[MAX_PLAYER_NAME];
GetPlayerName(playerid, npcname, sizeof(npcname));
if(!strcmp(npcname, "You_NPC", true))
{
PutPlayerInVehicle(playerid, BotCar, 0);
}
return 1;
}
return 1;
}
Строкой "if(!strcmp(npcname, "You_NPC", true));" мы проверяем есть ли в нашем скрипте бот из именем "You_NPC" .
Если такой бот есть, то этой строкой PutPlayerInVehicle(playerid, BotCar, 0);" мы сажаем его в создый для него транспорт, который является переменной "BotCar" .
В итоге у вас должен получиться вот примерно такой скрипт:
#define FILTERSCRIPT
#if defined FILTERSCRIPT
new BotCar;
public OnFilterScriptInit()
{
ConnectNPC("You_NPC","younpc");
BotCar = CreateVehicle(562,0,0,0,0,0,0,0);
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
#endif
public OnPlayerSpawn(playerid)
{
if(IsPlayerNPC(playerid))
{
new npcname[MAX_PLAYER_NAME];
GetPlayerName(playerid, npcname, sizeof(npcname));
if(!strcmp(npcname, "You_NPC", true))
{
PutPlayerInVehicle(playerid, BotCar, 0);
}
return 1;
}
return 1;
}
Теперь сохраняем этот скрипт в папке filterscripts под любым именем и скомпилируем его. Я сохранил и скомпилировал под именем youfirstnpc .
В нас получился filterscript, который присоединит нашего бота к серверу. Остается только подключить этот скрипт к файлу конфигурации server.cfg .
Подключили? Вот и славно) Можете запускать свой сервер. В консоли сервера вам должно написать, что ваш бот зашёл на сервер.
Если написало то заходим на сервер и ищем нашего бота))
(Можете скачать бота, которого я записал по ходу этого урока)
Вот и все, теперь вы можете создавать своих оригинальных ботов) Буду очень благодарный, если вы будете заливать их в наш файловый архив. Спасибо за внимание.
Автор: BombArDier
© BombArDier Копирование запрещено!