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

Человек-редиска
Освоившийся

Добрый день, дорогой читатель! Сегодня мы попробуем научиться делать ботов для crmp, впринципе, это актуально и для samp. 

Начнем. 

Для начала скачайте все необходимые файлы. 

А именно: инклуд (a_npc), и скрипт записи маршрута бота (npc_record.pwn and npc_record.amx). 

 

Как установить скрипт: два файла  (npc_record.pwn and npc_record.amx) киньте в папку filterscripts, потом пропишите в server.cfg:


filterscripts npc_record

 

ЭТАП 1/3 : ЗАПИСЬ МАРШРУТА

 

 

Далее, садитесь в машину / или пешком начинайте записывать маршрут. 

В случае, если маршрут записывается пешком, используйте команду /precord, если в авто используйте команду /vrecord. 

После окончания маршрута вводите /screcord и запись движений остановится. 

Записанный файл находится по пути: scriptfiles/namebot.rec

 

ЭТАП 2/3 : СОЗДАНИЕ СКРИПТА-БОТА

 

 

Теперь файл namebot.rec (из scriptfiles) перемещаем в npcmodes/recordings.

Там будет лежать запись бота. 

Переходим в папку /npcmodes.

Создаем скрипт (файл .pwn) следующего содержания: 


#define RECORDING "NameNPC" //Имя вашего записанного файла из scriptfiles без расширения
#define RECORDING_TYPE 1 //1 - если путь записан на машине, 2 - пешком
#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

ВНИМАНИЕ! Название .pwn скрипта НЕ произвольное. Оно должно быть таким же, как и название записи (.rec файла). 

В данном скрипте настройте, согласно указаниям, а после скомпилируйте скрипт (F5).

 

ЭТАП 3/3 : НАСТРОЙКА NPC В МОДЕ

 

Ко всем глобальным переменным (new) в моде добавляем:
 


new VehicleNPC; // транспорт, в который будем садить NPC. Проигнорируйте, если запись пешком

Далее отправляемся в OnGameModeInit и добавляем следующий код:


ConnectNPC("имя бота (произовльное)","название файла из scriptfiles без расширения");
VehicleNPC = CreateVehicle(400,0.0,0.0,5.0,0.0,3,3,5000); // нулевые координаты изменять не нужно, транспорт сам телепортируется к нашему нпс, измените только модель транспорта (по желанию) и цвет транспорта (по желанию)

Далее идем в OnPlayerSpawn, вставляем следующий код (желательно в начало паблика):


if(IsPlayerNPC(playerid))
{
    new npcname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,npcname,sizeof(npcname));
    if(!strcmp(npcname,"имя указанное в ConnectNPC",true))
    {
        PutPlayerInVehicle(playerid,VehicleNPC,0); // сажаем NPC в машину
      	SetPlayerColor(playerid, 0xFFFFFF00); // делаем прозрачный цвет NPC
    }
    return 1;
}

Далее, добавляем это в паблики, которые нежелательны для применения к NPC. Например, если он ездит в машине, добавьте там, где тратится бензин. Обязательно добавьте при регистрации, чтобы она ему не мешала и п. Если у вас возникли трудности, пишите в тему, расскажем куда еще добавить:


if(IsPlayerNPC(playerid)) return true;

Ну и все, npc готов! ВНИМАНИЕ! Если бот подключается, и его, сразу кикает, значит он не может заспавниться в моде. В основном это античит. Рекомендуется и туда добавить проверку, указанную чуть выше.  Автор урока: @steve! Будут проблемы, пишите в тему - поможем. 

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


Ссылка на сообщение
Поделиться на другие сайты
MaJoR
Постоянный
В 18.02.2018 в 14:29, DEST сказал:

@Сергей Князев что именно не работает? С таким описанием ничем помочь не сможем. 

А где скачать нужные файлы?

 

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


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

@MaJoR в гугле  (а так всё есть в стандартном моде sa-mp)

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

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


Ссылка на сообщение
Поделиться на другие сайты
Андрей Лазарев
Активный
В 18.02.2018 в 15:29, DEST сказал:

@Сергей Князев что именно не работает? С таким описанием ничем помочь не сможем. 

Не работает в том смысле что все сделано как описано в уроке но бот так и не появляется

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


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

@Андрей Лазарев не появляться он может по целой куче причин. Одна из самых распространенных - бот не прошел через авторизацию, или его выкинуло античитом. Скидывайте логи. 

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


Ссылка на сообщение
Поделиться на другие сайты
Андрей Лазарев
Активный
8 минут назад, DEST сказал:

@Андрей Лазарев не появляться он может по целой куче причин. Одна из самых распространенных - бот не прошел через авторизацию, или его выкинуло античитом. Скидывайте логи. 

скинуть логи загрузки сервера?

SA-MP Dedicated Server
----------------------
v0.3e, (C)2005-2012 SA-MP Team

[16:16:20] weburl = "www.sa-mp.com"  (string)
[16:16:20] 
[16:16:20] Server Plugins
[16:16:20] --------------
[16:16:20]  Loading plugin: crashdetect
[16:16:21]   CrashDetect plugin 4.19.4
[16:16:21]   Loaded.
[16:16:21]  Loading plugin: mysql
[16:16:21]  >> plugin.mysql: R39-6 successfully loaded.
[16:16:21]   Loaded.
[16:16:21]  Loading plugin: sscanf
[16:16:21] 

[16:16:21]  ===============================

[16:16:21]       sscanf plugin loaded.     

[16:16:21]          Version:  2.8.3        

[16:16:21]   (c) 2018 Alex "Y_Less" Cole  

[16:16:21]  ===============================

[16:16:21]   Loaded.
[16:16:21]  Loading plugin: streamer
[16:16:22] 

*** Streamer Plugin v2.9.4 by Incognito loaded ***

[16:16:22]   Loaded.
[16:16:22]  Loading plugin: pawncmd
[16:16:22] Pawn.CMD plugin v3.2.0 by urShadow has been loaded
[16:16:22]   Loaded.
[16:16:22]  Loading plugin: iTD
[16:16:22] 
* iTD Plugin loaded. (Support for textdraw editor mouse/keyboard)

[16:16:22]   Loaded.
[16:16:22]  Loading plugin: FileManager
[16:16:22] ******************
[16:16:22] ** FILE MANAGER **
[16:16:22] **    Loaded    **
[16:16:22] ** Version 1.1 **
[16:16:22] ******************
[16:16:22]   Loaded.
[16:16:22]  Loaded 7 plugins.

[16:16:22] 
[16:16:22] Filterscripts
[16:16:22] ---------------
[16:16:22]   Loading filterscript 'npc_record.amx'...
[16:16:22]   Unable to load filterscript 'npc_record.amx'.
[16:16:22]   Loaded 0 filterscripts.

[16:16:22]  
[16:16:22]  
[16:16:22]  
[16:16:22]  ======================================= 
[16:16:22]  |                                     | 
[16:16:22]  |        YSI version 3.09.0684        | 
[16:16:22]  |        By Alex "Y_Less" Cole        | 
[16:16:22]  |                                     | 
[16:16:22]  ======================================= 
[16:16:22]  
[16:16:23] 

Подключение к MySQL: OK
[16:16:23] ==============================================
[16:16:23] Server is Loading...
[16:16:23] ==============================================
[16:16:23] Number of vehicle models: 42
[16:16:25] [SMSG]: Успешная загрузка 'LoadVehicle' - загружено 89 за 1523 м.с
[16:16:25] [SMSG]: Успешная загрузка 'LoadBizz' - загружено 15 за 1 м.с
[16:16:25] [SMSG]: Успешная загрузка 'LoadHouses' - загружено 31 за 1 м.с
[16:16:25] [SMSG]: Успешная загрузка 'LoadFrac' - загружено 17 за 1 м.с
[16:16:25] [SMSG]: Успешная загрузка 'LoadEnters' - загружено 55 пикапов за 2 м.с
[16:16:25] [SMSG]: Успешная загрузка 'LoadPodezd' - загружено 192 подьездов за 8 м.с
[16:16:26] [SMSG]: Успешная загрузка 'LoadRooms' - загружено 2137 квартир за 109 м.с
[16:16:26] [SMSG]: Успешная загрузка 'LoadATM' - загружено 6 банкоматов за 0 м.с
[16:16:26] [SMSG]: Успешная загрузка 'LoadMayor' за 0 м.с
[16:16:26] [SMSG]: Успешная загрузка 'LoadOther' за 23 м.с
[16:16:26] [SMSG]: Успешная загрузка 'LoadKazino' - загружено 8  за 0 м.с
[16:16:26] [SMSG]: Успешная загрузка 'LoadRadar' - загружено 2 за 0 м.с

 

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


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

