Minecraft Wiki
Advertisement
Это заготовка статьи.
Вы можете помочь проекту, дополнив и оформив её.

Функции позволяют игрокам запускать список команд при использовании текстовых файлов с расширением .mcfunction.

Использование

Чтобы использовать функции, текстовые файлы должны быть помещены в папку .minecraft/saves/[мир]/data/functions/[пространство_имён]. Под пространством имён подразумевается любое название папки, которое будет использовано в команде. Если назвать папку minecraft, то использовать пространство имён в команде не обязательно.

Например, запущенная функция custom:example/test будет ссылаться на файл functions/custom/example/test.mcfunction.

Функции, находящиеся в текстовых файлах, изменяются намного легче, чем командные блоки, которые могут вызвать задержку, если используются в больших количествах. Если функция изменена или добавлена, используйте команду /reload, чтобы обновить функцию. Это позволяет игре распознавать изменения в файлах без необходимости перезаходить в мир.

После успешного выполнения функции в чате появится сообщение:"Выполнено [количество] команд функции «название функции». Успешность выполнения команд внутри функции не может быть измерена с помощью компаратора.

Синтаксис функции

В файле .mcfunction каждая команда помещается на отдельную строку без использования слеша (/). В файл можно написать комментарий, добавив # в начало комментария.

Отдельные команды в функции могут быть больше, чем 32500 символов в командном блоке, а общее количество команд будет подчинятся игровому правилу maxCommandChainLength, которое составляет 65536 команд по умолчанию; любые команды, превышающие этот лимит, будут игнорироваться.

Запуск функции

Функции будут выполнять все их команды за один такт, и функции, вызывающиеся из других функций, также будут выполнять их команды за такт, как и вызывающие их функции.

Относительные координаты запоминаются функцией, и поэтому изменение порядка команд не влияет результат их выполнения. Команда /execute обходит это ограничение.

Для примера:

tp @s ~ ~5 ~
setblock ~ ~-1 ~ emerald_block
execute @s ~ ~ ~ setblock ~ ~-1 ~ diamond_block

Выполнение этих команд внутри функции переместит игрока на 5 блоков вверх, поместив изумрудный блок на один блок ниже относительно его исходного положения и алмазный блок на один блок ниже относительно его нового положения.

Advertisement