Туториал [VarScript 0.5] Планировщик: Создание задачи

DPOH-VAR

Старожил
Пользователь
Баллы
153
-----------------------------------------------------
VarScript 0.5 на рубукките (описание, инструкции, модули)
VarScript 0.5 на dev.bukkit.org
-----------------------------------------------------
Это первый туториал по функциям планировщика плагина VarScript 0.5
Ознакомиться подробнее с плагином можно тут.

Создание задачи

Любая задача представляет из себя YAML файл, в котором записаны события, условия и действия. Создать задачу можно вручную (в любимом блокноте), или же с помощью команд.
Для примера рассмотрим задачу, которая будет "замораживать" игроков.
- событие: игрок двигается
- действие: отменить движение
для начала создадим задачу с названием freeze:
/task freeze create
теперь в задачу нужно добавить событие и действие:
/task freeze event add BUKKIT PlayerMoveEvent
/task freeze action add EVENT cancel
и вот, задача готова!
Теперь посмотрим, что получилось:
/task freeze
t1.png
Теперь можно попробовать активировать задачу
/task freeze enable
Можете сдвинуться с места? Нет? Тогда все отлично!
Если задача включена, она выглядит немного по-другому:
t1.png
Если где-то была допущена ошибка, в задаче она будут выделена красным цветом, а сама задача - желтым:
t1.png
Теперь можно выключить задачу.
/task freeze disable

Теперь усложним. Пусть событие отменяется не всегда, а с определенной вероятностью, чтобы создать видимость лагов на сервере. Нужно добавить всего одно условие:
/task freeze condition add CHANCE 10%
Теперь игроки будут жаловаться на жуткие лаги, что невозможно нормально ходить.
Может сделать это только для определенного игрока?
Добавляем условие на varscript
/task freeze condition add VS @Player NAME "VasyaPupkin" =
Готово! Вася Пупкин наказан, и теперь он играет с лагами.

Еще раз посмотрим, что получилось:
t1.png
А сам YAML файл располагается в "plugins/VarScript/tasks/freeze.yml" и выглядит так:
YAML:
enabled: true
events:
- BUKKIT PlayerMoveEvent
conditions:
- CHANCE 5%
- VS @Playеr NAME "VasyaPupkin" =
actions:
- EVENT cancel
Его можно отредактировать вручную, а затем ввести
/task freeze reload

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