РУКОВОДСТВО ПО ИСПОЛЬЗОВАНИЮ NPC в SAMP
ЧАСТЬ 1
Большинство серверов в наше время не использует NPC, в каком бы то ни было виде. Причин на это несколько:
- Серверы, использующие NPC, не могут быть 1000 слотными, точнее NPC там не работают;
- NPC занимают дополнительные слоты, а так же “отнимают” память сервера;
- “С людьми же интереснее играть”;
- Для создания “хороших” NPC нужно владеть минимальными знаниями об искусственном интеллекте.
Поверьте, все эти недостатки ничто по сравнению с возможностями, которые вы можете открыть. Хотели бы Вы иметь на своём сервере NPC-патрульных, NPC-поваров или официантов, таксистов, NPC-девушку, да что угодно – единственное ограничение – ваше воображение, и … возможности SAMP.
Если всё это вдохновило вас на создание NPC (хоть как-то), то смело читайте дальше.
Основные функции
В этом разделе мы рассмотрим основные функции плагина FCNPC, с помощью которого и будем создавать NPC. Рассмотрим основные функции и паблики, а так же сделаем выводы, плюс пара слов о личном опыте использования, итак, поехали!
FCNPC_SetUpdateRate(rate) – обновление какого-либо/каких-либо NPC, мы не будем использовать эту функцию, вместо неё используем таймеры, некоторые вещи будет нереально осуществить, используя эту функцию.
FCNPC_Create(name[]) – создание NPC. При создании NPC уникальным его идентификатор является имя, которое мы зададим, но об этом позже.
FCNPC_Destroy(npcid) – удаляет NPC. Думаю здесь всё понятно, данная функция должна обязательно в “ public OnFilterScriptExit()”.
FCNPC_Spawn(npcid, skinid, Float:X, Float:Y, Float:Z) – указываем место появления NPC в следующем формате: к какому NPC обращаемся, какой у него будет скин, координаты x,y,z.
FCNPC_Respawn(npcid) – перерождает NPC. Работает, когда вы убили NPC ( не удалять же его с сервера, поэтому используем данную функцию, но об этом позже).
FCNPC_IsSpawned(npcid) – выполняется если NPC заспавнен, лично я не использую подобные функции, они бесполезны ИМХО, а в большинстве случаев и не работают, плагин-то ещё 0.1 версия.
FCNPC_Kill(npcid) – убить NPC. Если NPC получают урон, то зачем нам эта функция спросите Вы? Отвечаю: функция полезнейшая, например, вы стреляете по NPC, сидящему на мотоцикле, что же происходит: его хп снижается до 0, но он так и продолжает сидеть ( не порядок), делаем проверку и выполняем эту функцию: теперь, когда у нашего NPC на мотоцикле 0 хп он умрет.
FCNPC_IsDead(npcid) – очередная ненужная функция выполняется, когда NPC умер.
FCNPC_SetPosition(npcid, Float:X, Float:Y, Float:Z) – задает позицию NPC, думаю сами уже догадались по какому принципу. Выполняется непосредственно, когда NPC уже заспавнен.
Читаем продолжение статьи: Продолжаем работать с NPC в GTA SAMP >>