Макросы
Если вы уже смотрели чей-то код на языке Skript то вы уже наверняка замечали такой блок как Options.
В изучаемом нами языке нету постоянных значений, называемых константами (в дословном переводе постоянная), но есть макросы.
Макросы это какие-либо записи в отведенном для этого месте, которые на моменте обработки интерпретатором будут заменены на какой-либо текст указанный программистом.
То есть это не просто какие-то постоянные значения, это целые строки кода, давайте посмотрим на применение:
options:
PI: 3.14
on load:
broadcast "PI is {@PI}"
broadcast "sin(PI) ~ %sin({@PI})%"
Мы обозначили макрос с именем PI и задали ему значение в виде 3.14 Если вам до сих пор не ясно, как это работает, то вот пояснение с примерами из жизни:
представьте, что вам дали какой-либо текст и вам необходимо по шаблону заменить какие-то слова или фрагменты текста на другой фрагмент или слово, блок options выполняет аналогичную функцию, он ищет перед моментом обработки кода выражения из блока options внутри основного кода и заменяет {@название} на значение этого параметра. Больше примеров для понимания:
options:
message: "Вы разрушили блок %event-block%"
block for pay: stone
money name: руб
money amount: 50
on break:
send {@message}
if event-block is {@block for pay}:
send "Получено {@money amount} {@money name}"
Если будет сломан любой блок, то игроку будет выведено ‘Вы разрушили блок %имя блока%’, но если сломанный блок - Stone (камень) будет еще написано, что ‘Получено 50 руб’
Вы возможно задаетесь вопросом, почему бы это все не задать в переменные?
Дело в том, что макросы, в отличии от переменных не занимают место в оперативной памяти, так как преобразуются в текст до загрузки кода в оперативную память и только после этого сам код будет работоспособен на сервере.