Урок по программированию в MineTweaker 3
ссылка на мод
УРОК №1
ВВЕДЕНИЕ
В данном уроке я постараюсь рассказать о замечательном моде MineTweaker 3. Скажу сразу, что не претендую на отличное знание этого мода, т.к. сам недавно стал его изучать и в этом уроке буду рассказывать о своих познаниях путем перевода на доступный язык официальной WiKi.
С помощью MineTweaker Вы можете:
- добавить или удалить рецепт крафта;
- добавить или удалить рецепт внутри механизма (машины) с полной поддержкой модов;
- изменить словарь руд (ore dictionary).
Скрипт (сценарий)
Язык программирования в MineTweaker не так сложен и будет понятен даже тем, кто не знаком с другими языками.
Если вы собираетесь писать скрипт для многопользовательской игры (сервера), то данный скрипт должен находиться на стороне сервера. В клиент его устанавливать нет необходимости. При этом вы защитите свой скрипт от распространения и копирования.
Скрипт может быть написан как общий для всех миров, так и для каждого отдельного мира. Соответственно, применяться такой скрипт будет только к конкретному миру.
Скрипты MineTweaker могут располагаться в папках двух видов:
- Общая папка. Данная папка находится в корневом каталоге клиента или сервера Minecraft (например .minecraft/scripts или server/scripts). Скрипты расположенные в этой папке будут применяться ко всем мирам. Если скрипты установлены только в клиенте, то они не будут применены когда вы зайдете в многопользовательскую игру. В этом случае скрипты будут загружены с сервера.
- Папка для конкретного мира. Данная папка находится в директории сохраненного мира (.minecraft/saves/New World/scripts) в случае одиночной игры и (server/world/scripts) для сервера.
Внутри этих папок любой файл с расширением
.zs будет считаться скриптом MineTweaker и будет автоматически загружаться при запуске игры. Количество скриптов в этих папках может быть любое количество, все они будут загружены вне зависимости от последовательности.
Первый скрипт
Привыкнуть к системе скриптов MineTweaker мы можем на следующем простом примере. Создайте файл hello.zs в каталоге .minecraft/scripts (если этот файл отсутствует, то создайте его). Внутри этого файла напишем следующую строчку:
print("Hello world!");
Теперь запустите Minecraft и начните новую игру (либо продолжите старую).
Скрипт будет загружен и применен, но куда-же MineTweaker напечатал этот текст?
Логирование MineTweaker
Когда в скрипте вы просите MineTweaker напечатать текст, то он его печатает в файл minetweaker.log находящийся в корневой папке Minecraft. Откройте этот файл и посмотрите на результат:
INFO: Hello world!
Прикольно, да? Правда, печать тестовой строки не самое интересное занятие. В этот файл записывается вся информация об ошибках при выполнении скрипта. Кроме того, результаты многих команды в игре записываются в этот файл т.к. консоль игры не может отображать большой объем данных.
У вас все еще запущена игра? Тогда попробуйте применить следующую команду в игровой консоле (чате):
/minetweaker names
Эта команда запишет в minetweaker.log список всех элементов и предметов в игре. Если в вашей сборке установлено приличное количество модов, то данный список будет иметь внушительный размер!
Теперь откройте minetweaker.log своим любимым редактором и найдите интересующий вас предмет.
(до сих пор пользуешься блокнотом? Попробуй
Notepad++! Это гораздо удобней!)
Перезагрузка скрипта
В процессе написания или редактирования скрипта не нужно каждый раз перезагружать клиент или сервер для того, чтобы изменения вступилили в силу. Достаточно перезапустить скрипт в игре.
Измените текст своего скрипта на это:
print("Hello guys!");
Теперь в игровую консоль (чат) введите команду /minetweaker reload
В результате в файл minetweaker.log будет добавлена еще одна строка:
INFO: Hello guys!
MineTweaker с помощью команды может перезагружать и выполнять скрипты. Это очень удобно! Даже более того, перезагружается не только сам скрипт, но также и все рецепты, которые были изменены.
Подробнее об этом в следующем уроке.
Комментарии в скрипте
Для того, чтобы сделать свои пометки в коде, MineTweaker поддерживает 3 режима комментариев:
// Это однострочный комментарий
# Это однострочный комментарий
/* а это
уже многострочный
комментарий * /
Используйте их для того, что скрипт был понятным. Все, что написано после символов "//" и "#", а также то, что написано между символами "/*" и "*/" восприниматься программой не будет. Это пометки исключительно для вас.