[урок] Создание бота

Уроки по созданию сервера и готовые решения
Ответить
Аватара пользователя
danilasar
Сообщения: 202
Зарегистрирован: 17 июл 2018, 09:55
Откуда: Саратов, Россия
Контактная информация:

[урок] Создание бота

Сообщение danilasar » 18 июл 2018, 13:08

Доброго времени суток. Давно ещё делал ботов на СарСерв, вот решил выложить инструкцию.
  1. Файлы npc_record.pwn и npc_record.amx из архива копируем в папку filterscripts, а инклюд a_npc.inc в /include (папка с компилятором).
  2. Далее открываем server.cfg и в строке filterscripts прописываем npc_record, также изменяем maxnpc на количество ботов на сервере.
  3. Затем мы открываем игровой мод через компилятор и ко всем инклюдам добавляем #include <a_npc> и компилируем мод.
  4. Запускаем сервер.
  5. Заходим на него и логинимся как rCon-администратор (подробнее о системе rCon здесь)
  6. Садимся в тачку покруче и начинаем запись через кмду /vrecord [имя бота] (имя только английскими буквами)
  7. Гоняем по городу любым маршрутом.
  8. Закончив, желательно вернуться в место начало записи, иначе бот после конца исполнения сценария сделает телепорт в начало, вводим кмду для остановки записи: /srecord
  9. Уходим с сервера
  10. Отключаем сервер
  11. Заходим в scriptfiles, там видим файл [имя бота].rec. Копируем файл в папку /npcmodes/recordings (если нет - создайте).
  12. Запускаем наш любимый Pawno и создаём новый файл.
  13. Копируем код отсюда и вставляем в компилятор:

    Код: Выделить всё

    #define RECORDING "[имя бота]"
    #define RECORDING_TYPE [тип бота]
    #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
    • [имя бота] - имя вашего бота (только английские буквы)
    • [тип бота] - тип вашего бота (1 - ездит на крутой тачке, 2 - бегает пешочком)
  14. Сохраняем в папку npcmodes и компилируем.
  15. Открываем геймод и ко всем new:

    Код: Выделить всё

    new TestNPC;
    • TestNPC - имя тачки для бота
  16. Топаем в public OnGameModeInit и пихаем:

    Код: Выделить всё

    ConnectNPC("имя бота1","имя бота2");
    TestNPC = CreateVehicle(400,0.0,0.0,5.0,0.0,3,3,5000);
    • имя бота1 - имя вашего бота
    • имя бота2 - имя вашей записи из scriptfiles
    • TestNPC - тачка бота
    • 400 - ид тачки
    • 3,3 - цвета
    • 5000 - время для респауна, НЕ редактировать
    • 0.0,0.0,5.0,0.0 - корды, НЕ редактировать
  17. Шлёпаем в public OnPlayerSpawn и вставляем:

    Код: Выделить всё

    if(IsPlayerNPC(playerid))
    {
        new npcname[MAX_PLAYER_NAME];
        GetPlayerName(playerid,npcname,sizeof(npcname));
        if(!strcmp(npcname,"имя бота1",true))
        {
            PutPlayerInVehicle(playerid,TestNPC,0);
        }
        return 1;
    }
    • имя бота1 - См. в шаге выше
  18. Если на серваке есть рега, вставляем код в диалоги реги и логина:

    Код: Выделить всё

    if(IsPlayerNPC(playerid)) return 1;

БПАNовец
Сообщения: 13
Зарегистрирован: 20 июл 2018, 12:36

[урок] Создание бота

Сообщение БПАNовец » 24 июл 2018, 19:39

danilasar, че такое ркон?

Аватара пользователя
danilasar
Сообщения: 202
Зарегистрирован: 17 июл 2018, 09:55
Откуда: Саратов, Россия
Контактная информация:

[урок] Создание бота

Сообщение danilasar » 24 июл 2018, 19:39

rCon - предустановленная система администрирования игрового сервера в MTA, SAMP и CRMP серверах.

БПАNовец
Сообщения: 13
Зарегистрирован: 20 июл 2018, 12:36

[урок] Создание бота

Сообщение БПАNовец » 24 июл 2018, 19:39

А если подробнее?

Аватара пользователя
danilasar
Сообщения: 202
Зарегистрирован: 17 июл 2018, 09:55
Откуда: Саратов, Россия
Контактная информация:

[урок] Создание бота

Сообщение danilasar » 24 июл 2018, 19:39

Ок, напишу урок для крмп.

Ответить