echo Executing Server Config...
lanmode 0
rcon_password 396593
rcon 0
maxplayers 500
hostname Severe Russia RolePlay | Loading...
gamemode0 mrpv1
filterscripts npc_record
announce 1
query 1
weburl 
maxnpc 20
onfoot_rate 40 
incar_rate 40 
weapon_rate 40 
stream_distance 400.0 
stream_rate 500
mapname Criminal Russia
plugins crashdetect mysql sscanf streamer pawncmd iTD FileManager
port 8904

echo Executing Server Config...
lanmode 0
rcon_password 396593
rcon 0
maxplayers 500
hostname Severe Russia RolePlay | Loading...
gamemode0 mrpv1
filterscripts npc_record
announce 1
query 1
weburl 
maxnpc 20
onfoot_rate 40 
incar_rate 40 
weapon_rate 40 
stream_distance 400.0 
stream_rate 500
mapname Criminal Russia
plugins crashdetect mysql sscanf streamer pawncmd iTD FileManager
port 8904

 

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

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


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

каково содержимое папки npcmodes? Скиньте весь итоговый код, который вы добавили в свой мод. 

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


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

Можно ссылку на скачивание данного скрипта. В интернете один шлак. Нету нормальных сайтов...

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


Ссылка на сообщение
Поделиться на другие сайты
Андрей Лазарев
Активный
В 28.06.2019 в 16:00, DEST сказал:

Это от сампа, но в CRMP тоже должен работать. 

npc_record.pwn  0   2 кБ

npc_record.amx  0   1 кБ

Вы конечно извените но вы сами пишите что в крмп ДОЛЖНО РАБОБАТЬ сколько я не облазил форумов по данной теме и не одного не увидел у кого он заработал

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


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

@Андрей Лазарев Для записи маршрутов используйте стандартный simple-мод, чтобы в нем обрабатывались команды с помощью OnPlayerCommandText. Команда для начала записи /vrecord. Этот скрипт полностью рабочий, скачан из официального архива на sa-mp.com. Если что-то не работает, это означает лишь то, что вы не умеете этим пользоваться. 

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


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

Обычно проблемы возникают по следующим причинам:

  1. Отсутствует папка npcmodes/отсутствуют файлы (например, забыли их скопировать, неправильно назвали).
  2. Отсутствует файл adap-npc (либо поврежден).
  3. Не указано количество подключаемых NPC-ботов в файле конфигураций сервера (server.cfg). Необходимо вписать "maxnpc <количество>". Например, 
    maxnpc 10

    Ибо по умолчанию значение maxnpc стоит 0. Более подробно о параметрах сервера, настраиваемых в файле конфигурации, можете прочитать здесь.

  4. Неправильно оформлен файл.

  5. Боты подключаются "разово": идет последовательный вызов нескольких функций подключения ботов (ConnectNPC). Здесь сработает система безопасности сервера (параметр называется как-то вроде минимальная частота входящих запросов к серверу). Решение: запускать ботов с некоторым интервалом. Например: 

    Спойлер

     

    
    const MAX_NPC = 3;
    
    public OnGameModeInit() {
    	SetTimerEx("ConnectNPCBots", 1000*1, false, "i", 1); // ID первого бота
    	return 1;
    }
    
    forward ConnectNPCBots(npcid);
    public ConnectNPCBots(npcid) {
    	static g_npcid = 0;
    	g_npcid = npcid;
    	
    	switch(npcid) {
    		case 1: ConnectNPC("BotName1","file1");
    		case 2: ConnectNPC("BotName2","file2");
    		case 3: ConnectNPC("BotName3","file3");
    	}
    	
    	if(++g_npcid <= MAX_NPC) {
    		SetTimerEx("ConnectNPCBots", 1000*1, false, "i", g_npcid);
    	}
    	
    	return 1;
    }

     

 

Если хотите, можете попробовать подключить бота, который есть в моде CSR. Коль уж там работает, у вас тоже должен работать. Для этого поэтапно сделайте следующее:

  1. Скачайте папку npcmodes со всем ее содержимым (скачать).
  2. В OnGameModeInit впишите: 
    ConnectNPC("Karinka","cas1")
    Ну, и всех остальных своих ботов пока что уберите (закомментируйте хотя бы). Так скажем для чистоты эксперимента.

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


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

@odosenok, можете скинуть сам мод csr что бы от туда брать ботов

