FCNPC - Сборник уроков

В теме 7 сообщений

MuhammadPawn
Великий Гуру

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

 

Урок 1. Создания NPC и его передвижение

Урок 1.1. Спавним NPC после смерти

Урок 2. Учим NPC стрелять из огнестрельного оружия

 

Также пишите в коменты какие вы хотите видеть уроки по FCNPC 

 

Отредактировано пользователем MuhammadPawn

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
MuhammadPawn
Великий Гуру

FCNPC - Урок 1. Создания NPC и его передвижение

 

Всем привет 
В этом уроке я вас научу:

  1. Создания NPC и подключения его к серверу
  2. Передвежение NPC по кординатам
  3. Убийство NPC с огнестрельного оружия или рукопашкой

 

Приступим:
В начало мода добавим строку 

#include <FCNPC>

если вы собрали писать FS то в самое начало добавте 

#inclide <a_samp>
#include <FCNPC>
#if defined MOVE_SPEED_SPRINT
#undef MOVE_SPEED_SPRINT
        #define MOVE_SPEED_SPRINT (0.896884)
#endif

#if defined MOVE_SPEED_RUN
#undef MOVE_SPEED_RUN
        #define MOVE_SPEED_RUN (0.53444)
#endif

#if defined MOVE_SPEED_WALK
#undef MOVE_SPEED_WALK
        #define MOVE_SPEED_WALK (0.1532086)
#endif

static MyFirstBot; //Создаём переменную в которую будем записывать id NPC 

Далее если вы пишите сразу в мод то в OnGameModeInit если в FS то в OnFilterScriptInit добавте

    MyFirstBot = FCNPC_Create("Bot_Name"); //FCNPC_Create - подключаем бота к серверу с ником "Bot_Name" и записываем его id в переменную MyFirstBot
    FCNPC_Spawn(MyFirstBot, 70, -199.3511,248.3464,12.0772);//FCNPC_Spawn Спавним нашего бота которого токо что создали MyFirstBot (70 - это id скина, -199.3511,248.3464,12.0772 кординаты где будем спавнить нашего бота) 

Всё мы создали нашего NPC и заспавнили. Теперь он будет просто стоять...
Давайте его при спавне заставим ходить по мосту (мост около фермы)
Создадим массив для бота с нашеми точками куда он будет ходить

new Float:FCNPC_GoT[][3] =
{
    {-205.4210,252.1659,12.2813},
    {-192.7112,299.2160,12.2813},
    {-179.6456,296.6065,12.2813},
    {-191.8794,249.7988,12.2813}
};
static col; //для подчёта точек (потом в коде увидете где используется)

чтобы добавить ещё 1 точку с коридантами куда будет ходить бот то 
к последней точке ставим , и создаём новую {кориднаты x,y,z}
Теперь давайте сделаем чтобы после спавна NPC бегал по точкам 
за спавн NPC отвечает FCNPC_OnSpawn создадим его

public FCNPC_OnSpawn(npcid)
{ 
    FCNPC_GoTo(MyFirstBot, FCNPC_GoT[col][0], FCNPC_GoT[col][1], FCNPC_GoT[col][2], MOVE_TYPE_RUN, MOVE_SPEED_RUN, true); //Застовляем нашего бота MyFirstBot бежать по точкам из FCNPC_GoT , MOVE_TYPE_RUN стиль как ходит бот MOVE_SPEED_RUN скорость передвижения которую мы указали выше
    col ++;// Присваиваем переменной +1 для кординат с масива которые пробижал NPC
    return 1;
}

Всё наш игрок бежит на точку и остановится на ней теперь давайте сделаем чтобы он двигался дальше 
за это отвечает public FCNPC_OnReachDestination (вызывается когда игрок добежал до позиции указанной в FCNPC_GoTo)
создаём его

public FCNPC_OnReachDestination(npcid)
{
    if(col == sizeof(FCNPC_GoT)) col = 0;//если col == строкам из FCNPC_GoT то сбрасываем на 0 чтобы NPC бежал по кругу
    FCNPC_GoTo(MyFirstBot, FCNPC_GoT[col][0], FCNPC_GoT[col][1], FCNPC_GoT[col][2], MOVE_TYPE_RUN, MOVE_SPEED_RUN, true);//Уже писал что это
    col ++; //Уже писал что это
    return 1;
}

Вот и всё урок окончен 
Автор урока: MuhamadPawn( Мой старый ник Island (Могу подтвердить) )
Копирование данной статьи без разрешение автора запрешено!
Мы создали нашего NPC который будет бегать по заданным кординатам 
Если у вас появились вопросы или ошибки задовайте в теме отвечу 

Отредактировано пользователем MuhammadPawn

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
MuhammadPawn
Великий Гуру

FCNPC - Урок 1.1. Спавним NPC после смерти

 

Всем привет 
Вот и вышел урок 1.1, ну как сказать урок дополнение к 1 уроку (где я забыл про спавн бота после смерти)
В этом уроке не чего особенного не будет токо спавн NPC после смерти 
Ну чтож приступим:
Для начало довайте создадим паблик который вызывается когда умирает NPC тоесть наш (MyFirstBot) мы создовали его во 1 уроке (если кто не читал то прошу читайте уроки с самого начало и наче будет не чего понятно)
Паблик который отвечает эа это FCNPC_OnDeath, создаём его

public FCNPC_OnDeath(npcid, killerid, weaponid)
{
    //npcid - какой NPC умер
    //killerid - Кто убил NPC 
    //weaponid - с коко-го оружия убили NPC
    FCNPC_Spawn(MyFirstBot, 70, -199.3511,248.3464,12.0772);//если вызвался паблик FCNPC_OnDeath то мы спавним нашего бота (70 - Скин бота, -199.3511,248.3464,12.0772 - кординаты где будет спавнится (это опять ж тот мост))
    return 1;
}

Всё теперь если наш NPC умер он будет спавнится и выполнять действия которые мы указывали в FCNPC_OnSpawn (Урок 1)
Вот и всё 

Автор урока: MuhamadPawn
Копирование данной статьи без разрешение автора запрешено!

Отредактировано пользователем MuhammadPawn

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
MuhammadPawn
Великий Гуру

 

FCNPC - Урок 2. Учим NPC стрелять из огнестрельного оружия

 

Всем привет это уже 2 урок по FCNPC))) И в этом уроке я вас научу:

  1. Давать оружие NPC
  2. Учить стрелять нашего NPC

Это давольно легко и запоминается сразу 
Для начало давайте выдадим нашему NPC оружие в FCNPC_OnSpawn засуним строчку 

FCNPC_SetWeapon(MyFirstBot, 31);//Выдаём нашему NPC оружие с идом 31 - M4 

Далее в секундный таймер или в OnPlayerUpdate проверки

static Float:X,Float:Y,Float:Z,weapon; //Переменная для кординат нашего NPC а также проверка стреляет или нет
FCNPC_GetPosition(MyFirstBot,X, Y, Z); //Узнаём кординаты нашего NPC (MyFirstBot) по осям X, Y, Z
if(IsPlayerInRangeOfPoint(playerid, 10.0, X, Y, Z)) //Если мы в 10 радиусах от кординат нашего NPC то выполняем следующие
{ 
    if(FCNPC_GetAmmo(MyFirstBot) == 0)//FCNPC_GetAmmo узнаёт скока патронов у NPC, если у нашего NPC 0 патронов то...
    {
        FCNPC_StopAim(MyFirstBot); //FCNPC_StopAim отключаем что-бы наш NPC больше не целился в игрока
        FCNPC_SetAmmo(MyFirstBot,500); //FCNPC_SetAmmo даём нашему NPC 500 патронов
    }
    FCNPC_Stop(MyFirstBot); //Останавливаем нашего NPC что-бы он больше не бегал
    static Float: x, Float: y, Float: z; //Переменная для кординат нашего игрока
    GetPlayerPos(playerid, x, y, z); //Узнаём кординаты игрока по оси x, y, z
    FCNPC_AimAt(MyFirstBot, x, y, z, true); //FCNPC_AimAt заставляем нашего NPC стрелять в игрока по кординатам x, y, z
    weapon = 1;//Ставим значение 1 что наш NPC стреляет
} 
else//если игрока нет в зоне видимости бота (10 метров) то...
{
    if(weapon == 1)//если наш NPC стреля по игроку то
    {
        FCNPC_StopAim(MyFirstBot);// Отключаем что-бы наш NPC больше не целился
        FCNPC_GoTo(MyFirstBot, FCNPC_GoT[col][0], FCNPC_GoT[col][1], FCNPC_GoT[col][2], MOVE_TYPE_RUN, MOVE_SPEED_RUN, true),col ++; //Рассказывал что это такое во 1 уроке
        weapon = 0;//Обновляем нашу переменную на 0 чтобы небыло ложных срабатываний (как у нас эти ж проверки в секундном таймере и если не поставить проверку то NPC будет кружится как будут задоватся новые корды каждую сек)
    }
}

Вот и всё 
Автор урока: MuhamadPawn
Копирование данной статьи без разрешение автора запрешено!
Если что-то не понятно пишите в теме, помогу чем смогу
Также вы можете скачать уже готовый FS и редактировать под себя: FCNPC_FS.pwn

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Бот
Великий Гуру

АВТОМАТИЧЕСКИ СФОРМИРОВАННОЕ СООБЩЕНИЕ:

Данная тема была перемещена модерацией или администрацией портала PAWNO-RUS.RU! 

Перемещена из: "Скриптинг PAWN > Уроки и готовые решения"

Перемещена в: "Прочее > Архив"

 

С уважением, ваш Бот! 

