0コメント

金塊に回転パーティクルかけて色変化させて消滅させるfunctionが書きたかった

失敗作です。色変化グラデーションは設定してないのですが。載せてみますので改善策があれば是非宜しくお願いします。

流れとしてはgoldtimeをtick毎加算→アーマースタンド召喚→goldtime合算→18で割った余りでアマスタの方向を変える→パーティクル表示→キル

scoreboard objectives add goldtime dummy
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}}] run scoreboard players add @s goldtime 1

execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s run summon armor_stand ~ ~ ~ {Silent:1b,Invulnerable:1b,Invisible:0b,NoBasePlate:1b,Health:1f,Tags:["gold"]}
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s run scoreboard players operation @e[tag=gold,sort=nearest,limit=1] goldtime = @s goldtime
scoreboard objectives add s18 dummy
scoreboard players set s18 s18 18
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] run scoreboard players operation @s goldtime = @e[nbt={Item:{id:"minecraft:gold_nugget"}},sort=nearest,limit=1] goldtime
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] run scoreboard players operation @s goldtime %= s18 s18
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] if score @s goldtime matches 0 at @s run tp @s ~ ~ ~ 0 0
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] if score @s goldtime matches 1 at @s run tp @s ~ ~ ~ 20 0
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] if score @s goldtime matches 2 at @s rotated 40 0 run tp @s ~ ~ ~ ~ ~
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] if score @s goldtime matches 3 at @s run tp @s ~ ~ ~ 60 0
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] if score @s goldtime matches 4 at @s run tp @s ~ ~ ~ 80 0
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] if score @s goldtime matches 5 at @s run tp @s ~ ~ ~ 100 0
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] if score @s goldtime matches 6 at @s run tp @s ~ ~ ~ 120 0
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] if score @s goldtime matches 7 at @s run tp @s ~ ~ ~ 140 0
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] if score @s goldtime matches 8 at @s run tp @s ~ ~ ~ 160 0
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] if score @s goldtime matches 9 at @s run tp @s ~ ~ ~ 180 0
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] if score @s goldtime matches 10 at @s run tp @s ~ ~ ~ 200 0
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] if score @s goldtime matches 11 at @s run tp @s ~ ~ ~ 220 0
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] if score @s goldtime matches 12 at @s run tp @s ~ ~ ~ 240 0
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] if score @s goldtime matches 13 at @s run tp @s ~ ~ ~ 260 0
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] if score @s goldtime matches 14 at @s run tp @s ~ ~ ~ 280 0
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] if score @s goldtime matches 15 at @s run tp @s ~ ~ ~ 300 0
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] if score @s goldtime matches 16 at @s run tp @s ~ ~ ~ 320 0
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] if score @s goldtime matches 17 at @s run tp @s ~ ~ ~ 340 0
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] positioned ^ ^0.5 ^1 run particle minecraft:dust 1 1 1 1 ~ ~ ~ 0 0 0 1 2 force
execute as @e[nbt={Item:{id:"minecraft:gold_nugget"}},scores={goldtime=1..}] at @s as @e[tag=gold,sort=nearest,limit=1] run kill @s

問題点は、「アーマースタンドが回らない」という事です。理想的な値は所持しているものの、回転してくれず一点でパーティクルを表示させ続ける。
1スコアにつき20°回転させ、0-17の18回で360°回転させる仕組みです。

有識者~!!
0

この記事へのコメント