Туториал [VarScript 0.5] Переменные и чтение файлов

  • Автор темы Автор темы DPOH-VAR
  • Дата начала Дата начала

DPOH-VAR

Старожил
Пользователь
Баллы
153
-----------------------------------------------------
Разработка VarScript 0.5
VarScript на dev.bukkit.org
-----------------------------------------------------
Это второй урок по плагину VarScript 0.5
Предыдущую статью можно найти тут
В этом туторе рассмотрим, как работать с конвертером, операции чтения, записи переменных, чтение скрипта из файла.
Предполагаем, что вы уже знаете о плагине VarScript,
о том, как использовать команды и как можно получить справку по команде.
В противном случае рекомендуется ознакомиться с материалами по ссылкам, указанным выше.
Поехали!

Чтение и запись переменных

Первым делом ознакомимся с командами для чтения/записи переменных:
  • %имя - запись в глобальную переменную
  • %%имя - запись в локальную переменную
  • @имя - чтение переменной
Для имени переменной допускаются символы: (A-Z),(a-z),(0-9),_,-,/

Пример 1:
Записываем строку Hello в переменную x
t1.png
Выводим значение переменной на экран
t1.png
В результате получим такое:
t1.png

Пример 2:
Спавним лошадь и заносим ее в переменную horse
t1.png
Позже убиваем эту лошадку
t1.png

Справка по команде SPAWNMOB:
t1.png
Другие имена оставлены для совместимости со скриптами предыдущих версий плагина.
Входящие агрументы:
Location - где заспавнить моба
#EntityType - тип моба, один элемент из перечисления.
если перед аргументом стоит символ решетки - нужно выбрать один элемент из перечисления (enum): указать либо числом (худший вариант), либо строкой (регистр учитывать не обязательно).
Список возможных типов можно посмотреть тут:
http://jd.bukkit.org/rb/apidocs/org/bukkit/entity/EntityType.html

Во всех примерах мы использовали глобальные переменные.
Значения глобальных переменных сохраняются отдельно для каждого игрока, т.е. мы не можем таким образом прочитать "чужие" переменные, или позволить кому-то изменить свои.
Локальные переменные доступны только в том контексте, в котором мы их объявили.
То есть, следующий пример будет работать:
t1.png
t1.png
А этот нет:
t1.png
t1.png
(выведет null вместо bar)
Второй пример не работает потому, что переменная foo объявлена локальной в первой программе, и во второй она будет не видна.

<из за ограничений форума - продолжение ниже>
 
Запись команд в файлы

Это удобный способ сократить большой набор команд фактически до одной (алиас)
Попробуем составить файл с командами и прочитать его.
Заходим в директорию
.\plugins\VarScript\scripts\vs\
и создаем новый файл с расширением .vs, В данном примере будет
.\plugins\VarScript\scripts\vs\Zomb.vs
Записываем в файл следующее:

## создаем зомби и записываем его в переменную z
ME "ZOMBIE" SPAWNMOB %%z
## ждем 200 тиков (примерно 10 секунд)
200 TICKS
## бьем в него молнией и убиваем (для надежности)
@z BOLT KILL

Все, что находится после символов ## - считается комментарием и игнорируется до конца строки.
Затем нужно выполнить команду:
t1.png
где Zomb - название нашего файла.
После этого сценарий, записанный в файле, исполнится, как будто все команды ввели в чат.
Обратите внимание, что переменная z внутри файла - локальная.
Она будет не видна за пределами этого файла,
и не перезапишет другие переменные с таким именем
Допустимые символы в имени файла - также, как в имени переменной (см. выше)
 
Можете привести яркий пример использования плагина на практике, кроме как выполнения сценария создать лошадь, зомби и убить их молнией. Я все понимаю..но все же.Спасибо
 
Можете привести яркий пример использования плагина на практике, кроме как выполнения сценария создать лошадь, зомби и убить их молнией. Я все понимаю..но все же.Спасибо
Перейдите, пожалуйста, по первой ссылке в шапке. Там представлено множество примеров, от создания уникальных предметов со своими способностями до модулей с мини-играми.
В этой же теме рассматривается только небольшая часть функционала плагина.
 
Спасибо, сразу и не увидел.
 
Плагин действительно классный, правда уходит очень много времени на то чтобы в нём разобраться, я 3ч парился что бы заставить с помощью командных блоков исчезать и появляться стену :D....Но это только начало!
 
Назад
Верх