Если вы НЕ согласны с переносом данной темы в раздел "Прочее > Архив", пожалуйтесь на это сообщение в жалобе указав причины вашего недовольства. Спасибо. 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Super_Gost'
      От Super_Gost'
      Приветствую. Для разработки собственного проекта требуется специалист, способный подготовить стабильную клиентскую базу на движке GTA San Andreas для работы с картой CRMP.

      Техническое задание:

      Задача: Интегрировать файлы карты CR в клиент так, чтобы обеспечить стабильную работу в SA-MP 0.3.7 / open.mp.

      Лимиты: Настроить Fastman92 Limit Adjuster. Необходимо грамотно расширить лимиты: IDE записей и так далее.

      Синхронизация с сервером: Подготовить список ID используемых объектов для корректного переноса в серверную часть на ядро Open MP.

      Требования к результату:

      Клиент должен запускаться без крашей и работать без прочих багов.

      На выходе нужно получить готовую сборку (архив), которая станет "фундаментом" для дальнейшей разработки мода и лаунчера.

      Бюджет обсуждаем. Ищу человека с опытом в CRMP-моддинге, который разбирается в этом. Сама работа является единоразовой/не на постоянной основе.

      Данные для связи: Tg: @Ichigo22149
    • Dkskssjksk
      От Dkskssjksk
      🎮 Aeron RP — твой новый мир приключений!
       
      Долгожданный релиз уже близко! Совсем скоро ты сможешь окунуться в атмосферу настоящей ролевой игры на проекте Aeron RP.
       
      📅 Даты выхода:
       
      ПК: 15 мая.
      Android: 17 июня.
      🔥 Что тебя ждёт?
       
      Уникальная атмосфера и интересные задания.
      Дружное сообщество и активная администрация.
      Множество возможностей для развития своего персонажа.
      Не упусти шанс стать частью чего-то большего! Присоединяйся к нам уже сейчас, чтобы быть в курсе всех новостей и первыми узнать о старте.
       
      📢 Жми на ссылку и вступай в нашу группу:https://vk.me/join/TbRXlGjoMv4ymO3jogFudJOTVKZbmFfNYLc=
       
      Aeron RP — твоя история начинается здесь!
    • sinvays
      От sinvays
      PayDay RolePlay (Бонусный мод)
      Скачать файл Версия MySQL: R39-6
      Командный процессор: Pawn.CMD
      Объём основного файла: ~36к строк
      Античит: Nex-AC

      Подключение к базе данных:
      • Файл: new.pwn

      Описание:
      Работал когда-то с Ильёй Демидовым. Опыт был негативный, дальше сотрудничество смысла не имело. Позже к проекту подключился Костя Царик, и ситуация только ухудшилась. Сам мод изначально разрабатывался другим разработчиком, Сергей Щеблыкин, после него подключился я. В какой-то момент возникли проблемы по части оплаты которую обязан был выплатить Илья Демидов, после этого я забрал мод и прекратил работу. Недавно также была заблокирована группа PayDay из-за конфликтной ситуации с покупкой игрового проекта. Сам мод на текущий момент не представляет особой ценности как готовый продукт, по крайней мере для меня. Внутри много старых решений и костылей, доставшихся ещё с ранних версий PayDay старым разработчиком. С моей стороны были сделаны базовые вещи - система выдачи команд, префиксы, а также исправлены критические баги, из-за которых мод падал. По нагрузке может держать около 200 игроков, но точных гарантий нет, там было накручено не больше 200+ ботов. На этом от моего имени PayDay закрыт.
      Добавил sinvays Добавлено 19.04.2026 Категория Моды Автор sinvays  
    • sinvays
      От sinvays
      Версия MySQL: R39-6
      Командный процессор: Pawn.CMD
      Объём основного файла: ~36к строк
      Античит: Nex-AC

      Подключение к базе данных:
      • Файл: new.pwn

      Описание:
      Работал когда-то с Ильёй Демидовым. Опыт был негативный, дальше сотрудничество смысла не имело. Позже к проекту подключился Костя Царик, и ситуация только ухудшилась. Сам мод изначально разрабатывался другим разработчиком, Сергей Щеблыкин, после него подключился я. В какой-то момент возникли проблемы по части оплаты которую обязан был выплатить Илья Демидов, после этого я забрал мод и прекратил работу. Недавно также была заблокирована группа PayDay из-за конфликтной ситуации с покупкой игрового проекта. Сам мод на текущий момент не представляет особой ценности как готовый продукт, по крайней мере для меня. Внутри много старых решений и костылей, доставшихся ещё с ранних версий PayDay старым разработчиком. С моей стороны были сделаны базовые вещи - система выдачи команд, префиксы, а также исправлены критические баги, из-за которых мод падал. По нагрузке может держать около 200 игроков, но точных гарантий нет, там было накручено не больше 200+ ботов. На этом от моего имени PayDay закрыт.
    • sinvays
      От sinvays
      Peace RolePlay (Бонусный мод)
      Скачать файл Версия MySQL: R41-3
      Командный процессор: Pawn.CMD
      Объём основного файла: ~62к строк
      Античит: rakcheat

      Подключение к базе данных:
      • Файл: modules/settings.inc

      Описание:
      Оригинальный мод Peace RolePlay, полученный давно Позняка. Слив выполнен из-за того, что новый владелец начал массово перепродавать данный мод и предоставлять к нему вирус. Также не исключается публикация оригинального Luxwen RolePlay по аналогичной причине.
      Добавил sinvays Добавлено 18.04.2026 Категория Моды Автор sinvays