ExiD
Активный участник
- Баллы
- 88
- Имя в Minecraft
- bars268
Denizenэто, по сути, продолжение Citizens2, которое добавляет невероятное количество автоматизации НПС и игроков. Некоторые основные функции:
- Скриптовый движок (The Script Engine) отправляет все команды, которые выполняются упорядоченно, это основа Denizen. В настоящее время имеется 3 очереди, для игрока, для Denizens и для задачи.
- Скрипты для взаимодействия (Interact Scripts) это основа Dezizen, которая позволяет игрокам и НПС взаимодействовать друг с другом и с миром. Такие скрипты очень гибко настраиваются. Подробнее о таких скриптах будет ниже.
- Скрипты действий (Activity Scripts) позволяют Denizen быть как обычные игроки. То есть они смогут ходить, общаться друг с другом, сажать деревья, строить дома и еще много чего.
- Планировщик действий (Activity Scheduler) позволяет создавать «график» из скриптов для Denizenоснованный на одном игровом дне в minecraft.
- Скрипты заданий (Task Scripts) это простые скрипты которые могут использоваться как «скрипты действий» и как «скрипты взаимодействия».
- Листнер (Listeners) в настоящее время находятся в «экспериментальной фазе», но уже позволяют контролировать события Minecraft bukkit. Например если вы хотите создать квест на убийство.
- Система флагов (Flag System) позволяет более динамичное использование Denizen. Сложная, но легко воспринимаемая система флагов была внедрена в Denizen, чтобы помочь отслеживать события, предметы, цифры, игроков и многое другое.
Файловая структура
Важно понять файловую структуру Denizen прежде чем начинать писать скрипты. Ниже распишем для чего нужен каждый файл. Это может показаться вам бесполезным, но стоит все таки вникнуть до того как начнете использовать. denizen.jar
Очень часто встречается вопрос, куда же поместить этот файл? Если в прошлом, для Citizens 1.2 все типы граждан помещались в специальную папку, то для нашего случая стоит рассматривать как любой другой плагин и помещать в папку плагинов /plugins. Единственное отличие Denizen от других плагинов это то, что Denizen не создает все папки и файлы сам. Вам придется вручную создавать некоторые файлы и папки. Но есть другой выход! Скачать СТАРТОВЫЙ НАБОР и закинуть в папку плагина.
config.yml
Содержит некоторые параметры для изменения поведения Denizen. Вы можете использовать все значения по умолчанию, плохо от этого не станет)
Изменения в этот файл можно вносить и при работающем сервере, только потом может потребоваться перезагрузка плагина командой /denizen reload .
assignments.yml
В этом файле описываются все варианты действия для вашего NPC. Каким образом его редактировать будет объяснено дальше.
Изменения в этот файл можно вносить и при работающем сервере, только потом может потребоваться перезагрузка плагина командой /denizen reload .
saves.yml
Ни в коем случае не редактируйте вручную этот файл при включенном сервере. Он будет заполняться автоматически. Тут содержится информация о профессии НПС, флагах игроков, расположении НПС, активные сценарии, действия и другое.
read-only-scripts.yml
Еще один файл, который нельзя редактировать вручную. Сюда пишутся все скрипты которые плагин смог прочитать.
/scripts/ папка
Это папка из которой плагин будет читать скрипты при загрузке и заносить их в файл read-only-scripts.yml . Такая организация скриптов очень удобна, так как количество скриптов может быть очень велико и ориентироваться по ним будет сложно.Файлы в этой директории можно называть как угодно, но формать долен быть всегла .yml .
Config.yml
# Операторы могут получать информацию о НПС с помощью правого клика.
# Если falseто команда '/denizeninfo' делает то же самое.
right_click_and_sneak_info_mode_enabled: true
# Стандартное время отката триггеров в секундах.
default_click_cooldown_in_seconds: 2.0
default_location_cooldown_in_seconds: 30.0
default_proximity_cooldown_in_seconds: 15.0
default_death_cooldown_in_seconds: 0.0
default_damage_cooldown_in_seconds: 0.5
default_chat_cooldown_in_seconds: 2.0
# Если триггер атаки (damagetrigger) (левый клик) деактивирован. Выберите falseесли хотите
# чтобы был активен только правый клик.
disabled_damage_trigger_instead_triggers_click: false
# Ожидания действия.
engage_timeout_in_seconds: 150
# Задержка взпимодействия задает темп для очереди игрока и очереди НПС.
# рекомендуется ставить значения 10-20.
interact_delay_in_ticks: 10
# Максимальная длина строки диалога
multi_line_text_maximum_length: 55
# обычно, игроки могут говорить с НПС даже если нет триггера чата.
# Измените на trueесли вы хотите чтобы чат с НПС был виден для всех
chat_globally_if_no_chat_triggers: false
# Если триггер чата включен, и игрок вызывает недоступный триггер
# который не соответствует ни одному описанному в скрипте,
# Должен ли игрок продолжать чат с НПС и получать ответы или должен
# возвращаться в глобальный чат игнорируя НПС
# Измените на trueесли хотите
# чтобы чат у НПС был глобальный если триггер чата есть,
# ноненайденысоответствия
chat_globally_if_failed_chat_triggers: false
# Если falseто команда '/denizeninfo' делает то же самое.
right_click_and_sneak_info_mode_enabled: true
# Стандартное время отката триггеров в секундах.
default_click_cooldown_in_seconds: 2.0
default_location_cooldown_in_seconds: 30.0
default_proximity_cooldown_in_seconds: 15.0
default_death_cooldown_in_seconds: 0.0
default_damage_cooldown_in_seconds: 0.5
default_chat_cooldown_in_seconds: 2.0
# Если триггер атаки (damagetrigger) (левый клик) деактивирован. Выберите falseесли хотите
# чтобы был активен только правый клик.
disabled_damage_trigger_instead_triggers_click: false
# Ожидания действия.
engage_timeout_in_seconds: 150
# Задержка взпимодействия задает темп для очереди игрока и очереди НПС.
# рекомендуется ставить значения 10-20.
interact_delay_in_ticks: 10
# Максимальная длина строки диалога
multi_line_text_maximum_length: 55
# обычно, игроки могут говорить с НПС даже если нет триггера чата.
# Измените на trueесли вы хотите чтобы чат с НПС был виден для всех
chat_globally_if_no_chat_triggers: false
# Если триггер чата включен, и игрок вызывает недоступный триггер
# который не соответствует ни одному описанному в скрипте,
# Должен ли игрок продолжать чат с НПС и получать ответы или должен
# возвращаться в глобальный чат игнорируя НПС
# Измените на trueесли хотите
# чтобы чат у НПС был глобальный если триггер чата есть,
# ноненайденысоответствия
chat_globally_if_failed_chat_triggers: false
