[Guide] Как пользоваться модом MineTweaker 3 (Урок 2 - Базовые рецепты)

552
Рейтинг: 0,00 0
ИСПОЛЬЗОВАНИЕ ОБОЗНАЧЕНИЯ РЕЦЕПТА

Самые основные модификации, которые можно выполнять в MineTweaker являются рецепт добавление и удаление. Там нет визуальный редактор,
только скриптовый язык, так что вы должны понять, как писать свои рецепты в виде текста.
Для того чтобы определить ее функциональность, вы должны вызывать функции. Примером функция печати, которые вы видели раньше, и которая принимает один аргумент:
print("You Text Bitch");

Это было легко.Более полезной функцией, например, является функция для добавления формы рецепта:
recipes.addShaped(recipe output, recipe contents);

Эта линия по существу означает "вызвать функцию addShaped на объекте рецептов". Объект рецепты специальный объект, который можно получить в любом месте вашего кода и содержит все функции, связанные с добавлением и удалением крафта рецепты. Обратите внимание, что только крафта рецепты управляемая рецептов объект - печь рецепты, например, управляются объекта печи (который вы узнаете о в следующих уроках) и модов машины должны все же различные методы для управления рецепты.
Теперь, как мы называем функция addShaped с надлежащими аргументов? Мы должны сказать ему, что вывод должен быть и что рецепт должен быть.
Давайте, например, рецепт железных леггинсы, что это? А вот что:
Guide Как пользоваться модом MineTweaker 3 (Урок 2 - Базовые рецепты)

Запись MineTweaker для этого рецепта является следующий:

<minecraft:iron_ingot>, <minecraft:iron_ingot>, <minecraft:iron_ingot>,
 <minecraft:iron_ingot>, null, <minecraft:iron_ingot>,
 <minecraft:iron_ingot>, null, <minecraft:iron_ingot> 


Это может выглядеть загадочно, если вы не знаете азы программирования, но принцип довольно прост. Вы можете визуализировать рецепт следующим образом:
Guide Как пользоваться модом MineTweaker 3 (Урок 2 - Базовые рецепты)
Каждый элемент в minetweaker имеет свое название - в окружении угловых скобках .
Имя элемента для железного слитка и железной леггинсы является .
А как насчет пустого места? Вы не можете просто пропустить записи - вы должны положить что-то, надо указать "пустое место".
MineTweaker имеет специальное слово для таких объектов, и это "null".
Таким образом, можно определить рецепт леггинсы со следующим кодом:
recipes.addShaped(<minecraft:iron_leggings>,
 <minecraft:iron_ingot>, <minecraft:iron_ingot>, <minecraft:iron_ingot>,
  <minecraft:iron_ingot>, null, <minecraft:iron_ingot>,
  <minecraft:iron_ingot>, null, <minecraft:iron_ingot>);



ОСНОВНЫЕ РЕЦЕПТЫ

Там нет визуального редактора, так что вы должны понять, как писать свои рецепты в виде текста.
Как маленькие введения, давайте рассмотрим рецепт палками. В ванильном Minecraft,
Чтобы сделать 4 палочки нужно взять две доски, и они должны стоять в верстаке друг над другом.
Мы хотим изменить это? Что делать, если, скажем, мы считаем более логичным: Поставить две деревянных доски
по диагонали. Изменение рецепт палочки чудесно легко. Сделать скрипт со следующим содержанием:
recipes.remove(<minecraft:stick>);
recipes.addShaped(<minecraft:stick> * 4, <minecraft:planks>, null, null, <minecraft:planks>);

Откройте новую игру (или перезагрузите скрипты, если вы уже в игре). Теперь проверьте свой рецепт палочек.
Работает? Отлично! Но теперь вы, наверное, заметили ошибку в рецепте: если вы положите березы или ели, она не работает!
Почему это не работает? Пункт "доски" имеет подразделы, отличающиеся не только название пункта, но и его значения.
По умолчанию, если вы извлекаете элемент с синтаксисом кронштейна, MineTweaker предполагает, что вы хотите деталь с значением 0.
Но мы хотим, ингредиент, который по существу означает "любой вид дерева".
К счастью, это легко исправить. При использовании синтаксиса кронштейн, помимо имени, мы также можем определить мета значение.
Например, относится к еловой древесины. Мы можем также использовать специальный символ (*),
чтобы получить элемент означающий "доски любого сорта": .
Таким образом, измените свой рецепт и перезагрузите скрипты:
recipes.remove(<minecraft:stick>);
recipes.addShaped(<minecraft:stick> * 4, <minecraft:planks:*>, null, null, <minecraft:planks:*>);

