Доброго времени суток. Давно ещё делал ботов на СарСерв, вот решил выложить инструкцию.
[list=1]

  • [*]Файлы npc_record.pwn и npc_record.amx из архива копируем в папку filterscripts, а инклюд a_npc.inc в /include (папка с компилятором).

  • [*]Далее открываем server.cfg и в строке filterscripts прописываем npc_record, также изменяем maxnpc на количество ботов на сервере.

  • [*]Затем мы открываем игровой мод через компилятор и ко всем инклюдам добавляем #include и компилируем мод.

  • [*]Запускаем сервер.

  • [*]Заходим на него и логинимся как rCon-администратор (подробнее о системе rCon [url=/viewtopic.php?f=21&t=105]здесь[/url])

  • [*]Садимся в тачку покруче и начинаем запись через кмду /vrecord [имя бота] (имя только английскими буквами)

  • [*]Гоняем по городу любым маршрутом.

  • [*]Закончив, желательно вернуться в место начало записи, иначе бот после конца исполнения сценария сделает телепорт в начало, вводим кмду для остановки записи: /srecord

  • [*]Уходим с сервера

  • [*]Отключаем сервер

  • [*]Заходим в scriptfiles, там видим файл [имя бота].rec. Копируем файл в папку /npcmodes/recordings (если нет — создайте).

  • [*]Запускаем наш любимый Pawno и создаём новый файл.

  • [*]Копируем код отсюда и вставляем в компилятор:
    [code]#define RECORDING «[имя бота]»
    #define RECORDING_TYPE [тип бота]
    #include

    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[/code]

    [list]

  • [*][имя бота] — имя вашего бота (только английские буквы)

  • [*][тип бота] — тип вашего бота (1 — ездит на крутой тачке, 2 — бегает пешочком)
  • [/list]
  • [*]Сохраняем в папку npcmodes и компилируем.

  • [*]Открываем геймод и ко всем new:
    [code]new TestNPC;[/code]
    [list]
  • [*]TestNPC — имя тачки для бота
  • [/list]
  • [*]Топаем в [color=#0000FF]public[/color] OnGameModeInit и пихаем:
    [code]ConnectNPC(«имя бота1″,»имя бота2»);
    TestNPC = CreateVehicle(400,0.0,0.0,5.0,0.0,3,3,5000);[/code]

    [list]
  • [*]имя бота1 — имя вашего бота

  • [*]имя бота2 — имя вашей записи из scriptfiles

  • [*] TestNPC — тачка бота

  • [*]400 — ид тачки

  • [*]3,3 — цвета

  • [*] 5000 — время для респауна, [b]НЕ[/b] редактировать

  • [*] 0.0,0.0,5.0,0.0 — корды, [b]НЕ[/b] редактировать
  • [/list]
  • [*]Шлёпаем в [color=#0000FF]public[/color] OnPlayerSpawn и вставляем:
    [code]if(IsPlayerNPC(playerid))
    {
    new npcname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,npcname,sizeof(npcname));
    if(!strcmp(npcname,»имя бота1″,true))
    {
    PutPlayerInVehicle(playerid,TestNPC,0);
    }
    return 1;
    }[/code]

    [list]
  • [*]имя бота1 — См. в шаге выше
  • [/list]
  • [*] [i][b]Если на серваке есть рега[/b][/i], вставляем код в диалоги реги и логина:
    [code]if(IsPlayerNPC(playerid)) return 1;[/code]
  • [/list]

    От danilasar

    Это я

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *