E-mail:
Пароль:

Страница 1 из 11
Форум | www.SAMP-TEAM.com » Wiki SA-MP » NPC » Урок по созданию NPC в транспорте
Урок по созданию NPC в транспорте
BombArDierДата: Пятница, 05.08.2011, 17:54 | Сообщение # 1
.::Offline::.
Лидер сообщества
Группа: Пользователь
Сообщений: 10
[ 174 ]
Награды: 47

...
На нашем сайте вы уже наверно скачали много NPC's (ботов), но все же вам наверно хочется научится создавать самому своих ботов... Разве я не прав? Ну вот, в этом уроке я научу вас создавать своего бота который управляет транспортом. Если вы прочитаете этот урок до конца, то полностью поймёте всю простоту создания своего бота. Что же нам понадобиться для его создания?

1. Установленная GTA San Andreas
2. Установленный клиент SA-MP последней версии (Скачать клиент SA-MP 0.3c)
3. Установленный сервер SA-MP последней версии (Скачать сервер SA-MP 0.3c)
4. Руки и чуть мозгов =) Кучерявые руки не подходят!)))

1 шаг (Запись файла движений бота)


Для начала настроим сервер и подберём оптимальный мод для него. Я взял простой мод 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 , запись остановится.



Все, мы закончили запись движений нашего бота в транспорте, можете выходить из игры и выключать сервер.

2 шаг (Подключение записанного файла)


Мы с вами уже записали файл движений бота. А где же он? - спросите вы. А я отвечу, - В папочке "scriptfiles" в директории вашей игры (если же ваш сервер установлен в эту директорию). Проверьте, он должен быть под расширением .rec , т.е. если вы вводили, когда начинали запись, имя mynpc то файл будет mynpc.rec .



Это ключевой файл бота, без него никуда.

Теперь вам нужно вырезать этот файл, зайти в папку "npcmodes" затем в "recordings" и вставить туда файл.



Ну а теперь начинается самое тяжелое для многих людей, но я постараюсь объяснить все доходчиво.

Откройте Pawno, создайте там новый документ (File >> New), нажмите Ctrl+A (т.е. выделить все) и затем Delete (Удалить). Сделали? Хорошо... Теперь вставьте туда этот исходный код:

Code
#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


Потом измените в строке "#define RECORDING "mynpc"" , "mynpc" - на имя файла движений вашего бота. В меня он называется "mynpc". Остальные строки вам пока не нужны, я их опишу в следующих уроках.

Теперь нам нужно сохранить этот файл (File >> Save as) в папке npcmodes под любым именем. Я сохранил под именем "younpc".



Файл сохранится с расширением .pwn , но нам он нужен в расширении .amx т.е. уже скомпилировам. По-этому нажимаем на синий трикутник в pawno и файл скомпилируется.



Все, первый скрипт готов. Но остался еще один, который мы потом подключим к серверу. Так что не торопитесь закрывать pawno). Опять же создаем новый документ (File >> New) все там удаляем и сейчас будем вставлять несколько исходных кодов по очереди и объяснять их. Сначала вставляем эти три строчки:

Code
#include <a_samp>

#define FILTERSCRIPT

#if defined FILTERSCRIPT


Затем вставляем этой код, которым мы присоединим нашего бота к скрипту:

Code
new BotCar;

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" - ид транспорта и координаты автомобиля. Не важно какие координаты вы укажете, все равно транспорт будет автоматически перемещен к боту.

Такс, с этим мы разобрались, теперь вставляем еще один код:

Code
public OnFilterScriptExit()
{
    return 1;
}

#else
#endif


Сразу после этого кода вставляем вот этот, которым мы посадим нашего бота в транспорт созданый ранее:

Code
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;
}


Строкой "if(!strcmp(npcname, "You_NPC", true));" мы проверяем есть ли в нашем скрипте бот из именем "You_NPC" .
Если такой бот есть, то этой строкой PutPlayerInVehicle(playerid, BotCar, 0);" мы сажаем его в создый для него транспорт, который является переменной "BotCar" .

В итоге у вас должен получиться вот примерно такой скрипт:

Code
#include <a_samp>

#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
Эксклюзивно для: www.SAMP-TEAM.com

© BombArDier Копирование запрещено!


Не бойся когда ты один, бойся когда ты ноль.
 
KILLER_PROДата: Вторник, 22.11.2011, 23:16 | Сообщение # 2
.::Offline::.
Новичок
Группа: Пользователь
Сообщений: 2
[ 0 ]
Награды: 0