PROFIT!


УДЕЛЬНОЕ УДАЛЕНИЕ РЕЦЕПТА

Таким способом можно удалить один предмет:
recipes.removeShaped(<minecraft:stick>, <minecraft:planks:*>, <minecraft:planks:*>);

Это позволит удалить только один рецепт - даже если есть другие рецепты.
Кроме того, можно удалить все рецепты, которые сформированы, или все рецепты, которые бесформенные, простым вызовом:
recipes.removeShaped(<minecraft:stick>);
recipes.removeShapeless(<minecraft:stick>);

Кроме того, модели с масками могут быть использованы, чтобы указать, что любой вид элемента на определенную должность:
recipes.removeShaped(<minecraft:stick>, <*>, <*>);

Кроме того, при удалении бесформенных рецептов, можно указать только один или несколько ингредиентов бесформенных рецептов,
а затем сказать MineTweaker`у, что оставшаяся часть рецепта может содержать все что угодно:
recipes.removeShapeless(<minecraft:wool:*>, <minecraft:wool>); // removes all wool coloring recipes



ПОДПУНКТЫ И ЗНАЧЕНИЕ УЩЕРБА

Довольно часто, детали имеют несколько подпунктов. Очень хорошо известным примером являются уголь и уголь.
Оба имеют одинаковый ID (Minecraft:coal), но имеют различные значение.
При загрузке элемент, вы можете указать мета значение для подпункта:
var coal = <minecraft:coal:0>; // same as <minecraft:coal>
var charcoal = <minecraft:coal:1>;

Когда подпункт не указан,: 0 заполняется для подпункта.
Если вы хотите, чтобы рецепт соответствовал любому подпункту, вы можете использовать групповой синтаксис:
var anyCoal = <minecraft:coal:*>;

Многие виды элементов также могут быть повреждены.
При использовании такого пункта, как ингредиент для рецепта, по умолчанию, никаких повреждений не допускается. Например:
var pick = <minecraft:stone_pickaxe>;
var iron = <minecraft:iron_ingot>;
// upgrade pick recipe :)
recipes.addRecipe(<minecraft:iron_pickaxe>, iron, iron, iron, null, pick, null);

В приведенном выше рецепте, повреждена кирка,а нам этого не хочется. Это может быть легко изменено с anyDamage() модификатора:
var pick = <minecraft:stone_pickaxe>.anyDamage();
var iron = <minecraft:iron_ingot>;
// upgrade pick recipe :)
recipes.addShaped(<minecraft:iron_pickaxe>, iron, iron, iron, null, pick, null);



ПЕРЕЗАГРУЗКА И РЕЦЕПТЫ

При перезагрузке сценария, вы могли заметить, что если вы перегрузили сценарий, рецепт не дублируется.
Аналогичным образом, если рецепт дополнительно удаляется из сценария и сценарий перезагружается, рецепт эффективно удаляется из игры.
MineTweaker помнит такие действия, как рецепты добавляются и удаляются.
Когда скрипт перезагружается (или загружается, присоединившись к другому серверу),
MineTweaker сначала отменит все записанные изменения, внесенные перед выполнением нового сценария.
Многие мод машины, однако, не поддерживают такое вытворение. Для сервера, это означает, что рецепт будет застревать в списке, пока сервер не будет перезагружен; для клиента,
это означает, что рецепт будет показывать и принять соответствующие меры, как если бы она существовала.
Там нет исправление к такому поведению; это до соответствующих мод авторов для обеспечения достаточного API для того, чтобы удалить
рецепт можно было. Так что если что-то не получится не вините Элиана.


ИСПОЛЬЗОВАНИЕ ПЕРЕМЕННЫХ

В этом примере переменная может быть использована к:
var stick = <minecraft:stick>;
var planks = <minecraft:planks:*>;
recipes.remove(stick);
recipes.addShaped(stick * 4, planks, null, null, planks);


Разница между var и val в том, что val не может быть изменен после того, как заявил:

val stick = <minecraft:stick>;
stick = <minecraft:bread>; // fails


----------------------------------------------------------------------------------------------------------------------------
СТАТЬЯ ПРО МОД: *НАЖМИ*
----------------------------------------------------------------------------------------------------------------------------

Ну, а на этом все. Надеюсь оцените мой труд, переводил и писал все 3 часа.
Всем удачи и пока, ждите новых уроков!

Похожие моды:

Комментарии