Citizens — это мощный плагин для создания NPC (Non-Player Characters) на серверах Minecraft. С его помощью можно создавать живых персонажей, которые могут выполнять различные действия: торговать, давать квесты, охранять территорию и многое другое.
Скачать Citizens можно с официальной страницы SpigotMC
Denizen — это дополнительный плагин для Citizens, который добавляет возможность создания скриптов. С его помощью можно программировать поведение NPC: диалоги, квесты, реакции на действия игроков.
Скачать Denizen можно с официальной страницы SpigotMC
Шаг 1: Скачайте Citizens.jar и Denizen.jar
Шаг 2: Поместите оба файла в папку plugins
Шаг 3: Перезапустите сервер
Шаг 4: Проверьте установку командой /npc help и /denizen version
Важно! Denizen требует наличия Citizens. Устанавливайте оба плагина вместе.
Создать NPC:
/npc create [имя] - создать NPC с именем
/npc create Торговец - пример
Удалить NPC:
/npc remove - удалить выбранного NPC
Выбрать NPC:
/npc select - выбрать NPC, на которого вы смотрите
Переместить NPC:
/npc tp - телепортировать NPC к вам
/npc move - переместить NPC на место, куда вы смотрите
/npc skin [ник_игрока] - установить скин игрока
/npc skin Notch - пример
Или использовать URL скина:
/npc skin --url [URL]
По умолчанию создается человек, но можно создать любого моба:
/npc type [тип]
/npc type zombie - создать зомби
/npc type villager - создать жителя
/npc type cow - создать корову
/npc equipment - открыть меню экипировки
Или через команды:
/npc equip helmet [предмет] - надеть шлем
/npc equip chest [предмет] - надеть нагрудник
Самый простой способ добавить взаимодействие:
/npc text add "Привет, путник!"
/npc text add "Хочешь купить зелье?"
NPC будет говорить эти фразы по очереди при каждом клике.
Удалить текст:
/npc text remove [номер]
/npc text clear - удалить весь текст
Можно заставить NPC выполнять команды:
/npc command add heal /heal <p>
/npc command add feed /feed <p>
<p> заменяется на имя игрока, который кликнул.
Теперь самое интересное - создание квестов и диалогов!
Создайте файл в plugins/Denizen/scripts/dialog.yml:
quest_npc_dialog:
type: assignment
actions:
on assignment:
- trigger name:click state:true
interact scripts:
- quest_dialog
quest_dialog:
type: interact
steps:
1:
click trigger:
script:
- narrate "Привет, <player.name>!"
- narrate "Я торговец из соседнего города."
- narrate "Не хочешь помочь мне с одним делом?"
- flag player quest_started
- zap 2
2:
click trigger:
script:
- if <player.has_flag[quest_started]>:
- narrate "Принеси мне 10 пшеницы, и я награжу тебя!"
- else:
- narrate "Спасибо за помощь!"
После создания скрипта:
/ex reload
/npc assignment --set quest_npc_dialog
Создадим квест «Собрать 10 пшеницы»:
wheat_quest:
type: interact
steps:
offer_quest:
click trigger:
script:
- narrate "Мне нужно 10 пшеницы!"
- narrate "Принесешь?"
- flag player wheat_quest_active
- zap check_wheat
check_wheat:
click trigger:
script:
- if <player.inventory.quantity[wheat]> >= 10:
- narrate "Отлично! Вот твоя награда!"
- take item:wheat quantity:10
- give diamond quantity:5
- flag player wheat_quest_active:!
- zap offer_quest
- else:
- narrate "У тебя всего <player.inventory.quantity[wheat]> пшеницы."
- narrate "Нужно еще <[10].sub[<player.inventory.quantity[wheat]>]>!"
Список всех NPC:
/npc list
Информация о NPC:
/npc info
Сделать NPC неуязвимым:
/npc vulnerable false
Изменить имя NPC:
/npc name [новое_имя]
Разрешить/запретить столкновения:
/npc collidable false
1. NPC не реагирует на клики
/ex reload/npc assignment2. Скрипт выдает ошибки
3. NPC исчезает после перезагрузки
4. Несколько игроков не могут одновременно взаимодействовать с NPC
Citizens поддерживает множество дополнений:
С Citizens и Denizen вы можете создать уникальный игровой опыт на вашем сервере! От простых торговцев до сложных квестовых цепочек.