- Додавайтеся в скайп sr2221
- Повідомлень: 65535
- Повага: [+ 0 / -0]
- Пол: Чоловік
Почнемо з самого початку - це server.cfg.
server.cfg
maxnpc - Максимальна кількість NPC (ботів)
Соответсвенно якщо maxnpc 0 то боти не можуть підключиться до сервера, так що ставимо більше 0.
У цьому уроці, ми зробимо шлях транспортного засобу, так що сідайте в машину, і вводите / vrecord mynpc (Повинні бути ркон адміном) щоб почати запис.
Трохи поїздити по місту і коли ви закінчите, вводите, / stoprecord
Закрийте гру і перейдіть в папку scriptfiles, там ви побачите файл з ім'ям mynpc.rec. Перенесіть цей файл: "Папка з сервером> npcmodes> recordings"
Готово? Добре! Ви маєте запис (шлях) для вашого майбутнього NPC.
Ти міг помітити, що багато pawno скриптів в каталозі npcmodes, це стандартні "міні" скрипти, які контролюють дії вашого NPC.
Отже, створимо скрипт для вашого записаного шляху.
Створюємо новий файл в pawno, і замінюємо його вміст на це:
Code
#define RECORDING "mynpc" // Ім'я вашого файлу записи без розширення
#define RECORDING_TYPE 1 // 1 якщо шлях записаний в машині і 2 якщо шлях записаний пішки
#include
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
Це може бути виглядає для вас не зрозуміло, але зараз я опишу кожен рядок!
Code
#define RECORDING "mynpc" - // Ім'я вашого файлу записи без розширення.
Наша запис була названа mynpc, і його розширення було .rec, тому ми вводимо сюди mynpc
Quote
#define RECORDING_TYPE 1 // 1 якщо шлях записаний в машині і 2 якщо шлях записаний пішки
Code
#include
Code
publiс OnRecordingPlaybackEnd () StartRecordingPlayback (RECORDING_TYPE, RECORDING);
OnRecordingPlaybackEnd Це рядок коду робить запис циклу, коли нами записана запис закінчується, вона починає вопсроізводітся ще раз.
Code
publicOnNPCEnterVehicle (vehicleid, seatid) StartRecordingPlayback (RECORDING_TYPE, RECORDING);
Це ще один стандартний ікнклуд в NPC бібліотеці.
Це дозволить почати відтворення нашої записи коли гравець поміщений в автомобіль.
Code
public OnNPCExitVehicle () StopRecordingPlayback ();
Це зупинить відтворення запису якщо npc вийде з машини.
Code
public OnNPCSpawn () StartRecordingPlayback (RECORDING_TYPE, RECORDING);
Цей код означає, Коли NPC Заспавнітся почнеться відтворення запису.
Як бачите це все дуже просто.Теперь збережіть свій NPC "mini" скрипт, з назвою "mynpс.pwn" В "Папка з сервером> npcmodes>" і скомпілюйте.
Якщо він скомпілювати, ти можеш тепер продовжити робити наступні кроки в цьому учебніке.І не забудьте оновити sa-mp до останній версії.
Так, ми маємо шлях до файлу, і "Міні" павн скрипт для контролювання NPC, тепер нам треба завантажити NPC В GameMode Або FilterScript
Закрийте "Міні" павн скрипт, і завантажте ваш GameMode або FilterScript в павно.
Настав час щоб познайомиться з функцією ConnectNPC, що пропонує ця функція: підключає вашого NPC на ваш сервер.
Давайте вивчимо цю функцію, її параметри, і що вона означає:
"Dave" - перший параметр, це ім'я NPC. З допомогу цього ви можете шукати різних NPC і виконувати з ними різні дії.
"Mynpc" - це ім'я файлу (без розширення), "міні" скрипт ми створили раніше.
За допомогою новий знань про функції ConnectNPC, можна спробувати приєднати NPC в ваш gamemode або filterscript.
Code
public OnGameModeInit ()
<
print ( "my gamemode");
ConnectNPC ( "MyFirstNPC", "mynpc");
return 1;
>
або, якщо ви додаєте NPC в FilterScript
Code
public OnFilterScriptInit ()
<
print ( "my filterscript");
ConnectNPC ( "MyFirstNPC", "mynpc");
return 1;
>
Зараз, коли ми створили шлях в машині, нам потрібно створити машину для NPC.
ПРИМІТКА: Якщо ваш NPC не перебуває у машині, ви можете пропустити цей крок.
Якщо ви використовуєте NPC в GameMode:
Code
new MyFirstNPCVehicle; // Глобальна змінна
public OnGameModeInit ()
<
print ( "my gamemode");
ConnectNPC ( "MyFirstNPC", "mynpc");
MyFirstNPCVehicle = CreateVehicle (400, 0.0, 0.0, 5.0, 0.0, 3, 3, 5000);
return 1;
>
Якщо ви використовуєте NPC в FilterScript:
Code
new MyFirstNPCVehicle; // Глобальна змінна
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.
Ще одна річ, перш ніж йти в гру і перевіряти свого першого NPC, ми створили раніше для нього автомобіль, тепер ми повинні посадити його в автомобіль.
Я зробив це використовуючи public OnPlayerSpawn.
ПРИМІТКА: Якщо ваш NPC не перебуває у машині, ви можете пропустити цей крок.
Code
public OnPlayerSpawn (playerid)
<
if (IsPlayerNPC (playerid))
<
new npcname [MAX_PLAYER_NAME];
GetPlayerName (playerid, npcname, sizeof (npcname)); // отримати ім'я NPC
if (! strcmp (npcname, "MyFirstNPC", true)) // Перевіряємо якщо ім'я NPC MyFirstNPC
<
PutPlayerInVehicle (playerid, MyFirstNPCVehicle, 0); // затиснути його в машину раніше створену для нього
>
return 1;
>
return 1;
>
Якщо ви хочете додати ще одного NPC, цей код легко змінити, ось приклад для двох NPC:
Code
public OnPlayerSpawn (playerid)
<
if (IsPlayerNPC (playerid)) // Checks if the player that just spawned is an NPC.
<
new npcname [MAX_PLAYER_NAME];
GetPlayerName (playerid, npcname, sizeof (npcname));
if (! strcmp (npcname, "MyFirstNPC", true)) // перевіряємо ім'я MyFirstNPC
<
PutPlayerInVehicle (playerid, MyFirstNPCVehicle, 0); // затиснути NPC у створенні для нього машину
return 1;
>
if (! strcmp (npcname, "MySecondNPC", true))
<
PutPlayerInVehicle (playerid, AnotherVehicleID, 0);
return 1;
>
return 1;
>
return 1;
>
Тепер скомпілюйте Gamemode або Filterscript і йдіть в гру.
Якщо пощастить ви побачите NPC роз'їжджає по вами заданому шляху для нього, вітаємо. Ви зробили свого першого NPC!
- Додавайтеся в скайп sr2221
- Повідомлень: 65535
- Повага: [+ 0 / -0]
- Пол: Чоловік
Нік порушника: | Ваш нік: | Що зробив порушник? | скріни | |||
ICQ: |
Ваш лист: |
ICQ: |