И так. О чем я буду говорить, я уже писал в шапке. Для начала скажу, что в том коде, что мы будем писать, очень легко запутаться, так что будьте осторожны. Теперь о самом механизме. Существует два типа его постройки:
С подобием верстака и при помощи выкидывания предметов на землю. Вы скажете, но ведь проще просто кидать предметы, чем их крафтить. Да, это действительно проще со стороны юзера, но со стороны создателя механизм с "Верстаком" выйдет в два, а то и в три раза компактнее, чем механизм с выбрасыванием. Ну, пожалуй, это все, о чем хотел сказать в начале. Приступим к самому механизму.
Начнем, пожалуй, с первого способа
Если вы начинающий редстоунер, то советую пользоваться им, так-как в нем сложно запутаться, в отличии от второго.
Сейчас расскажу о способе, работающем на принципе выбрасывания предметов в одно место.
Я буду делать так, чтобы при крафте появлялись частички. Вы можете делать без этого.Приступим.
1. Расставляем командные блоки как на скриншоте:2. Вписываем команды:
/scoreboard players set @e[type=Item] A 1 {Item:{id:minecraft:stone,Count:2b},OnGround:1b}
Разберем тэги:
type - Тип сущности @e
id - ID предмета, которому будет выдано одно очко A
Count - Количество проверяемого предмета
OnGround - Проверяет, лежит ли предмет на земле. (0 - нет, 1 - да)
execute @e[score_A=1] ~ ~ ~ /scoreboard players set @e[dx=0,dy=0,dz=0] A 2 {Item:{id:minecraft:stick,Count:1b},OnGround:1b}
Разберем тэги:
score_A - Тег, проверяющий наличие у предмета @e одного очка A.
dx,dz,dy - Смещение координат по блокам (Более точный параметр, по сравнению с r - radius)
/execute @e[score_A=2] ~ ~ ~ /summon Item ~ ~ ~ {Item:{id:minecraft:stone_sword,Damage:110s,Count:1b,tag:{ench:[{id:6,lvl:5}]}}}
Эта команда отвечает за то, что мы получим в итоге
Разберем тэги:
Damage - На сколько будет поломан предмет (так-же обозначает доп.id)
tag - Дополнительные тэги
ench - Зачарование
id:6 - Зачарованние на Шипы
lvl:5 - Уровень зачароваия
В итоге мы получим почти сломанный меч, зачарованный на шипы 5
Для красивого спавна перед Item можно добавить: Motion:[0.0,0.3,0.0] - Предмет подпрыгнет на 0.3 блока вверх
/particle happyVillager ~ ~0.3 ~ 0.3 0.1 0.3 0.1 20
Просто спавним зеленые частички возле предмета с двумя очками A (т.е. возле палочки)
/execute @e[score_A=2] ~ ~ ~ /kill @e[type=Item,score_A_min=1]
Ну, тут думаю все понятно. Тем более, все тэги я объяснил выше.
/scoreboard players reset @e[score_A_min=1] A
Обнуляет задачу A для ее предметов.
Все. Теперь нам останется просто запитать нашу конструкцию и готово!И так. Приступим ко второму, более сложному способу создания своего крафта.
Но! Его сложность себя окупает. Он занимает всего два командных блока.
Для начала нам понадобится сделать сам верстак. Он основан на раздатчике в котором стоит армор стенд.
Для его создания можно использовать и команды в чате, но я покажу пример на командных блоках. Также покажу, как сделать так, чтобы его смогли сделать игроки.1. Расставляем командные блоки как на скриншоте:2. Заполняем блоки командами:
/scoreboard players set @e[type=Item] A 1 {Item:{id:minecraft:crafting_table,Count:1b},OnGround:1b}
Устанавливаем верстаку критерий A на 1. Все тэги объяснял выше.
execute @e[score_A=1] ~ ~ ~ detect ~ ~-0.01 ~ minecraft:dispenser -1 /setblock ~ ~-1 ~ dispenser 0 replace {customName:Верстак}}
CustomName - Имя верстака
Тут мы проверяем, стоит-ли под верстаком раздатчик, если да, то заменяем его на "Верстак"
/execute @e[score_Craft=1] ~ ~ ~ detect ~ ~-0.01 ~ minecraft:dispenser -1 /summon ArmorStand ~ ~-1 ~ {customName:Craft,Invisible:1b,NoBasePlate:1b,NoGravity:1b,DisabledSlots:2039583}}Чтобы создать стенд я использовал генератор.CustomName - Имя стенда
Invisible - Видим ли стенд (1 - нет, 0 - да)
NoBasePlate - Отключить ли плиту под стендом
NoGravity - Отключить ли гравитацию стенду
DisbledSlots - Отключенные слоты
/kill @e[score_A=1]
Убиваем наш верстак
Все. создание верстака готово. Перейдем к самим крафтам.~~~~~~~~~Расставляем блоки и записываем в них команды:
execute @e[name=Craft] ~ ~ ~ testforblock ~ ~ ~ dispenser 0 {customName:Верстак,Items:[0:{Slot:4b,id:minecraft:blaze_powder,Count:1b},1:{Slot:1b,id:minecraft:ghast_tear,Count:1b}]}}
Итого у нас вышло: Если мы положим в верхний центральный слот слезу гаста а в центральный слот порошок блейза, то командный блок выдаст сигнал.
Чтобы добавить предмет добавляете следующий код:
1:{Slot:1b,id:minecraft:ghast_tear,Count:1b}
1 - Порядковый номер предмета.
Slot - Слот, в котором лежит предмет. Расположение слотов:
0 1 2
3 4 5
6 7 8
Count - Кол-во предмета
execute @e[name=Craft] ~ ~ ~ blockdata ~ ~ ~ {Items:[{Slot:4b,Count:2b,id:minecraft:snowball}]}
Что получилось: Если сигнал поступит на блок ,то в 4 слоте (то есть в центре) появится два снежка. Чтобы добавить зачарование предмету используйте: tag:{ench:[{id:0,lvl:0}]}
Примечания: Синий командный блок - Цикличный, Зеленый - Цепной. Командный блок с выгнутой стрелочкой сбоку - Условный, С ровной - Безусловный. Чтобы активировать механизм - Поставьте над всеми командными блоками редстоун блоки.Если механизм не работает, попробуйте ре-активировать его. Если и это не поможет, пишите мне.Все. Я закончил пояснение второго способа.Плюсам в репу буду рад! :)Оценивайте новость, дамы и господа