Войти или зарегистрироваться

Плагин [ADMN/DEV/FUN] VarScript 1.2 - Пишем скрипты на Groovy

DPOH-VAR

Старожил
Пользователь
Баллы
153
[VarScript]​
Версия: 1.0.0
Все, что касается плагина VarScript будет собрано тут. Шапка обновляется
-----------------------------------------------------
Плагин на dev.bukkit.org
-----------------------------------------------------​
VarScript - это плагин, позволяющий писать скрипты на языке Groovy, и исполнять код во время игры. Синтаксис языка упрощен для быстрого исполнения команд в консоли. Полностью поддерживается Bukkit API, возможно взаимодейстовать с Cauldron

Исполнение скрипта в командной строке:

Код можно исполнить с помощью команды:
/> код
Пример:
/> me.maxhp = 100
эта команда изменит максимальное количество жизней на 100.
/> me >> world.spawnLocation
телепортирует в точку спавна мира world

Базовые команды:

/> код
Исполнить код на языке Groovy

/ws ...
Команда для работы с рабочими пространствами. Описание ниже.

Добавление сторонних библиотек:

Чтобы добавить библиотеку, необходимо поместить ее в директорию lib/ в корне сервера.

Рабочие пространства (workspace):

Рабочее пространство - это сессия для работы со скриптами.
Его функции:
- хранение переменных
- предоставление доступа к локальным и глобальным переменным
- регистрация событий и таймеров
Для каждого игрока по умолчанию создается новый workspace, соответствующий его имени.
Посмотреть его название можно командой /ws .
Изменить свой workspace: /ws set name , где name - новое имя воркспейса.
Чтобы два игрока видели общие переменные, им нужно назначить один и тот же воркспейс.
Командный блок (в т.ч. в вагонетке) - это такой же пользователь рабочих пространств, как и игроки. Имя командного блока по умолчанию "@", поэтому всем командным блокам создается одинаковый воркспейс. Изменить имя блока можно с помощью любого NBT-редактора, а также варскриптом. См доки Bukkit API
Доступ к текущему воркспейсу в скриптах можно получить через переменную workspace.
Вот список доступных команд: [] - обязательный аргумент, <> - не обязательный
/workspace - текущее рабочее пространство
/workspace list - просмотр всех загруженных воркспейсов
/workspace set [workspace] <player> - сменить воркспейс себе или другому игроку
/workspace stop <workspace> - остановить все триггеры воркспейса (по имени или в текущем воркспейса)
/workspace remove <workspace> - удалить воркспейс

/workspace reload <workspace> - перезагрузить воркспейс
/workspace create [workspace] - создать новый воркспейс

Автозагрузка:

Скрипты для автозагрузки хранятся в директории
plugins/VarScript/autorun/
Файл может иметь произвольное имя. Расширение - .groovy
При запуске плагина будут загружены все скрипты из этой директории.
Для каждого скрипта будет создан воркспейс, соответствующий имени файла.
Пример добавления скрипта в автозагрузку:
1. Создаем файл plugins/VarScript/workspace/spam.js
2. Записываем в него код:
JavaScript:
interval(100){
    broadcast "SPAM MESSAGE"
}
3. Перезапускаем сервер или выполняем команду
/ws reload spam
Теперь скрипт будет каждые 5 секунд выводить сообщение в чат
4. Удаляем воркспейс:
/ws remove spam
Скрипт остановится, сообщения больше не будут отправляться.

Туториалы:
--------------------------------------------------------
[VarScript 1.x] Базовый синтаксис
[VarScript 1.x] Триггеры, воркспейсы, автозагрузка
[VarScript 1.x] Скрипты, классы
// todo
--------------------------------------------------------​

Лог изменений (Changelog):
VarScript 1.0.0
- релиз плагина версии 1.0.0​
 
Последнее редактирование:
Классный плагин, жду новой версии, надеюсь добавите что-нибудь новое
 
Хорошая идея. У самого громадные планы по части книг, но я решил дождаться API и главное - событий для них :)
 
Мсье знает толк:
Ну и вот скрипт игры, в скомпилирован в бинарник:
[ helljump.bin ] ~4 кб.
Мсье знает толк:
Ну и вот скрипт игры, в скомпилирован в бинарник:
[ helljump.bin ] ~4 кб.
а можете Вы помочь? Как активировать игру?
делаю всё как тут:

Создание таблички:
1) берем в руку табличку.
2) выполняем команду:
а) если программа уже записана в виде скрипта в файле или url
/vs write newsign string файл_или_ссылка
потребуются флаги s или w
б) программа записана в виде байт-кода в файле или url
/vs write newsign string файл_или_ссылка
потребуются флаги f или u
в) если программу хотим ввести вручную (не рекомендуется)
на выбор, два варианта:
I) /vs write newsign compiled rpn code скрипт
текст будет зашифрован, потребуется флаг b
II) /vs write newsign string скрипт
текст будет виден, потребуется флаг r
существуют способы переноса кода из книги в табличку, наоборот, в файл, из файла, и т.д.
3) ставим одну или несколько пустых табличек. первая из них будет активной, остальные вспомогательные. Разместить их необходимо в радиусе примерно 10 блоков, желательно вообще последовательно друг за другом, хотя порядок не важен.
4) подходим к первой табличке
5) пишем /vs setflag флаги sign
6) щелкаем пустой рукой по первой табличке.
7) (для проверки) /vs isvalid sign и еще раз выбираем первую табличку.
но всё равно не активируется, или надо по другому , я активирую нажатием на кнопку, не выходит, нажатием на табличку, всё равно(((
 
нужно оставить табличке флаги: f#
если что, вопросы по плагину в skype:dpohvar
 
Так и не получится.
1) нужно построить платформы из губок, размером 2х2, недалеко от таблички (вроде Должно быть не дальше 10 блоков)
2) крепим к блоку кнопку, и к этому же блоку табличку. Второй блок и табличка в принципе не нужны.
 
Так и не получится.
1) нужно построить платформы из губок, размером 2х2, недалеко от таблички (вроде Должно быть не дальше 10 блоков)
2) крепим к блоку кнопку, и к этому же блоку табличку. Второй блок и табличка в принципе не нужны.
сейчас попробую
 
Пишит в консоле вот что:
\/\/\/\/\ get by block:1
\/\/\/\/\ get by block:1
 
Сделаю видео-туториал
хорошо, а можете сказать что я не правильно делаю?
Как я строю:
1. Строю платформы над землёй в 10 блоках и растоянием между друг другом 2
2. Под серединной платформой ставлю блок
3. Пишу команду: /vs write newsign string helljump.bin
4. Ставлю табличку на блок
5. Пишу команду: /vs setflag f# sign
6. ПКМ по табличке
7. Ставлю кнопку на блок на котором стоит табличка
 
Назад
Верх