Понедельник, 20.05.2024, 18:24 Приветствую Вас, Гость
Главная | Игры он-лайн | Samp-Rus |
Статистика Форума
Последние темы Читаемые темы Лучшие пользователи Новые пользователи
  • СЕЙЧАС Фригейм.рф новый сервер Lineage2 x50HL (0)
  • СЕГОДНЯ Фригейм открытие! Lineage2 3GAME.RU (0)
  • Фригейм - 11 января, Lineage2 (0)
  • Хотите БЕСПЛАТНО почувствовать ЦИ!? (0)
  • Вопросы (34)
  • Флудилия (30)
  • Time 2 KiLL (28)
  • Ассоциации (19)
  • SNIKERS
  • MoHoJluT
  • skivchik
  • Vash
  • SlaM
  • HALK
  • Drag
  • eXperT
  • Manki
  • Current_Value
  • picupsuk
  • bioware73
  • hautalaI448
  • ulreyU08y
  • Chuangzhi
  • MiX
  • Kryk
  • Позитивчик
  • Lyudok1139
  • KENWOOD
  • FullHouse Role Play
    |
    [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
    • Страница 1 из 1
    • 1
    FullHouse Role Play Server » Школа Pawno,MTA Race » Школа Pawno » Создаем нового NPC (for 0.3)
    Создаем нового NPC (for 0.3)
    SNIKERSДата: Четверг, 01.10.2009, 23:16 | Сообщение # 1
    Создатель сайта
    Группа: Администраторы
    Сообщений: 168
    Награды: 14
    - « 9 » +
    Статус: :-(
    Урок посвящен созданию нового npc с нуля.

    Запись файла путей

    Для начала нам необходимо записать файл путей для нашего npc. Для этого заходим на сервер, логинимся как ркон админ. Загружем фильтрскрипт npc_record ("/rcon loadfs npc_record" ) (если он не был загружен до этого). Скрипт npc_record содержит три основные команды:
    /vrecord <filename> - Начинает запись путей транспорта в указанный файл
    /ofrecord <filename> - Начинает запись путей пешехода в указанный файл
    /stoprecord - Останавливает запись файла

    В этом уроке мы будем делать NPC управляющего транспортом. Поэтому садимся в тачку и пишем /vrecord mynpc
    Далее катаемся по пути где будет ездить наш будущий npc
    Когда закончим останавливаем запись файла /stoprecord

    Выходим из игры и идем в папку scriptfiles, там нас должен ожидать файл mynpc.rec. Перемещаем его в папку /npcmodes/recordings/
    Все запись путей для NPC закончена!

    Управление NPC

    Как вы наверно заметили в папке npcmodes много маленьких pwn скриптов. Они управляют поведением NPC. Теперь создадим скрипт который будет управлять нашим NPC. Скрипт будет следующего содержания:

    Quote
    #define RECORDING "mynpc" //Это имя файла путей, который мы только что записали
    #define RECORDING_TYPE 1//1 для водителя 2 для пешехода  
    #include <a_npc>  
    main(){}  
    public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);  
    public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);  
    publicOnNPCExitVehicle() StopRecordingPlayback();

    Рассмотрим каждую строчку подробнее:

    Quote
    #define RECORDING "mynpc" //Это имя файла путей, который мы только что записали

    Как говорит комментарий - это имя файла путей который мы записали. Имя указывается без расширения!

    Quote
    #define RECORDING_TYPE 1//1 для водителя 2 для пешехода

    Это тип записи. Для NPC водителя указываем 1, для NPC пешехода 2

    Quote
    #include <a_npc>

    Подключаем инклуд содержащий функции для работы с NPC

    Quote
    public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);

    Благодаря этой строчке, когда npc проедет весь свой путь, прописанный в его файле, воспроизведение начнется сначало.

    Quote
    public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);

    Эта строка начинает воспроизведение файла пути когда NPC садиться в транспорт

    Quote
    publicOnNPCExitVehicle() StopRecordingPlayback();

    Эта строка останавливает воспроизведение, если по какой то причине NPC покинет транспорт.

    Как видите все просто! Теперь компилируем скрипт mynpc.pwn и отправляем его в папку /npcmodes

    Присоединение NPC
    Итак у нас уже есть готовый файл путей и скрипт управляющий NPC. Теперь нам нужно загрузить NPC в моде или фильтрскрипте. Для этих целей существует функция ConnectNPC
    Синтаксис:

    Quote
    ConnectNPC("Dave","mynpc");

    где, Dave - имя NPC, благодаря которому можно различать между собой разных NPC и заставлять их выполнять различные действия.
    mynpc - имя скрипта (без расширения), управляющего NPC
    Итак, используя эту функцию загрузим NPC в моде:

    Quote
    public OnGameModeInit()  
    {  
    print("my gamemode");  
    ConnectNPC("MyFirstNPC","mynpc");  
    return 1;  
    }

    или в фс

    Quote
    public OnFilterScriptInit()  
    {  
    print("my filterscript");  
    ConnectNPC("MyFirstNPC","mynpc");  
    return 1;  
    }

    Теперь когда у нас есть маршрут по которому будет кататься NPC, нужно создать ему транспорт на котором он будет кататься:

    Quote
    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, когда начнется воспроизведение файла пути.

    Еще одна вещь, которую нужно сделать - это посадить NPC в транспорт. Это можно реализовать так:

    Quote
    public OnPlayerSpawn(playerid)  
    {  
    if(IsPlayerNPC(playerid))//Если игрок - NPC.  
    {  
    new npcname[MAX_PLAYER_NAME];  
    GetPlayerName(playerid, npcname, sizeof(npcname));//Получаем имя NPC
    if(!strcmp(npcname, "MyFirstNPC", true)) //Проверяем если имя NPC - MyFirstNPC
    {  
    PutPlayerInVehicle(playerid, MyFirstNPCVehicle, 0); //Сажаем NPC в созданный для него транспорт
    }  
    return 1;  
    }  
    //Остальной код для обычных игроков  
    return 1;  
    }

    Большое спасибо за внимание! Вылаживайте что получиться yes4

     
    Current_ValueДата: Пятница, 02.10.2009, 10:08 | Сообщение # 2
    Developer
    Группа: Администраторы
    Сообщений: 7
    Награды: 1
    - « 1 » +
    Статус: :-(
    Ну я думаю для масовки при снятии фильмов пойдет такая функция.. ну или для "фальшивого онлайна" ))))) хотя щас итак максимум 16 человек на 0.3 поэтому эта функция пока неимеет смысла

    Developer
     
    SNIKERSДата: Пятница, 02.10.2009, 11:53 | Сообщение # 3
    Создатель сайта
    Группа: Администраторы
    Сообщений: 168
    Награды: 14
    - « 9 » +
    Статус: :-(
    Ну это вообще для скриптеров,чтобы они подогнали моды и скрипты под 0.3 вот пока онлайн максимум и 16...Хотябы было 50!
     
    SNIKERSДата: Пятница, 02.10.2009, 14:20 | Сообщение # 4
    Создатель сайта
    Группа: Администраторы
    Сообщений: 168
    Награды: 14
    - « 9 » +
    Статус: :-(
    Хехехе с сегоднешнего дня мона 100 чел уже dirol
     
    Current_ValueДата: Пятница, 02.10.2009, 14:42 | Сообщение # 5
    Developer
    Группа: Администраторы
    Сообщений: 7
    Награды: 1
    - « 1 » +
    Статус: :-(
    во все делаем нпц xD

    Developer
     
    FullHouse Role Play Server » Школа Pawno,MTA Race » Школа Pawno » Создаем нового NPC (for 0.3)
    • Страница 1 из 1
    • 1
    Поиск:


    FullHouse Role Play