створення ботів

  • Додавайтеся в скайп 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 // Задіємо функції інклуд a_npc.

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]
  • Пол: Чоловік


Що-б написати скаргу на гравця напишіть сюди!










  • Додавайтеся в скайп sr2221
  • Повідомлень: 65535
  • Повага: [+ 0 / -0]
  • Пол: Чоловік

Схожі статті

Copyright © 2024

Нік порушника:
Ваш нік:
Що зробив порушник?
скріни
ICQ:

Ваш лист:
ICQ: