-
Постов
1 060 -
Зарегистрирован
-
Посещение
-
Победитель дней
12
Тип контента
Профили
Форумы
События
Весь контент Щербатый бесстыдник
-
если прям жесть как нужно именно дату проверять, то вот: execute as @a[nbt={Inventory:[{id:"minecraft:dirt",components:{"minecraft:custom_name":{text:"Локация 2"}}}]}] run tag @s add has_dirt чтобы посмотреть дату игрока пропиши data get entity @p перед этим желательно удали из игрока все достижения и рецепты, чтобы было меньше мусора
-
Моё воспитание не позволяет мне одобрять стукачество ¯\_(ツ)_/¯
-
Мысли есть, мне лень их формулировать Вообще рил бесполезный блок)
-
Где вторая часть блога?
-
чёрт, а тут рил есть зацепки
-
Философские вопросы без винтика болтика какие-то не философские))
-
теория мёртвого интернета)
-
ДОПОЛНЕНИЕ К ГАЙДУ 1.21.2+ (вы тоже дополняйте, не стесняйтесь) капееец рибята, я только что вспомнил про то что можно выдавать предметы с функцией глайдера ( iron_boots[glider={}] ) то есть фактически можно сделать какой-нибудь амулет двойного прыжка или ботинки двойного прыжка. Чтобы сделать ботинки двойного прыжка, вам необходимо построить первый механизм и сделать с ним то что написано ниже: Командный блок №6 нужно заменить этим блоком execute as @a if items entity @s armor.feet *[minecraft:custom_data={Tags:["JumpBoots_off"]}] if data entity @s {OnGround:1b} run item replace entity @s armor.feet with iron_boots[custom_name=["",{"text":"Ботинки двойного прыжка","italic":false}],glider={},enchantment_glint_override=true,minecraft:custom_data={Tags:["JumpBoots"]}] Командный блок №2 нужно заменить этим блоком execute as @a if items entity @s armor.feet *[minecraft:custom_data={Tags:["JumpBoots"]}] if data entity @s {FallFlying:1b} run item replace entity @s armor.feet with minecraft:iron_boots[custom_name=["",{"text":"Ботинки двойного прыжка","italic":false}],enchantment_glint_override=true,minecraft:custom_data={Tags:["JumpBoots_off"]}] Командный блок №1 нужно заменить этим блоком execute as @a at @s unless items entity @s armor.chest minecraft:elytra if items entity @s armor.feet *[minecraft:custom_data={Tags:["JumpBoots"]}] if data entity @s {FallFlying:1b} run summon wind_charge ~ ~-0.5 ~ {Tags:["DoubleJump"]} Командный блок №0 нужно заменить этим блоком give @a iron_boots[custom_name=["",{"text":"Ботинки двойного прыжка","italic":false}],glider={},enchantment_glint_override=true,minecraft:custom_data={Tags:["JumpBoots"]}]
-
Когда речь заходит о двойном прыжке, первым делом встают 2 вопроса -- как задетектить два нажатия пробела подряд? -- как подкинуть игрока? Ответом на первый вопрос будут элитры. Когда игрок хочет полететь на элитрах, он жмёт пробел 2 раза, мы можем это задетектить при помощи FallFlying:1b Ответом на второй вопрос являются заряды ветра. Если мы заспавним wind_charge ~ ~-0.5 ~ {Motion:[0,1,0]}, то он стрельнет игроку в жопу, тем самым его подкинет. Кто-то скажет что это костыли, но работа с mcfunction это костыльство в чистом виде, по этому брезгать подобным глупо, особенно зная что даже создатели плагинов детектят двойной прыжок точно также, но только через креативный полёт. execute as @a at @s if items entity @s armor.chest *[minecraft:custom_data={Tags:["DoubleJump_off"]}] run particle minecraft:firework ~ ~ ~ 0 0 0 0 0 КБ №7 - Чисто декоративная фигня, спавнит партиклы под ногами игрока совершающего двойной прыжок. Этот блок можно убрать execute as @a if items entity @s armor.chest *[minecraft:custom_data={Tags:["DoubleJump_off"]}] if data entity @s {OnGround:1b} if data entity @s {FallFlying:0b} run item replace entity @s armor.chest with minecraft:elytra[custom_name='["",{"text":"Прыгательные элитры","italic":false,"color":"white"}]',lore=['["",{"text":"Когда надето:","italic":false,"color":"gray"}]','["",{"text":"двойной прыжок","italic":false,"color":"blue"}]'],enchantment_glint_override=true,minecraft:custom_data={Tags:["DoubleJump"]}] КБ №6 - Определяет игрока находящегося на земле и одетого в элитры с тегом "DoubleJump_off". Выполняет замену элитр на те которые у него были изначально Замена элитр нужна для того чтобы игрок мог повторить двойной прыжок только после приземления. execute as @e[tag=DoubleJump] at @s run data modify entity @s Motion[1] set value 0.5 КБ №5 - Даёт заряду ветра дату Motion чтобы он летел вверх (в игрока) execute as @e[tag=DoubleJump] at @s run tp @s ^ ^ ^-0.3 КБ №4 - Телепортирует заряд ветра немного назад, это нужно чтобы отбросить игрока не идеально вверх, а чуть чуть вперёд, к сожалению из-за небольшого урона наносимого зарядом ветра, у меня не получилось сделать так чтобы игрок летел ровно вперёд, получилось так что его немного заносит. execute as @e[tag=DoubleJump] at @s positioned ~ ~0.5 ~ run data modify entity @s Rotation[0] set from entity @p Rotation[0] КБ №3 - Разворачивает призванный первым блоком заряд ветра в ту сторону, в которую смотрит игрок, это нужно для следующего блока. execute as @a if items entity @s armor.chest *[minecraft:custom_data={Tags:["DoubleJump"]}] if data entity @s {FallFlying:1b} run item replace entity @s armor.chest with elytra[minecraft:damage=500,custom_name='["",{"text":"Прыгательные элитры","italic":false,"color":"white"}]',lore=['["",{"text":"Когда надето:","italic":false,"color":"gray"}]','["",{"text":"двойной прыжок","italic":false,"color":"blue"}]'],enchantment_glint_override=true,minecraft:custom_data={Tags:["DoubleJump_off"]}] КБ №2 - Определяет игрока находящегося в полёте и одетого в элитры с тегом "DoubleJump". Выполняет замену его элитр на такие-же, но неработающие и с тегом "DoubleJump_off". Если удалить "minecraft:damage=500," то игрок сможет воспользоваться элитрами после подбрасывания. execute as @a at @s if items entity @s armor.chest *[minecraft:custom_data={Tags:["DoubleJump"]}] if data entity @s {FallFlying:1b} run summon wind_charge ~ ~-0.5 ~ {Tags:["DoubleJump"]} КБ №1 - Определяет игрока находящегося в полёте и одетого в элитры с тегом "DoubleJump". Выполняет спавн заряда ветра с таким-же тегом. Ещё хочу сказать, что мой способ в данном исполнении подходит больше для аркадных режимов, чем для выживания, но его можно переделать под себя. Если у вас возникнут проблемы с именем и описанием предмета, то попробуйте удалить ' из команды. Например не '["text":"123"]' а просто ["text":"123"] Механизм сделан под элитры с особым тегом, по этому "обычные" элитры работают нормально и не влияют на работу механизма. Командные блоки нужно располагать в ряд друг за другом, так как показано на картинках артёма ;) give @p minecraft:elytra[custom_name='["",{"text":"Прыгательные элитры","italic":false,"color":"white"}]',lore=['["",{"text":"Когда надето:","italic":false,"color":"gray"}]','["",{"text":"двойной прыжок","italic":false,"color":"blue"}]'],enchantment_glint_override=true,minecraft:custom_data={Tags:["DoubleJump"]}] КБ №0 - Выдаёт игроку прыгательные элитры (обычные элитры будут работать как обычные элитры) Моё исполнение двойного прыжка довольно грубое и имеет недостатки, например, у меня не получилось сделать его без помощи элитр, а ещё заряд ветра наносит игроку небольшой урон, тем самым толкает его не пойми в какую сторону, поэтому я надеюсь, что более опытные коллеги дополнят гайд, если найдут способы улучшить механизм.
-
Есть также блок структурной пустоты, если он присутствует в постройке, то при копировании, места с этим блоком не будут заполняться воздухом, а останутся такими какими были. give @p minecraft:structure_void сохраняются схематики кстати в world/generated/minecraft/название.nbt и их можно переносить между мирами
-
Для сохранения больших областей нужно использовать либо мод/плагин WorldtEdit либо структурный блок. give @p minecraft:structure_block у структурного блока есть 3 режима - чтение, запись и угол. Чтение нужно для того чтобы вставлять схематики. а запись и угол для того чтобы сохранять, но можно обойтись и без угла. Для того чтобы сохранить постройку нужно в один угол поставить блок "запись", а в противоположный угол блок "угол". В них нужно написать одно и тоже название, после чего нажать кнопку "расчёт" в блоке записи, а потом "запись"
-
Мой способ вряд ли можно назвать оптимальным решением, но я его уже придумал, по этому напишу Сперва создаём 4 маркера с тегами в том месте куда должны будут телепортироваться победители после финала игры, важно чтобы между ними было минимальное расстояние, хотя бы в 0.0001 блока. summon minecraft:marker 0 64.01 0 {Tags:["4team","wictory_counter"]} summon minecraft:marker 0 64.02 0 {Tags:["3team","wictory_counter"]} summon minecraft:marker 0 64.03 0 {Tags:["2team","wictory_counter"]} summon minecraft:marker 0 64.04 0 {Tags:["1team","wictory_counter"]} Далее записываем в маркеры скорборд от вашего счётчика побед (можно изначально в них записывать), а также присваиваем *wictory счёт 0 scoreboard players operation @e[tag=4team] score = ваш счётчик от команды 4 scoreboard players operation @e[tag=3team] score = ваш счётчик от команды 3 scoreboard players operation @e[tag=2team] score = ваш счётчик от команды 2 scoreboard players operation @e[tag=1team] score = ваш счётчик от команды 1 scoreboard players set *wictory score 0 И в конце копируем в *wictory самый большой скорборд, убиваем все маркеры чей скорборд меньше чем это значение, и либо объявляем ничью если осталось больше одного маркера, либо объявляем победу определённой команды и телепортируем победителей execute at @n[tag=4team] unless entity @n[tag=wictory_counter,distance=0.0001..] run tp @a[team=4] @s execute at @n[tag=3team] unless entity @n[tag=wictory_counter,distance=0.0001..] run tp @a[team=3] @s execute at @n[tag=2team] unless entity @n[tag=wictory_counter,distance=0.0001..] run tp @a[team=2] @s execute at @n[tag=1team] unless entity @n[tag=wictory_counter,distance=0.0001..] run tp @a[team=1] @s execute at @n[tag=wictory_counter] if entity @n[tag=wictory_counter,distance=0.0001..] run say ничья execute as @e[tag=wictory_counter] at @s if score @s score < *wictory score run kill @s execute as @e[tag=wictory_counter] at @s if score @s score > *wictory score run scoreboard players operation *wictory score = @s score
-
Рецепты делаются через датапаки (через плагины тоже можно, но я не умею), и помещаются по этому пути: server/world/datapacks/название датапака/data/снова название датапака/recipe/название рецепта.json Для генерации рецептов есть удобный сайт https://misode.github.io/recipe/ , не забывай указывать версию. На этом сайте ты можешь сгенерировать не только рецепт, но и весь датапак целиком, по этому не буду учить тебя как это делать.