Отредактировано пользователем odosenok
Причина: убрал цитату.

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


Ссылка на сообщение
Поделиться на другие сайты
sorex
Новичок
9 минут назад, odosenok сказал:

@sorex, версия 7.4.0 есть в открытом доступе.

а ссылку можно не могу найти

 

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

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

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

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

    • Дебилойд
      От Дебилойд
      Здравствуйте!
      Мы ищем талантливого 3D-моделлера в команду нашего CRMP-проекта!
      Что нужно будет делать:
      Моделировать и адаптировать автомобили.
      Создавать и настраивать скины (модели персонажей).
      Большим плюсом будет:
      Умение создавать качественные и оптимизированные интерьеры.
      Если вы хотите стать частью нашей команды и развивать проект вместе с нами, пишите в ЛС. Ждем ваши портфолио!
    • LORDIKUS
      От LORDIKUS
      Уважаемые участники форума - всех приветствую, кто перешел в беседу моей темы обсуждения. В настоящее время у меня зарождается огромное желание и мысль создать собственный CR:MP проект, но столкнулся с единственной проблемой - с отсутствием команды людей, у которых будет искреннее желание ежедневно вкладывать свой труд на разработку проекта. Особого опыта в скриптинге, маппинге, дизайне или в моделировании у меня не имеется, поэтому такой критерий как опыт в определенной сфере для желающих вступить в команду я не рассматриваю. Так как проект не открыт и находится на начальной стадии создания, мое сотрудничество выстраивается на некоммерческой основе (без выплаты за проделанную работу и труд), однако я не собираюсь отрицать высокую ценность вложенного командой труд — труд, особенно на первой стадии разработки я рассматриваю превыше всего. После открытия проекта в зависимости от коммерции и чистой прибыли каждый участник будет получать настоящую выплату, однако это также может убить еще значительное время. Мне нужна команда, которая проявит искренний интерес в создании общего между командой CR:MP проекта, пожертвует свое время, а также вложит собственный труд благодаря заработанным навыкам. Если вас заинтересовала данная тема обсуждения, пожалуйста, свяжитесь со мной по любым возможным и удобным для вас контактам связи ниже. Спасибо всем, кто зашел в мою беседу!

      🔗 Спец. Связь:
      — DISCORD: https://discord.com/users/1452715348196589691 (перейти по ссылке и добавить в друзья) ИЛИ _shin833_ (ввести никнейм и отправить запрос дружбы)
      — VK: https://vk.com/shin833
      — TG: https://t.me/s_hin833
    • Korochansky
      От Korochansky
      Настало время объявить о скором выпуске первого релиза среды разработки под названием Spawn.

      В настоящее время программа находится на заключительных этапах доработки кода и локализации интерфейса.
      Таким образом, в течение следующей недели будет выпущена быстрая и современная среда разработки, обладающая следующими возможностями (о которых я расскажу сейчас, а о других — позже):
       
      Полнофункциональный локальный Git: 
      Индексирование, фиксации, индикаторы состояния и мягкий/жесткий сброс до любой точки сохранения одним щелчком мыши. Разрабатывайте свой игровой сервер, не боясь его сломать.
      Новички могут рассматривать это как историю кодовой базы вашего сервера (что и есть на самом деле).
       
      Чистый UTF-8 (без BOM): 
      Полный отказ от устаревшей кодировки Windows-1251 (CP1251) для абсолютной стабильности и идеальной совместимости с Git.
      Реализация поддержки CP1251 привела бы к нестабильному поведению программы и ухудшила бы пользовательский опыт.
       
      История изменений строк: Редактор выделяет измененные строки в реальном времени в полях рядом с номерами строк. Это позволяет мгновенно видеть границы изменений, внесенных с момента открытия файла.
       
      Сопоставление и выделение фигурных скобок: мгновенное выделение открывающих и закрывающих фигурных скобок для быстрой навигации по структуре кода и защиты от ошибок компиляции.
       
      Интеграция с SAMPCTL: готовая к использованию автоматизация процессов. Сборка, запуск сервера и менеджер зависимостей (управление библиотеками и плагинами) работают напрямую из интерфейса редактора.
       
      И многое другое...
       
      И самое главное: проект будет с открытым исходным кодом под лицензией GPLv3!
      Следите за новостями о выпуске в репозитории: https://github.com/daniilkorochansky/spawn
    • KodBi
      От KodBi
      шапка
      по одиночке работают
      нужны оба