Rust news
SOCIAL:
Filed under: Oxid, Плагины

Плагин Human NPC

Плагин Human NPC добавляет в игре интерактивные неигровые персонажи в виде людей (Human NPC), может быть модифицирован с помощью других плагинов. Добавьте в игру неигровые персонажи в виде людей! Сделайте так, чтобы ваши города выглядели более оживлённо.


Установка


Возможности плагина

  • Полностью настраиваемые возможности
  • Умеют здороваться, когда вы к ним приближаетесь
  • Умеют говорить «До свидания», когда вы от них отходите
  • Умеют отвечать, когда вы пытаетесь с ними общаться (USE)
  • Могут говорить «ouch», если их ударить
  • Могут назвать вас убийцей, если попытаетесь их убить
  • Поддерживаются несколько вариантов сообщений (случайно выбирается одно из них)
  • Можно задать имя
  • Можно присваивать наборы (требуется плагин Kits)
  • Можно задать точки маршрута (Waypoints), так что они смогут перемещаться по карте
  • Можно сделать NPC неуязвимыми
  • Задать время повторного ввода в игру в случае их гибели
  • NPC могут обороняться
  • Можно задать для NPC скорость преследования
  • Задать урон
  • Установить для NPC максимальную дистанцию преследования
  • Установить для NPC максимальную дистанцию видимости
  • Задать уровень враждебности
  • Установить NPC в качестве менестреля (Mistrel)
  • Во время преследования или движения по маршруту, NPC будет пытаться автоматически обнаружить наиболее выгодное местоположение

Команды

/npc_add => создать и редактировать нового NPC
/npc_edit [Id] => редактировать NPC, на которого вы смотрите или с указанным ID
/npc_remove [Id] => удалить NPC, на которого вы смотрите или с указанным ID
/npc_end => прекратить редактирование NPC
/npc OPTION VALUE => установить значения опций NPC
/npc_reset => удалить всех NPC
/npc_pathtest => пройти по пути NPC
/npc_list => список всех NPC
/npc_way [Id] => прочертить путь NPC, на которого вы смотрите или с указанным ID

NPC_ADD

Создание новых NPC и их редактирование. NPC будет создан там, где вы стоите и будет смотреть в ту же сторону, что и вы команда /npc_add XXXX (npc ID из списка /npc_list) клонирует NPC на ваше местоположение

NPC_EDIT

Редактирование NPC (не требуется, если вы только что выполнили /npc_add)
После этого вы можете использовать команду: /npc

NPC_END

Прекратить редактирование NPC

NPC

Просто выбрав эту опцию, вы увидите, какое она в настоящее время имеет значение.
Значения опций:

  • attackdistance XX => расстояние между NPC и целью, при выходе за которое NPC начинает игнорировать цель и возвращается на исходное место
  • bye reset/»TEXT» «TEXT2» etc => Не забывайте про \». То, что будет сказано, когда игрок отойдёт от NPC
  • damageamount XXX => Ущерб, который NPC наносит игроку, когда бьёт его
  • damagedistance XXX => Дистанция, с которой NPC может нанести урон игроку (3 по умолчанию, 20-30, возможно, пригодятся снайперам?)
  • damageinterval XXX => Интервал времени в секундах, в течение которого NPC должен ждать, прежде чем атаковать повторно
  • enable true/false => Активировать (по умолчанию) или дезактивировать NPC, не удаляя его (Обратите внимание, что при редактировании бот остаётся активным до тех пор, пока вы не скомандуете /npc_end)
  • radius XXX => Радиус, на котором NPC может обнаружить игрока
  • health XXX => Установить уровень здоровью для NPC (ограничено настройками Rust до максимума в 100)
  • hello reset/»TEXT» «TEXT2» etc => Не забывайте про «. То, что будет сказано, когда игрок приблизится к NPC
  • hurt reset/»TEXT» «TEXT2» etc => Не забывайте про \». Сообщение, которое слышит игрок, когда наносит урон NPC
  • hostile true/false => Уровень враждебности NPC, который будет атаковать игрока в зоне видимости (радиус – это предел видимости)
  • invulnerable true/false => Сделать NPC неуязвимым или нет
  • kill reset/»TEXT» «TEXT2» etc => Не забывайте про \». Сообщение, которое слышит игрок, когда убивает NPC
  • kit reset/»KitName» => Установить набор для этого NPC, требуется плагин Kit (смотрите ниже)
  • lootable true/false => Возможность или невозможность ограбления этого NPC
  • maxdistance XXX => Максимальное расстояние от места появления в игре, на которое NPC может удаляться (во время атаки на игрока)
  • minstrel reset/»tunesong» => Устанавливает песню, которую NPC будет постоянно петь. Вы должны создать эту песню с помощью плагина «Менестрель» (Minstrel)
  • name «THE NAME» => Присвоить NPC имя
  • respawn true/false XX => Устанавливает повторное появление NPC в игре через XX секунд после гибели, по умолчанию респаун мгновенный
  • spawn new => Задать новое местоположение для входа в игру
  • speed XXX => Задать скорость бега NPC (при преследовании игрока)
  • stopandtalk true/false XXX => Будет ли NPC останавливаться, когда игрок с ним говорит, и, если true, в течение какого времени он будет стоять.
  • use reset/»TEXT» «TEXT2» etc => Не забывайте про \». То, что будет сказано, если игрок нажмёт USE на NPC
  • waypoints reset/»Waypoint list Name» => Задать точки маршрута для NPC
  • hitchance float => вероятность поражения цели
  • fireduration float => длительность огня
  • reloadduration float => длительность перезагрузки
  • defend true/false => контратаковать или нет при нападении
  • needsAmmo true/false => чтобы стрелять, в инвентаре должны быть боеприпасы

