- Баллы
- 76
- Имя в Minecraft
- GoODsPie
Добрый %time%, дорогой читатель...
В связи с отсутствием на форуме актуальных, полных, и, главное, понятных туториалов, я решил создать свой, посмотрим что из этого получится...
------== Приступим! ==------
Denizen - Плагин, служащий для создания других плагинов. А-ля ядра для написания ваших скриптов. Служит для тех-же целей, что и всем известный Scripts, и, более популярный на ру-сайтах, ReActions, но в отличии от них чаще обновляется (Scripts, привет), и быстрее работает (Да, ReActions, камень в твой огород). Если хотите создать что-то необычное, новое, классное на своём сервере, но лень учиться писать плагины, а денег нет - Denizens для вас!В связи с отсутствием на форуме актуальных, полных, и, главное, понятных туториалов, я решил создать свой, посмотрим что из этого получится...
------== Приступим! ==------
Что он могёт? Практически всё. Сама структура до смеха проста, мы прослушиваем действие - мы реагируем на действие. Выглядит это как-то так:
Код:
Имя Скрипта:
тип: задача
скрипт:
- сказать "Привет Мир!"
А теперь, как он должен выглядеть:
Код:
Script Name:
type: task
script:
- narrate "Hello World!"
Наш первый скрипт готов!
Переходим в папку "\plugins\Denizen\scripts", создаём файл "любое_название.yml", и переносим туда наш скрипт, перезапускаем сам плагин командой /denizen reload -a
Запустить его возможно командой /ex run 's@Script Name'
При этом нам в чат отобразится надпись "Hello World!" и отчёт о успешном выполнении команды.
Он поддерживает и русские символы, так что, 'Hello World!' вполне заменяем на 'Привет Мир!'
Но, это всё скучно, давайте мы немного усложним наш скрипт...
Пусть он приветствует не мир, а нас; для этого заменим Hello World на Тег.
Тег - это такая хреновина, способная заменять себя на какие-либо переменные, как правило, в скрипте они содержатся в таких <кавычках>
Если тега в данный момент не существует, то отобразится просто текст внутри кавычек.
Если нам нужно отобразить слово внутри кавычек, чтобы оно выглядело "примерно вот <так>", мы в скрипте пишем "примерно вот <<так>>", или же "примерно вот <<>так<>>", с этим обычно проблем не возникает, скрипт сам старается не поломать себя, по мере возможностей.
Конкретно для нашего случая, мы используем тег <player.name>, он отобразит имя игрока запустившего наш скрипт (просто <player> отобразит его uuid).
Скрипт теперь выглядит так:
Код:
Script Name:
type: task
script:
- narrate "Привет <player.name>!"
Для любителей цветовых символов, сразу оговорюсь, мы не используем символ '&a' для окрашивания цвета, мы используем либо '§a', либо '<&a>', для других цветов - аналогично.
Итак, всё хорошо, скрипт работает, но давайте мы изменим команду, не красиво ведь смотреть на прочую информацию, да и сама команда длинная!
Немного изменяем скрипт, и теперь он выглядит вот так:
Код:
Script Name:
type: world
events:
on rubukkit command:
- determine passively cancelled
- narrate "Привет <player.name>!"
Мы видим некоторые преображения, что они значат?
Во 1-х, мы изменили тип скрипта, до этого, он ни на что не реагировал, и запустить его мы могли либо специальной командой, либо из другого скрипта.
Теперь - скрипт реагирует на мир сервера, возможно, кто-то скажет что удобнее реагировать сразу на команду, но об этом потом, пока - самое простое.
Вместо "script:" мы поставили "events:", но смысла особого не изменилось, просто, отделяем макушку скрипта от самого скрипта, прочей информации нам не надо...
Далее, видим строчку "on rubukkit command:", она означает, что при использовании команды /rubukkit что-то происходит, естественно, мы можем заменить её и на другую. Пока наш скрипт реагирует на все возможные варианты команды /rubukkit, будь то просто "/rubukkit", или "/rubukkit qwerty", скрипт всегда реагирует на нас.
Новая строчка, а именно "- determine passively cancelled", означает что мы останавливаем действие, которое нам в ответ хочет послать сервер (к которому подключен наш скрипт), а именно - сообщение, что такой команды нет. Команды, по факту, не существует, но наш скрипт реагирует так, как если-бы она была. Кстати, да, если команда существует (например, /help), и мы решили её отменить, то у нас это успешно получится, ни сервер, ни игрок никак не прореагируют на нашу команду остановленную скриптом.
------== Закончили! ==------
Как и все туториалы, я решил посвятить первый урок только основам скрипта, показать его структуру, рассказать как вообще всё устроенно. Мы прошлись лишь по поверхности, и наш скрипт почти бесполезен (За исключением создания кастомных /help менюшек), но в дальнейших уроках будем погружаться всё глубже.Жду ваших советов, пожеланий по поводу оформления темы и самой сути моего рассказа. Может, слишком сильно разжёвываю, может, нужно больше картинок...
Жду критики!
Последнее редактирование: