Пропадание блоков через 1 минуту

57
1
Сделал механику абордажного крюка. При запуске особого снежка он спавнит неподалеку блоки белой шерсти, пока не врежется. То есть получается такая белая полоса по траектории падения снежка.

Я бы хотел узнать можно ли как-то сделать так, чтобы ровно через минуту эти блоки пропадали?
Спасибо за ответ.
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
Хех)

Кроме блоков, сеттишь на каждой координате ещё и маркеры (невидимые армор стенды без гравитации/колизии/прочего, прогугли).

Потом делаешь скорбоард, в котором при спавне каждого маркера сеттишь ему значение 1200.

Отдельно у всех маркеров уменьшаешь значение скорборда на единицу каждый тик, и отдельно у тех маркеров где он дошёл до нуля сеттишь блок назад на воздух (нужно ещё проверить что там всё ещё белая шерсть, наверн) и сам маркер килляешь.

Тебе повезло, мне интересно вышеописанное сделать, так что позже (вечером) покажу команды, которые нужны чтобы вышеописанное сделать в командных блоках (уж в функции в датапаке сам переводи).

И кстати опять вопрос не по моддингу в Вопросах
 
57
1
Вот оно как. Спасибо большое, буду разбираться!

Да, извиняюсь, все время забываю, что здесь только моддинг.
 
57
1
Начал делать, понял насчет маркеров, но вот не знаю как scoreboard привязать к блоку. Одно дело к игроку, но вот как к блоку - я не знаю.
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
К маркеру, к маркеру, для того они и нужны, чтобы "к блоку" привязывать
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
сетапим скорборды (не шарю в датапаки, там же вроде была функция типа инит?)
Код:
scoreboard objectives add timers dummy
scoreboard objectives add constants dummy
scoreboard players set const_1 constants 1
Советую их попереименовывать все по контексту (вроде говорил уже), я так на скорую руку шото там ляпнул прост. Потом будущий ты скажешь спасибо прошлому.

Вот эти команды в такой последовательности выполнять каждый тик. Тут всё вроде даже простенько вышло, расписывать не буду. 200 тиков это десять секунд, меняешь на 1200 себе, а где 195 - это через пять тиков после маркера собственно сеттится блок (причём только если блока не было).
А потом на нуле сеттится воздух только если была шерсть.
Можно вообще заморочиться и сделать типа decay, то бишь на каких-то значениях тиков сеттить другие блоки, чтобы было видно что рассасывается путь, даже очень легко так сделать, кек
Код:
execute at @e[type=minecraft:snowball,nbt={Item:{tag:{SpecialBall:1b}}}] run summon minecraft:armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Tags:[line_fresh]}
scoreboard players add @e[tag=line_fresh] timers 200
tag @e[tag=line_fresh] remove line_fresh
scoreboard players operation @e[scores={timers=1..}] timers -= const_1 constants
execute at @e[scores={timers=195}] if block ~ ~ ~ minecraft:air run setblock ~ ~ ~ minecraft:white_wool
execute at @e[scores={timers=0}] if block ~ ~ ~ minecraft:white_wool run setblock ~ ~ ~ minecraft:air
kill @e[scores={timers=0}]
 
Сверху