Переменные
Переменные есть практически во всех языках программирования (индентификаторы), они необходимы чтобы запоминать какую-либо информацию, в основном она хранится только в оперативной памяти, но в Skript’е можно хранить их и на диске (учитывайте, что любая переменная - занимает память, и хранить что-то долгосрочное, допустим данные игроков, там - не стоит), проблема же оперативной памяти в том, что после выключения сервера - данные просто пропадут.
– Глобальная, с сохранением на диск
– Глобальная без сохранения на диск (только в оперативной памяти)
– Локальная (только в оперативной памяти)
Чтобы объяснить интерпретатору, какую именно переменную мы создаем, нужно в начале названия дописать определенный символ:
– Для локальной переменной используется символ "
– Для глобальной переменной, с сохранением на диск – никаких символов не используется
– Для глобальной переменной, без сохранения на диск, нам необходимо исправить конфиг плагина Skript по директории /plugins/Skript/config.sk
default:
type: CSV
pattern: .*
file: ./plugins/Skript/variables.csv
backup interval: 2 hours
исправить на это:
default:
type: CSV
pattern: (?!-).*
file: ./plugins/Skript/variables.csv
backup interval: 2 hours
После этого исправления – переменная не будет сохранятся на диск, если в начале ее названия есть символ "
Использование переменных
В этой части мы будем работать только с базовыми типами, которые есть во многих языках - текст, число и булевый тип (содержащий в себе только true или false)
Как присвоить значение? Для этого используется выражение: set
В дословном переводе получится что-то вроде этого: установить
Локальные переменные и текстовый тип данных
Основываясь на прошлом уроке, попробуем поместить текст ‘Hello World!’ во внутрь какой-нибудь переменной: set
Данной строкой мы поместили в локальную переменную
on load:
set {_var} to "Hello World!"
broadcast {_var}
Перезагрузим скрипт и увидим, что результат аналогичный, что и с кодом до этого.
Причем внутри кавычек мы можем использовать любое количество переменных.
on load:
set {_var} to "Hello World!"
broadcast "%{_var}%, %{_var}%"
Перезагрузив скрипт, мы должны увидеть в чате
on load:
set {_var} to "var2"
set {_%{_var}%} to "Hello World!"
broadcast "%{_%{_var}%}%, %{_var2}%"
Пояснение кода написанного выше:
Создается переменная с текстом 'var2', после чего - создается переменная, в название которой мы помещаем текстовое значение из переменной {_var} и задаем ей значение 'Hello World!', затем выводим значение {_var2} в чат (в обоих вариантах будет одно и то же)
Глобальные переменные
Теперь поговорим насчет глобальных переменных. Для демонстрации их в действии нам необходимо второе событие. Возьмем 'on break', это событие которое вызывается, когда игрок ломает блок.
on load:
set {-var} to "Hello World!"
on break:
broadcast "%{-var}%"
Так как глобальные работают во всех блоках кода – в данном коде, при загрузке, создается глобальная переменная {-var}, с текстом 'Hello World!', и при разрушении блока игроком {-var} выведется в чат.
Числовой тип данных
Вернемся к типам данных: числа в отличии от текста, пишутся без кавычек, например: set {_var} to 2
on load:
set {_var} to 64*64
broadcast "%{_var}%"
Если все верно, в чат будет выведено число 4096
На самом деле внутри % % в кавычках мы можем использовать выражения, математические операции и так далее Тоже выведет нам число 4096, но в переменной {_var} все еще будет 64, но на выводе мы перемножаем ее саму на себя.on load:
set {_var} to 64
broadcast "%{_var}*{_var}%"
add %number% to %number%
и remove %number% from %number%
Второе: делает тоже самое, но вместо увеличения - уменьшает
on load:
add 64 to {_var}
broadcast "%{_var}*{_var}%"
Результатом будет всё то же число: 4096
Булев тип данных
Булев тип занимает минимальное количество оперативной памяти, ведь сам он по себе содержит по сути true (1, истина) или false (0, ложь), и используется в основном для проверки чего-либо.
Компилятор – это программа, которая переводит текст, написанный на языке программирования, в набор машинных кодов (то есть в язык, который понимает компьютер)
Интерпретатор – программа, выполняющая интерпретацию. Интерпретация — построчный анализ, обработка и выполнение исходного кода программы или запроса.
Литерал – прямой текст, число
Идентификатор – компонент языка, выражение, переменная
Аргумент – в данном контексте – какие-то данные поступающие в функцию, выражение