Статус отсутствует
Помогло!!!Норм!!!
 
AlexKOSSДата: Воскресенье, 08.01.2012, 04:03 | Сообщение # 3
.::Offline::.
Новичок
Группа: Пользователь
Сообщений: 4
[ 3 ]
Награды: 0

Статус отсутствует
cool это гениально cool
появилась как раз гениальная идея записать хорошего дрифтера happy
но вот вопрос а как записывались боты для гонок в моде City Life 2.0. траектория движения то понятно а чекпоинты и тд ? smile
 
[S]ilverbac[k]Дата: Воскресенье, 08.01.2012, 12:43 | Сообщение # 4
.::Offline::.
Завсегдатый
Группа: Модератор
Сообщений: 424
[ 33 ]
Награды: 6

٩(̾●̮̮̃̾•̃̾)۶
а зачем тебе чекпоинты если бот их всеравно пройдет


----
[MAP][0.3e]SF Houses 40%
 
AlexKOSSДата: Вторник, 10.01.2012, 03:06 | Сообщение # 5
.::Offline::.
Новичок
Группа: Пользователь
Сообщений: 4
[ 3 ]
Награды: 0

Статус отсутствует
cool а вот еще интересно если в гонке несколько ботов то каждый записывался по отдельности? или можно чтоб несколько РКОН админов одновременно производили запись? smile
P.S. очень хорошая нужная тема smile знаю пару хороших дрифтеров и появилась идея записать дрифт ботов чтоб так сказать остальные учились у них )))
 
[S]ilverbac[k]Дата: Вторник, 10.01.2012, 15:22 | Сообщение # 6
.::Offline::.
Завсегдатый
Группа: Модератор
Сообщений: 424
[ 33 ]
Награды: 6

٩(̾●̮̮̃̾•̃̾)۶
чесно говоря, про несколько ркон-админов я даже не додумывался но попробывать стоит


----
[MAP][0.3e]SF Houses 40%
 
ZHENYA7261Дата: Суббота, 21.01.2012, 18:19 | Сообщение # 7
.::Offline::.
Новичок
Группа: Пользователь
Сообщений: 1
[ 0 ]
Награды: 0

Статус отсутствует
Захожу на сервер и сразу два варнинга, вот скрин
http://s61.radikal.ru/i171/1201/a9/b2e2ed8de50e.jpg
 
Jackson^HornetДата: Четверг, 05.04.2012, 17:02 | Сообщение # 8
.::Offline::.
Бандит
Группа: Забаненный
Сообщений: 16
[ -2 ]
Награды: 0

Статус отсутствует
Спс помогло реально
 
Форум | www.SAMP-TEAM.com » Wiki SA-MP » NPC » Урок по созданию NPC в транспорте
Страница 1 из 11
Поиск:


Статистика Форума
Последние обновленные темы Самые популярные темы Лучшие пользователи Новые пользователи
Sa-mp 0.3e RC1- RC7-2 (9)
Напугалсо!1111 (5)
[FS]Hit System (6)
[MAP]Автошкола СФ (2)
[MAP]Остров LV (3)
[MAP]LS House (5)
[MAP]Замок (6)
Кто ваш любимый персонаж с GTA SA? (20)
...:::[RP]Silence:::... [RUS] (0.3e) (2)
[GM] The Godfather (7)
Досчитаем до 500 (99)
Предложения по сайту/форуму (78)
Опять взломали... (52)
Игра в города (45)
Имена (45)
Качалка (37)
Восстановление сайта (34)
Набор в команду сайта (32)
Скриптеры,Рекламщики,Спонсоры (31)
Кто выше? (29)
[S]ilverbac[k]424
ZioHik375
Dima_Tkach199
valych171
y4eHuK152
TROJAN126
26_RUSSS85
Leo^82
Seva00882
A1ex73
Nassassins14:22
-KissFM-[Like]21:37
Spire20:19
Verrifical17:06
Синяк13:52
Haidar_Tautenov23:55
robi21:07
ZVARKING20:05
foreva12119:16
Pushka19:12
Copyright www.SAMP-TEAM.com (c) 2009-2012
Правила использования материалов сайта

При копировании материалов из нашего сайта
ссылка на www.SAMP-TEAM.com обязательна!
Нарушители правил будут строго наказаны!

Хостинг от uCoz  
 
Для корректного просмотра мы рекомендуем Вам использовать браузер Opera.
Стильное нижнее белье из Италии: купить постельное белье. Элитное постельное белье..