NPC WAYPOINTS:

Для создания точек маршрута вам понадобится:
Waypoints Database 1.0.0
Для того, чтобы управлять NPC, посмотрите статью о точках маршрута и узнайте, как их создавать

NPC KIT

Вам понадобится плагин Kits.
Создайте новый набор с помощью плагина Kits, как обычно, а затем сделайте следующее:
/kit add «random name» «random description» -authlevel2 (задан этот уровень, так что игроки не смогут использовать этот набор, только администраторы и NPC)
Далее, во время редактирования NPC, выполните: /npc kit «random name» (то же самое название, что и у набора)


Движение во время атаки и  поиск пути (Pathfinding) NPC:

Плагин Pathfinding всё ещё далёк от совершенства, но работа над ним идёт. В настоящее время основная проблема кроется не в Pathfinding, а в плагине HumanNPC, точнее в том, как он написан. Поэтому мне придётся переписать часть плагина, чтобы усовершенствовать движения и атаки игрока.

Вам нужно будет скачать PathFinding for Rust Experimental | Oxide чтобы начали нормально работать движения атаки NPC.

Если NPC не может найти ни одного пути в течение 5 секунд, он прекращает преследование сущности и возвращается на исходную позицию с полным запасом здоровья.


Для разработчиков плагинов:

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

Ни один из них не возвращает значений (при необходимости это можно изменить)
Возможно добавление новых методов.

Обратите внимание, что все NPC имеют уникальные пользовательские ID, (BasePlayer.userID), так что вы легко можете сохранить информацию о NPC с использованием userID

Вызывается, когда NCP получает урон

Вызывается, когда NCP используется (игрок нажал use, наведя курсор на этого NPC)

Вызывается, когда игрок попадает в диапазон данного NPC

Вызывается, когда игрок выходит из диапазона данного NPC

Вызывается, когда NPC погибает

Вызывается, когда NPC доходит до точки маршрута и переключается на следующую точку

Вызывается, когда NPC повторно вводится в игру

Вызывается, когда кто-нибудь ограбит NPC


Использование данного плагина:

  • Сделает ваш сервер более оживлённым, с городами и NPC, которые могут говорить и немного взаимодействовать с игроками
  • Позволит создать Epic mobs, которые появляются через каждые X единиц времени и после гибели оставляют какие-либо трофеи (используйте плагин Kits).
  • Позволит создать другие плагины, которые дают игрокам возможность участвовать в квестах (Например, Hunt RPG)
  • Позволит создать другие плагины, которые использует NPC для управления банками, квестами, торговыми предприятиями, магазинами.
  • Возможности этого плагина безграничны, ограниченным является только ваше воображение!

Видео