The_Toffix Опубликовано 19 мая, 2025 Поделиться Опубликовано 19 мая, 2025 Версия 1.20.1, строю карту, есть функциональные блоки, хочу чтобы над каждым таким блоком спавнились определенные частицы. Подскажите пожалуйста команду для командного блока как это сделать. Ссылка на комментарий Поделиться на другие сайты Поделиться
PhoenixTechu Опубликовано 19 мая, 2025 Поделиться Опубликовано 19 мая, 2025 что за функциональные блоки? Ссылка на комментарий Поделиться на другие сайты Поделиться
Щербатый бесстыдник Опубликовано 19 мая, 2025 Поделиться Опубликовано 19 мая, 2025 (изменено) Я вижу один способ: Поместить внутрь блока сущность и спавнить частицы от неё. Для этого нужно задетектить установку блока. Для этого я создаю скорборд который будет прибавлять значение каждый раз когда игрок будет ставить белую шерсть. /scoreboard objectives add UsedWool minecraft.used:minecraft.white_wool (прописать 1 раз в чат) /scoreboard objectives setdisplay sidebar UsedWood (не обязательно, но для наглядности можешь прописать и это) /scoreboard objectives setdisplay sidebar (чтобы отменить предыдущую шнягу) Дальше я проверяю если ли значение в скорборде игрока и если есть, спавню шалкеров по направлению взгляда игрока. К сожалению я не знаю как определить точный блок куда нужно поставить шалкера, так-что придётся заспавнить одновременно 6 шалкеров в ряд по направлению взгляда игрока. Для этого нужно 6 раз написать в КБ одну и туже команду с одной лишь изменённой координатой. В самом конце нужно поставить КБ который будет отчищать скорборд от значения которое туда прибавилось после того как игрок поставил блок: execute as @a[scores={UsedWood=1..}] at @s run summon minecraft:shulker ^ ^1.6 ^1 {Invulnerable:1b,NoAI:1b,Tags:["Particle"],active_effects:[{id:invisibility,duration:-1,show_particles:0b},{id:glowing,duration:-1,show_particles:0b}]} (Цикличный, всегда активный, стрелка на следующий КБ) execute as @a[scores={UsedWood=1..}] at @s run summon minecraft:shulker ^ ^1.6 ^2 {Invulnerable:1b,NoAI:1b,Tags:["Particle"],active_effects:[{id:invisibility,duration:-1,show_particles:0b},{id:glowing,duration:-1,show_particles:0b}]} (Цепной, всегда активный, стрелка в сторону от предыдущего КБ) execute as @a[scores={UsedWood=1..}] at @s run summon minecraft:shulker ^ ^1.6 ^3 {Invulnerable:1b,NoAI:1b,Tags:["Particle"],active_effects:[{id:invisibility,duration:-1,show_particles:0b},{id:glowing,duration:-1,show_particles:0b}]} (Цепной, всегда активный, ВСЕ стрелки в одну сторону) execute as @a[scores={UsedWood=1..}] at @s run summon minecraft:shulker ^ ^1.6 ^4 {Invulnerable:1b,NoAI:1b,Tags:["Particle"],active_effects:[{id:invisibility,duration:-1,show_particles:0b},{id:glowing,duration:-1,show_particles:0b}]} (Цепной, всегда активный, стрелки) execute as @a[scores={UsedWood=1..}] at @s run summon minecraft:shulker ^ ^1.6 ^5 {Invulnerable:1b,NoAI:1b,Tags:["Particle"],active_effects:[{id:invisibility,duration:-1,show_particles:0b},{id:glowing,duration:-1,show_particles:0b}]} (Цепной, всегда активный, стрелки) execute as @a[scores={UsedWood=1..}] at @s run summon minecraft:shulker ^ ^1.6 ^6 {Invulnerable:1b,NoAI:1b,Tags:["Particle"],active_effects:[{id:invisibility,duration:-1,show_particles:0b},{id:glowing,duration:-1,show_particles:0b}]} (Цепной, всегда активный, стрелки) execute as @a[scores={UsedWood=1..}] at @s run scoreboard players set @s UsedWood 0 (Цепной, всегда активный, УСЛОВНЫЙ) после этого нужно поставить КБ который будет проверять находятся ли шалкер в блоке белой шерсти и если находится то он будет спавнить партиклы execute as @e[tag=Particle] at @s if block ~ ~ ~ minecraft:white_wool run particle minecraft:block white_wool ~ ~ ~ 0.3 0.3 0.3 0.1 20 normal (Цикличный, всегда активный) дальше делай ещё один блок который будет искать лишних шалкеров (только 1 из шести шалкеров нам нужен) и когда найдёт убьёт их. execute as @e[tag=Particle] at @s unless block ~ ~ ~ minecraft:white_wool run tp @s ~ ~-500 ~ (Цикличный, всегда активный) таким образом когда игрок ставит блок белой шерсти механизм это видит и спавнит по направлению его взгляда линию из шалкеров, лишние шалкеры тут-же умирают и остаётся только тот который находится внутри нужного блока. Рядом с этим шалкером мы и спавним партиклы. Если не нравится свечение шалкера замени duration:-1 на duration:1. Шалкера я кстати выбрал только потому-что он размером ровно в 1 блок и стоит идеально по центру. И рас уж пошла такая пляска то можно ещё проверять находятся ли игрок рядом с этим чудо-блоком и делать с ним всякие приколы: execute as @e[tag=Particle] at @s run execute as @a[distance=..10] at @s run title @s actionbar "вы в области функционального блока" (если игрок находится рядом с блоком, ему пишет сообщение) execute as @e[tag=Particle] at @s unless entity @a[distance=..10] run fill ~ ~ ~ ~ ~ ~ minecraft:red_wool (Если игрок отошёл на 10 блоков, то блок заменяется на красный, типа дизактивация) execute as @e[tag=Particle] at @s run execute as @a[distance=..10] at @s run effect give @s minecraft:regeneration 1 1 true (Даёт эффект пока игрок рядом с блоком) Если хочешь сделать окружность из партиклов вокруг функционального блока чтобы разметить границу его области например то делай вот так: execute as @e[tag=Particle] at @s if block ~ ~ ~ minecraft:white_wool run particle block_marker barrier ^ ^0.5 ^10 0 0 0 0.1 1 normal (цикл, активный) execute as @e[tag=Particle] at @s if block ~ ~ ~ minecraft:white_wool run tp @s ~ ~ ~ ~22.5 ~ (цикл, активный) Я это делал на версии 1.21 но насколько я помню эти команды не менялись. Если будут не работать то не парься, пиши, разберёмся)) Изменено 21 мая, 2025 пользователем Sench_mp4 партиклы поменял 👌, эффекты вроде робят PhoenixTechu 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
PhoenixTechu Опубликовано 20 мая, 2025 Поделиться Опубликовано 20 мая, 2025 20 часов назад, Sench_mp4 сказал: Я вижу один способ: Поместить внутрь блока сущность и спавнить частицы от неё. Для этого нужно задетектить установку блока. Для этого я создаю скорборд который будет прибавлять значение каждый раз когда игрок будет ставить белую шерсть. /scoreboard objectives add UsedWool minecraft.used:minecraft.white_wool (прописать 1 раз в чат) /scoreboard objectives setdisplay sidebar UsedWood (не обязательно, но для наглядности можешь прописать и это) /scoreboard objectives setdisplay sidebar (чтобы отменить предыдущую шнягу) Дальше я проверяю если ли значение в скорборде игрока и если есть, спавню шалкеров по направлению взгляда игрока. К сожалению я не знаю как определить точный блок куда нужно поставить шалкера, так-что придётся заспавнить одновременно 6 шалкеров в ряд по направлению взгляда игрока. Для этого нужно 6 раз написать в КБ одну и туже команду с одной лишь изменённой координатой. В самом конце нужно поставить КБ который будет отчищать скорборд от значения которое туда прибавилось после того как игрок поставил блок: execute as @a[scores={UsedWood=1..}] at @s run summon minecraft:shulker ^ ^1.6 ^1 {Invulnerable:1b,NoAI:1b,Tags:["Particle"],active_effects:[{id:invisibility,duration:-1,show_particles:0b},{id:glowing,duration:-1,show_particles:0b}]} (Цикличный, всегда активный, стрелка на следующий КБ) execute as @a[scores={UsedWood=1..}] at @s run summon minecraft:shulker ^ ^1.6 ^2 {Invulnerable:1b,NoAI:1b,Tags:["Particle"],active_effects:[{id:invisibility,duration:-1,show_particles:0b},{id:glowing,duration:-1,show_particles:0b}]} (Цепной, всегда активный, стрелка в сторону от предыдущего КБ) execute as @a[scores={UsedWood=1..}] at @s run summon minecraft:shulker ^ ^1.6 ^3 {Invulnerable:1b,NoAI:1b,Tags:["Particle"],active_effects:[{id:invisibility,duration:-1,show_particles:0b},{id:glowing,duration:-1,show_particles:0b}]} (Цепной, всегда активный, ВСЕ стрелки в одну сторону) execute as @a[scores={UsedWood=1..}] at @s run summon minecraft:shulker ^ ^1.6 ^4 {Invulnerable:1b,NoAI:1b,Tags:["Particle"],active_effects:[{id:invisibility,duration:-1,show_particles:0b},{id:glowing,duration:-1,show_particles:0b}]} (Цепной, всегда активный, стрелки) execute as @a[scores={UsedWood=1..}] at @s run summon minecraft:shulker ^ ^1.6 ^5 {Invulnerable:1b,NoAI:1b,Tags:["Particle"],active_effects:[{id:invisibility,duration:-1,show_particles:0b},{id:glowing,duration:-1,show_particles:0b}]} (Цепной, всегда активный, стрелки) execute as @a[scores={UsedWood=1..}] at @s run summon minecraft:shulker ^ ^1.6 ^6 {Invulnerable:1b,NoAI:1b,Tags:["Particle"],active_effects:[{id:invisibility,duration:-1,show_particles:0b},{id:glowing,duration:-1,show_particles:0b}]} (Цепной, всегда активный, стрелки) execute as @a[scores={UsedWood=1..}] at @s run scoreboard players set @s UsedWood 0 (Цепной, всегда активный, УСЛОВНЫЙ) после этого нужно поставить КБ который будет проверять находятся ли шалкер в блоке белой шерсти и если находится то он будет спавнить партиклы execute as @e[tag=Particle] at @s if block ~ ~ ~ minecraft:white_wool run particle block{block_state:{Name:white_wool}} ~ ~ ~ 0.3 0.3 0.3 0.1 20 normal (Цикличный, всегда активный) дальше делай ещё один блок который будет искать лишних шалкеров (только 1 из шести шалкеров нам нужен) и когда найдёт убьёт их. execute as @e[tag=Particle] at @s unless block ~ ~ ~ minecraft:white_wool run tp @s ~ ~-500 ~ (Цикличный, всегда активный) таким образом когда игрок ставит блок белой шерсти механизм это видит и спавнит по направлению его взгляда линию из шалкеров, лишние шалкеры тут-же умирают и остаётся только тот который находится внутри нужного блока. Рядом с этим шалкером мы и спавним партиклы. Если не нравится свечение шалкера замени duration:-1 на duration:1. Шалкера я кстати выбрал только потому-что он размером ровно в 1 блок и стоит идеально по центру. И рас уж пошла такая пляска то можно ещё проверять находятся ли игрок рядом с этим чудо-блоком и делать с ним всякие приколы: execute as @e[tag=Particle] at @s run execute as @a[distance=..10] at @s run title @s actionbar "вы в области функционального блока" (если игрок находится рядом с блоком, ему пишет сообщение) execute as @e[tag=Particle] at @s unless entity @a[distance=..10] run fill ~ ~ ~ ~ ~ ~ minecraft:red_wool (Если игрок отошёл на 10 блоков, то блок заменяется на красный, типа дизактивация) execute as @e[tag=Particle] at @s run execute as @a[distance=..5] at @s run effect give @s minecraft:regeneration 1 1 (Даёт эффект пока игрок рядом с блоком) Если хочешь сделать окружность из партиклов вокруг функционального блока чтобы разметить границу его области например то делай вот так: execute as @e[tag=Particle] at @s if block ~ ~ ~ minecraft:white_wool run particle block_marker{block_state:{Name:barrier}} ^ ^0.5 ^10 0 0 0 0.1 1 normal (цикл, активный) execute as @e[tag=Particle] at @s if block ~ ~ ~ minecraft:white_wool run tp @s ~ ~ ~ ~22.5 ~ (цикл, активный) Я это делал на версии 1.21 но насколько я помню эти команды не менялись. Если будут не работать то не парься, пиши, разберёмся)) частицы и эффекты по другому прописываются 1.20.1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
В теме 4 сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти