Можно ли сделать при помощи датапака яйцо, которое будет оставлять за собой блоки?

57
1
Можно ли создать яйцо с некоторым тегом, которое будет оставлять по линии падения белую шерсть? Если да, то как?
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
которое будет оставлять по линии падения белую шерсть?
Можно подробнее, что это вообще должно значить?

Если предположить, что ты хочешь специальное яйцо, которое в полёте будет спавнить итемы/сеттить блоки, то можно.
У энтити яйца есть NBT-тег Item, который описывает предмет, с которого его запустили, то бишь можно сделать что-то вида

execute at @e[type=minecraft:egg,nbt={Item:{tag:{SpecialEgg:1b}}}] run setblock ~ ~ ~ minecraft:white_wool

Тогда яйца с NBT {SpecialEgg:1b} будут сеттить блоки шерсти, если вышеописанное сунуть в синий коммандблок или в tick-функцию датапака.

edit: Ок, яйцо сеттит блок и тут же в него врезается, лол, надо что-то похитрее сделать, но общая идея вот
edit2: ну если просто втупую сделать координаты ~ ~1 ~ то работает красивенько, правда всё ещё не ясно, то ли это чего ты вообще хотел, кек
 
Последнее редактирование:
57
1
Спасибо большое за ответ.
Попробую объяснить получше. Делаю механику абордажа и абордажного крюка. Хочу сделать некоторое яйцо, которое будет работать как абордажный крюк. Хочу сделать так, чтобы игрок кидал это самое яйцо и прямо за ним появлялись блоки. То есть прямо по траектории падения яйца
 
57
1
хотя даже и не знаю можно ли такое сделать. Просто если можно как-то узнать координаты, по которым летит яйцо, то можно по ним же ставить блоки
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
Так в том моём первом сообщении я сделал практически то, что тебе надо, единственная проблема в том что если прямо на месте яйца ставить блок, то яйцо тут же в него врезается.
И яйцо только специальное (c NBT тегом), на обычные команда не влияет

Я сделал просто на блок выше и получаются почти красивые линии из блоков, для того чтобы по ним пробежать - достаточно

Надо только решить как сделать без костыля (ну и плюс оно просто на блок выше спавнится, над головой, неудобно), можно заморочиться и спавнить невидимые армор-стенды, а потом когда яйцо пролетело дальше, на месте тех стендов ставить уже блоки, но это очевидно больше одной команды займёт)
 
57
1
Так в том моём первом сообщении я сделал практически то, что тебе надо, единственная проблема в том что если прямо на месте яйца ставить блок, то яйцо тут же в него врезается.
И яйцо только специальное (c NBT тегом), на обычные команда не влияет

Я сделал просто на блок выше и получаются почти красивые линии из блоков, для того чтобы по ним пробежать - достаточно

Надо только решить как сделать без костыля (ну и плюс оно просто на блок выше спавнится, над головой, неудобно), можно заморочиться и спавнить невидимые армор-стенды, а потом когда яйцо пролетело дальше, на месте тех стендов ставить уже блоки, но это очевидно больше одной команды займёт)
Привет, снова я. Немного не понимаю как работают NBT теги. То есть понимаю что это такое, но не понимаю как его изменить. То есть в твоей команде что такое SpecialEgg? Это какое-то название яйца? Пробовал менять название яйцу на "SpecialEgg", но ничего не происходило. И не понимаю почему 1b, вроде это тип данных, но почему именно такой?

Если не трудно, ответь пожалуйста
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
NBT это формат хранения данных, в командах можно ставить и проверять любой NBT вообще.
Я в команде проверяю, что у сущности яйца есть тег Item, которым в яйце полностью описывается стек, из которого его запустили (не только у яйца такое есть, у любых бросаемых/стреляемых штук).

У итемов NBT структура состоит из id (строковое айди, типа minecraft:egg), Count (кол-во итемов в стеке, в яйце вроде всегда 1) и tag - дополнительный NBT объект, в котором можно хранить всё что угодно - игра в определенных (гуглибельных) структурах хранит там кастомное имя, энчанты, всякие дополнительные теги (типа что этим итемом можно ломать эти блоки в adventure режиме или там что предмет неломаемый).

В моём случае я проверяю что там есть значение SpecialEgg и оно равно 1 (и тип значения байт, он же булеан если мы только 1 и 0 используем).

Крч, tl;dr, просто сделай /give @s minecraft:egg{SpecialEgg:1b} )

Ну и в принципе SpecialEgg можно поменять на другой текст, чтобы тебе через месяц было понятно, шо оно такое было, и вообще использовать любую другую структуру, типа спец названия или энчанта к примеру)

Это ответ на вопрос почему SpecialEgg и почему 1b - потому что захотел 🤷‍♂️
Надо как-то отличать спец-яйца от обычных и у ключа должно быть значение.

Кстати, можно по идее спавнить свой minecraft:egg у которого в нбт будет Item какой-то другой (типа что-то с текстурой крюка) и оно юудет отображать его, а не яйцо, это как с энтити падающего песка по идее
 
Сверху