underworker
Специалист
Запись бота в файл.
Этот бот можно использовать для бомжатников, он будет ездить по городу по записанному вами пути и может возить новичков в АШ например.
В первую очередь для использования NPC в игре необходимо записать его схему перемещения в файл.
Запустите сервер с любым гейм модом и с подключенным фильтрскриптом
npc_record, теперь залогинтесь как администратор [/rcon login ****]. Для записи бота используются три команды:
/vrecord <filename> Начинает запись пути транспорта в указанный файл.
/ofrecord <filename> Начинает запись пути пешехода в указанный файл.
/stoprecord - Остонавливает запущенную запись.
В этом уроке мы сделаем запись транспорта.
И так доберитесь до любово транспорта, залезте в него, и наберите команду для записи
/vrecord mynpc (где mynpc мы указываем имя файла с записью).
Теперь покатайтесь по городу после чего остановите запись командой /stoprecord.
Закройте игру и идите в папку scriptfiles, там должен появится файл mynpc.rec
Теперь переместите этот файл в <папка sa-mp сервера>/npcmodes/recordings/
Сделали? Отлично!!! мы только что записали путь NPC и поместили запись в необходимую папку.
Подключение NPC
Вы возможно обратили внимание на скрипты в папке npcmodes это "mini" скрипты они управляют поведением NPC.
Теперь мы зделаем "mini" скрипт для управления нашим NPC.
Откройте Pawno создайте новый файл, очистите все что там есть и вставьте этот код:
Теперь я объясню каждую строку подробно.
Как вы уже поняли, здесь мы добовляем записанный нами файл, но без расширения rec
Здесь мы ставим тип нашей записи, если запись была на транспорте ставим 1, если пешком ставим 2.
Инклюд с функциями NPC.
OnRecordingPlaybackEnd - callback входящий в библиотеку NPC.
Эта строка повторяет воспроизведения, записанного файла (mynpc)
Эта строка запустит воспроизведение после того как NPC окажется в транспорте.
Эта строка остоновит воспроизведение, если NPC по какой либо причине окажется вне транспорта.
Строка воспроизведет NPC после его спавна.
Теперь сохраните ваш скрипт как mynpc.pwn в папку <папка sa-mp сервера>/npcmodes/ и скомпилируйте.
Если компилирование прошло успешно переходите к следующему шагу, если нет то убедитесь что вы не компилируете программой pawno старой версии.
Подключение вашего NPC
После предидущих шагов мы получили файл с записью NPC (mynpc.rec) и mini скрипт управляющий NPC(mynpc.amx).
Теперь нам необходимо подключить всё это в наш гейммод или фильтр скрипт, для этого необходимо пользоватся функцией ConnectNPC
ConnectNPC("Dave","mynpc");
Функция имеет 2 параметра:
"Dave" - этот параметр позволяет дать нашему NPC имя.
"mynpc" - это имя нашего mini скрипта (mynpc.amx) который мы зделали раньше.
Теперь вы знаете новую функцию ConnectNPC которая подключает NPC к игре из гейммода или фильтрскрипта.
Или, если вы добавляете NPC в filterscript...
Теперь так как мы создали нашего NPC на транспорте нам нужно создать для него этот транспорт.
Если ваш NPC не использует транспорт то вы можете пропустить этот шаг!
Или, если вы добавляете NPC в filterscript...
Заметьте что фактическое положение транспорта не имеет значения, так как транспорт будет телепортирован к месту начала пути NPC!!!
Только перед тем как начать игру и проверить вашего нового NPC, нам нужно поместить его в транспорт для этого используем OnPlayerSpawn...
Если ваш NPC не использует транспорт то вы можете пропустить этот шаг!
Теперь компилируйте ваш гейммод или фильтр скрипт, и начинайте играть, идите к тому месту где вы записывали своего NPC и радуйтесь вашему первому боту.
Текст перевел с английского и отредактировал:
maxim polipovich
Этот бот можно использовать для бомжатников, он будет ездить по городу по записанному вами пути и может возить новичков в АШ например.
В первую очередь для использования NPC в игре необходимо записать его схему перемещения в файл.
Запустите сервер с любым гейм модом и с подключенным фильтрскриптом
npc_record, теперь залогинтесь как администратор [/rcon login ****]. Для записи бота используются три команды:
/vrecord <filename> Начинает запись пути транспорта в указанный файл.
/ofrecord <filename> Начинает запись пути пешехода в указанный файл.
/stoprecord - Остонавливает запущенную запись.
В этом уроке мы сделаем запись транспорта.
И так доберитесь до любово транспорта, залезте в него, и наберите команду для записи
/vrecord mynpc (где mynpc мы указываем имя файла с записью).
Теперь покатайтесь по городу после чего остановите запись командой /stoprecord.
Закройте игру и идите в папку scriptfiles, там должен появится файл mynpc.rec
Теперь переместите этот файл в <папка sa-mp сервера>/npcmodes/recordings/
Сделали? Отлично!!! мы только что записали путь NPC и поместили запись в необходимую папку.
Подключение NPC
Вы возможно обратили внимание на скрипты в папке npcmodes это "mini" скрипты они управляют поведением NPC.
Теперь мы зделаем "mini" скрипт для управления нашим NPC.
Откройте Pawno создайте новый файл, очистите все что там есть и вставьте этот код:
PHP:
#define RECORDING "mynpc" //Имя файла с записью без расширения.
#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
Теперь я объясню каждую строку подробно.
PHP:
#define RECORDING "mynpc" //Имя файла с записью без расширения.
PHP:
#define RECORDING_TYPE 1 //Тип записи: 1 на транспорте, и 2 пишком
PHP:
#include <a_npc>
PHP:
public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);
Эта строка повторяет воспроизведения, записанного файла (mynpc)
PHP:
public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);
PHP:
public OnNPCExitVehicle() StopRecordingPlayback();
PHP:
public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING);
Теперь сохраните ваш скрипт как mynpc.pwn в папку <папка sa-mp сервера>/npcmodes/ и скомпилируйте.
Если компилирование прошло успешно переходите к следующему шагу, если нет то убедитесь что вы не компилируете программой pawno старой версии.
Подключение вашего NPC
После предидущих шагов мы получили файл с записью NPC (mynpc.rec) и mini скрипт управляющий NPC(mynpc.amx).
Теперь нам необходимо подключить всё это в наш гейммод или фильтр скрипт, для этого необходимо пользоватся функцией ConnectNPC
ConnectNPC("Dave","mynpc");
Функция имеет 2 параметра:
"Dave" - этот параметр позволяет дать нашему NPC имя.
"mynpc" - это имя нашего mini скрипта (mynpc.amx) который мы зделали раньше.
Теперь вы знаете новую функцию ConnectNPC которая подключает NPC к игре из гейммода или фильтрскрипта.
PHP:
public OnGameModeInit()
{
print("my gamemode");
ConnectNPC("MyFirstNPC","mynpc");
return 1;
}
PHP:
public OnFilterScriptInit()
{
print("my filterscript");
ConnectNPC("MyFirstNPC","mynpc");
return 1;
}
Теперь так как мы создали нашего NPC на транспорте нам нужно создать для него этот транспорт.
Если ваш NPC не использует транспорт то вы можете пропустить этот шаг!
PHP:
new MyFirstNPCVehicle; //Global variable!
public OnGameModeInit()
{
print("my gamemode");
ConnectNPC("MyFirstNPC","mynpc");
MyFirstNPCVehicle = CreateVehicle(400, 0.0, 0.0, 5.0, 0.0, 3, 3, 5000);
return 1;
}
PHP:
new MyFirstNPCVehicle; //Global variable!
public OnFilterScriptInit()
{
print("my filterscript");
ConnectNPC("MyFirstNPC","mynpc");
MyFirstNPCVehicle = CreateVehicle(400, 0.0, 0.0, 5.0, 0.0, 3, 3, 5000);
return 1;
}
Только перед тем как начать игру и проверить вашего нового NPC, нам нужно поместить его в транспорт для этого используем OnPlayerSpawn...
Если ваш NPC не использует транспорт то вы можете пропустить этот шаг!
PHP:
public OnPlayerSpawn(playerid)
{
if(IsPlayerNPC(playerid)) //Проверяет: существует ли игрок(NPC).
{
new npcname[MAX_PLAYER_NAME];
GetPlayerName(playerid, npcname, sizeof(npcname)); //Получает имя игрока (NPC).
if(!strcmp(npcname, "MyFirstNPC", true)) //Проверяет если имя MyFirstNPC.
{
PutPlayerInVehicle(playerid, MyFirstNPCVehicle, 0); //Помещает NPC в транспорт, который мы создали выше.
}
return 1;
}
//Место функциям для остольных игроков.
return 1;
}
Теперь компилируйте ваш гейммод или фильтр скрипт, и начинайте играть, идите к тому месту где вы записывали своего NPC и радуйтесь вашему первому боту.
Текст перевел с английского и отредактировал:
maxim polipovich
