From f3a1e2b19fdd56918d49ae589ccd92464e57152d Mon Sep 17 00:00:00 2001 From: Lapis-LJA Date: Sat, 6 Jun 2026 23:29:30 +0900 Subject: [PATCH 1/4] =?UTF-8?q?=E5=8A=B9=E6=9E=9C=E3=82=92=E5=A4=89?= =?UTF-8?q?=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../0108.vacuum_hopper/give/2.give.mcfunction | 4 +- .../trigger/1.trigger.mcfunction | 2 +- .../trigger/2.check_condition.mcfunction | 4 +- .../trigger/3.main.mcfunction | 46 ++++++++++--------- .../trigger/particle.mcfunction | 17 +++++++ .../trigger/vacuum/.mcfunction | 29 ++++++++++++ .../trigger/vacuum/tp.m.mcfunction | 8 ++++ .../0108.vacuum_hopper/vacuumable.json | 6 +++ .../artifact/click.carrot_on_a_stick.json | 1 - .../tags/functions/artifact/using_item.json | 1 + 10 files changed, 91 insertions(+), 27 deletions(-) create mode 100644 Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/particle.mcfunction create mode 100644 Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/vacuum/.mcfunction create mode 100644 Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/vacuum/tp.m.mcfunction create mode 100644 Asset/data/asset/tags/entity_types/0108.vacuum_hopper/vacuumable.json diff --git a/Asset/data/asset/functions/artifact/0108.vacuum_hopper/give/2.give.mcfunction b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/give/2.give.mcfunction index ecd25870f8..c811d72621 100644 --- a/Asset/data/asset/functions/artifact/0108.vacuum_hopper/give/2.give.mcfunction +++ b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/give/2.give.mcfunction @@ -11,7 +11,7 @@ # 神器のID (int) スプレッドシートの値を入れる data modify storage asset:artifact ID set value 108 # 神器のベースアイテム - data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick" + data modify storage asset:artifact Item set value "minecraft:ender_eye" # 神器の名前 (TextComponentString) data modify storage asset:artifact Name set value '[{"text":"バキューム・ホッパー","color":"yellow"}]' # 神器の説明文 (TextComponentString[]) @@ -23,7 +23,7 @@ # 使用回数 (int) (オプション) # data modify storage asset:artifact RemainingCount set value # 神器を発動できるスロット (string) Wikiを参照 - data modify storage asset:artifact Slot set value "auto" + data modify storage asset:artifact Slot set value "mainhand" # 神器のトリガー (string) Wikiを参照 data modify storage asset:artifact Trigger set value "onClick" # 神器の発動条件 (TextComponentString) (オプション) diff --git a/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/1.trigger.mcfunction index 581ee45b71..3a2469683e 100644 --- a/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/1.trigger.mcfunction +++ b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/1.trigger.mcfunction @@ -5,4 +5,4 @@ # @within tag/function asset:artifact/** # storage asset:context idのauto/feet/legs/chest/head/mainhand/offhandに装備している神器のIDが入っているので比較し、~/2.check_condition.mcfunctionを実行する - execute if data storage asset:context id{auto:108} run function asset:artifact/0108.vacuum_hopper/trigger/2.check_condition \ No newline at end of file + execute if data storage asset:context id{mainhand:108} run function asset:artifact/0108.vacuum_hopper/trigger/2.check_condition diff --git a/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/2.check_condition.mcfunction b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/2.check_condition.mcfunction index 4cda57424f..9fd5f78797 100644 --- a/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/2.check_condition.mcfunction +++ b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/2.check_condition.mcfunction @@ -5,8 +5,8 @@ # @within function asset:artifact/0108.vacuum_hopper/trigger/1.trigger # 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く auto/feet/legs/chest/head/mainhand/offhandを記載してね - function asset:artifact/common/check_condition/auto + function asset:artifact/common/check_condition/mainhand # 他にアイテム等確認する場合はここに書く # CanUsedタグをチェックして3.main.mcfunctionを実行する - execute if entity @s[tag=CanUsed] run function asset:artifact/0108.vacuum_hopper/trigger/3.main \ No newline at end of file + execute if entity @s[tag=CanUsed] run function asset:artifact/0108.vacuum_hopper/trigger/3.main diff --git a/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/3.main.mcfunction b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/3.main.mcfunction index 4ba6e13caa..3c75edd728 100644 --- a/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/3.main.mcfunction +++ b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/3.main.mcfunction @@ -4,28 +4,32 @@ # # @within function asset:artifact/0108.vacuum_hopper/trigger/2.check_condition +# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う auto/feet/legs/chest/head/mainhand/offhandを記載してね + function asset:artifact/common/use/mainhand + +# ここから先は神器側の効果の処理を書く + #> Private # @private - #declare tag Vacuum - #declare score_holder $Items + #declare tag SpreadMarker + #declare score_holder $Interval -# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う auto/feet/legs/chest/head/mainhand/offhandを記載してね - function asset:artifact/common/use/auto +# 音 + execute store result score $Interval Temporary run data get storage global Time + scoreboard players operation $Interval Temporary %= $3 Const + execute if score $Interval Temporary matches 0 anchored eyes positioned ^ ^1 ^1 run playsound minecraft:entity.breeze.idle_air player @a ~ ~ ~ 0.7 0.5 + scoreboard players reset $Interval Temporary -# ここから先は神器側の効果の処理を書く - playsound entity.enderman.teleport player @s ~ ~ ~ 1 2 - particle portal ~ ~ ~ 0.5 1 0.5 0 300 force @a - execute positioned ^ ^ ^10 run tag @e[type=item,tag=!Uninterferable,distance=..10] add Vacuum - execute positioned ^ ^ ^15 run tag @e[type=item,tag=!Uninterferable,distance=..10] add Vacuum - execute positioned ^ ^ ^20 run tag @e[type=item,tag=!Uninterferable,distance=..10] add Vacuum - execute positioned ^ ^ ^25 run tag @e[type=item,tag=!Uninterferable,distance=..10] add Vacuum - execute positioned ^ ^ ^30 run tag @e[type=item,tag=!Uninterferable,distance=..10] add Vacuum - execute positioned ^ ^ ^35 run tag @e[type=item,tag=!Uninterferable,distance=..10] add Vacuum - execute positioned ^ ^ ^40 run tag @e[type=item,tag=!Uninterferable,distance=..10] add Vacuum - execute at @e[tag=Vacuum] run particle portal ~ ~ ~ 0.2 0.2 0.2 0 30 force @a - tp @e[tag=Vacuum] @s - execute store result score $Items Temporary if entity @e[type=item,tag=Vacuum] - tellraw @s [{"text": "ダイソソ >> "},{"text": "[ "},{"score": {"name": "$Items","objective": "Temporary"},"color": "gold"},{"text": " ]のアイテムを回収しました"}] - execute as @e[type=item,distance=..1] run data modify entity @s PickupDelay set value 0s - scoreboard players reset $Items Temporary - tag @e[type=item,tag=Vacuum] remove Vacuum \ No newline at end of file +# パーティクル + function asset:artifact/0108.vacuum_hopper/trigger/particle + +# 円柱判定 + data modify storage lib: Argument.BoundingCone.Angle set value 40d + data modify storage lib: Argument.BoundingCone.Selector set value "@e[type=#asset:0108.vacuum_hopper/vacuumable,tag=!Uninterferable,tag=!Immovable,distance=..16]" + function lib:bounding_cone/ + +# 吸い込む + execute as @e[type=#asset:0108.vacuum_hopper/vacuumable,tag=BoundingCone,distance=..16] at @s run function asset:artifact/0108.vacuum_hopper/trigger/vacuum/ + +# リセット + tag @e[type=#asset:0108.vacuum_hopper/vacuumable,tag=BoundingCone,distance=..16] remove BoundingCone diff --git a/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/particle.mcfunction b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/particle.mcfunction new file mode 100644 index 0000000000..72239e8565 --- /dev/null +++ b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/particle.mcfunction @@ -0,0 +1,17 @@ +#> asset:artifact/0108.vacuum_hopper/trigger/particle +# +# +# +# @within function asset:artifact/0108.vacuum_hopper/trigger/3.main + +#> Private +# @private + #declare tag SpreadMarker + +# 拡散して前方から出す + execute anchored eyes positioned ^ ^-0.4 ^ run summon marker ~ ~ ~ {Tags:["SpreadMarker"]} + data modify storage lib: Argument.Distance set value 2.0 + data modify storage lib: Argument.Spread set value 2.8 + execute as @e[type=marker,tag=SpreadMarker,distance=..5,limit=1] run function lib:forward_spreader/circle + execute anchored eyes positioned ^ ^-0.4 ^ facing entity @e[type=marker,tag=SpreadMarker,distance=..5,sort=nearest,limit=1] feet positioned ^ ^ ^30 run particle cloud ~ ~ ~ ^ ^ ^-100000000 0.00000002 0 force @a[distance=..40] + kill @e[type=marker,tag=SpreadMarker,distance=..5] diff --git a/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/vacuum/.mcfunction b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/vacuum/.mcfunction new file mode 100644 index 0000000000..96f25dd119 --- /dev/null +++ b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/vacuum/.mcfunction @@ -0,0 +1,29 @@ +#> asset:artifact/0108.vacuum_hopper/trigger/vacuum/ +# +# +# +# @within function asset:artifact/0108.vacuum_hopper/trigger/3.main + +#> Private +# @private + #declare score_holder $Move + #declare score_holder $Temp + #declare score_holder $KBResist + +# 移動距離(100倍) +# Mobノックバック耐性はデフォルトで0.75くらいなので目安の4倍くらいで + scoreboard players set $Move Temporary 100 + +# 100 + scoreboard players set $Temp Temporary 100 + +# 自身のノックバック耐性で吸い込み距離を変更 + execute store result score $KBResist Temporary run attribute @s generic.knockback_resistance get 100 + scoreboard players operation $Temp Temporary -= $KBResist Temporary + execute store result storage asset:temp Args.Move double 0.0001 run scoreboard players operation $Move Temporary *= $Temp Temporary + execute unless data storage asset:temp Args{Move:0.0d} run function asset:artifact/0108.vacuum_hopper/trigger/vacuum/tp.m with storage asset:temp Args + +# リセット + scoreboard players reset $Move Temporary + scoreboard players reset $Temp Temporary + scoreboard players reset $KBResist Temporary diff --git a/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/vacuum/tp.m.mcfunction b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/vacuum/tp.m.mcfunction new file mode 100644 index 0000000000..4a91a2c581 --- /dev/null +++ b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/vacuum/tp.m.mcfunction @@ -0,0 +1,8 @@ +#> asset:artifact/0108.vacuum_hopper/trigger/vacuum/tp.m +# +# +# +# @within function asset:artifact/0108.vacuum_hopper/trigger/vacuum/ + +# 吸い込む + $execute anchored eyes facing entity @p[gamemode=!spectator,distance=..64] eyes if block ^ ^ ^1 #lib:no_collision/ anchored feet positioned ^ ^ ^ if block ^ ^0.1 ^1 #lib:no_collision/ rotated ~ ~-3 run tp @s ^ ^0.03 ^$(Move) ~ ~ diff --git a/Asset/data/asset/tags/entity_types/0108.vacuum_hopper/vacuumable.json b/Asset/data/asset/tags/entity_types/0108.vacuum_hopper/vacuumable.json new file mode 100644 index 0000000000..d32eccbab9 --- /dev/null +++ b/Asset/data/asset/tags/entity_types/0108.vacuum_hopper/vacuumable.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#lib:living_without_player", + "item" + ] +} diff --git a/Asset/data/asset/tags/functions/artifact/click.carrot_on_a_stick.json b/Asset/data/asset/tags/functions/artifact/click.carrot_on_a_stick.json index 40202c9557..e12c927dca 100644 --- a/Asset/data/asset/tags/functions/artifact/click.carrot_on_a_stick.json +++ b/Asset/data/asset/tags/functions/artifact/click.carrot_on_a_stick.json @@ -111,7 +111,6 @@ "asset:artifact/0092.golden_armor_set/trigger/1.trigger", "asset:artifact/0093.diamond_armor_set/trigger/1.trigger", "asset:artifact/0094.netherite_armor_set/trigger/1.trigger", - "asset:artifact/0108.vacuum_hopper/trigger/1.trigger", "asset:artifact/0152.call_cat/trigger/1.trigger", "asset:artifact/0158.mp_extractor/trigger/1.trigger", "asset:artifact/0162.rations/trigger/1.trigger", diff --git a/Asset/data/asset/tags/functions/artifact/using_item.json b/Asset/data/asset/tags/functions/artifact/using_item.json index 499dc901af..b3d3eac0be 100644 --- a/Asset/data/asset/tags/functions/artifact/using_item.json +++ b/Asset/data/asset/tags/functions/artifact/using_item.json @@ -1,5 +1,6 @@ { "values": [ + "asset:artifact/0108.vacuum_hopper/trigger/1.trigger", "asset:artifact/1220.sacred_hardener/trigger/1.trigger", "asset:artifact/1269.apocalypse/using_item/1.trigger", "asset:artifact/1228.fatalerror/trigger/1.trigger", From 09b37e9c373637206f2daa00dc8befca4ea896a5 Mon Sep 17 00:00:00 2001 From: Lapis-LJA Date: Sat, 6 Jun 2026 23:42:06 +0900 Subject: [PATCH 2/4] =?UTF-8?q?=E3=82=B5=E3=83=96=E3=82=B3=E3=83=9E?= =?UTF-8?q?=E3=83=B3=E3=83=89=E3=81=AA=E3=81=A9=E3=82=92=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../artifact/0108.vacuum_hopper/trigger/3.main.mcfunction | 3 +-- .../artifact/0108.vacuum_hopper/trigger/particle.mcfunction | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/3.main.mcfunction b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/3.main.mcfunction index 3c75edd728..09da6031f7 100644 --- a/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/3.main.mcfunction +++ b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/3.main.mcfunction @@ -11,7 +11,6 @@ #> Private # @private - #declare tag SpreadMarker #declare score_holder $Interval # 音 @@ -21,7 +20,7 @@ scoreboard players reset $Interval Temporary # パーティクル - function asset:artifact/0108.vacuum_hopper/trigger/particle + execute anchored eyes positioned ^ ^-0.4 ^ run function asset:artifact/0108.vacuum_hopper/trigger/particle # 円柱判定 data modify storage lib: Argument.BoundingCone.Angle set value 40d diff --git a/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/particle.mcfunction b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/particle.mcfunction index 72239e8565..d5fc2418d5 100644 --- a/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/particle.mcfunction +++ b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/particle.mcfunction @@ -9,9 +9,9 @@ #declare tag SpreadMarker # 拡散して前方から出す - execute anchored eyes positioned ^ ^-0.4 ^ run summon marker ~ ~ ~ {Tags:["SpreadMarker"]} + summon marker ~ ~ ~ {Tags:["SpreadMarker"]} data modify storage lib: Argument.Distance set value 2.0 data modify storage lib: Argument.Spread set value 2.8 execute as @e[type=marker,tag=SpreadMarker,distance=..5,limit=1] run function lib:forward_spreader/circle - execute anchored eyes positioned ^ ^-0.4 ^ facing entity @e[type=marker,tag=SpreadMarker,distance=..5,sort=nearest,limit=1] feet positioned ^ ^ ^30 run particle cloud ~ ~ ~ ^ ^ ^-100000000 0.00000002 0 force @a[distance=..40] + execute facing entity @e[type=marker,tag=SpreadMarker,distance=..5,sort=nearest,limit=1] feet positioned ^ ^ ^30 run particle cloud ~ ~ ~ ^ ^ ^-100000000 0.00000002 0 force @a[distance=..40] kill @e[type=marker,tag=SpreadMarker,distance=..5] From 7a976ccb305aef78124c9199fed402bab4ca29c4 Mon Sep 17 00:00:00 2001 From: Lapis-LJA Date: Sat, 6 Jun 2026 23:48:33 +0900 Subject: [PATCH 3/4] =?UTF-8?q?Lore=E3=82=92=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../artifact/0108.vacuum_hopper/give/2.give.mcfunction | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Asset/data/asset/functions/artifact/0108.vacuum_hopper/give/2.give.mcfunction b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/give/2.give.mcfunction index c811d72621..ddf13e34f0 100644 --- a/Asset/data/asset/functions/artifact/0108.vacuum_hopper/give/2.give.mcfunction +++ b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/give/2.give.mcfunction @@ -15,7 +15,7 @@ # 神器の名前 (TextComponentString) data modify storage asset:artifact Name set value '[{"text":"バキューム・ホッパー","color":"yellow"}]' # 神器の説明文 (TextComponentString[]) - data modify storage asset:artifact Lore set value ['[{"text":"吸引力の変わらないただ一つの掃除機。"}]','[{"text":"めんどくさがり屋のあなたへ!"}]'] + data modify storage asset:artifact Lore set value ['{"text":"前方のアイテム及び敵を吸い込む","color":"white"}','{"text":"吸引力の変わらないただ一つの掃除機。","color":"gray"}','{"text":"めんどくさがり屋のあなたへ!","color":"gray"}'] # 消費アイテム ({Item: TextComponent, Count: int, Extra?: TextComponent}) (オプション) # data modify storage asset:artifact ConsumeItem.Item set value # data modify storage asset:artifact ConsumeItem.Count set value From 0170131454d0e770cee00b75181cc05f2e9b50ce Mon Sep 17 00:00:00 2001 From: Lapis-LJA Date: Sun, 7 Jun 2026 04:30:25 +0900 Subject: [PATCH 4/4] =?UTF-8?q?=E5=90=B8=E3=81=84=E8=BE=BC=E3=81=BE?= =?UTF-8?q?=E3=82=8C=E3=82=8BMob=E3=81=8C=E3=81=93=E3=81=A3=E3=81=A1?= =?UTF-8?q?=E3=82=92=E8=A6=8B=E3=82=8B=E3=81=AE=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../artifact/0108.vacuum_hopper/trigger/vacuum/tp.m.mcfunction | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/vacuum/tp.m.mcfunction b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/vacuum/tp.m.mcfunction index 4a91a2c581..8597f1db10 100644 --- a/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/vacuum/tp.m.mcfunction +++ b/Asset/data/asset/functions/artifact/0108.vacuum_hopper/trigger/vacuum/tp.m.mcfunction @@ -5,4 +5,4 @@ # @within function asset:artifact/0108.vacuum_hopper/trigger/vacuum/ # 吸い込む - $execute anchored eyes facing entity @p[gamemode=!spectator,distance=..64] eyes if block ^ ^ ^1 #lib:no_collision/ anchored feet positioned ^ ^ ^ if block ^ ^0.1 ^1 #lib:no_collision/ rotated ~ ~-3 run tp @s ^ ^0.03 ^$(Move) ~ ~ + $execute anchored eyes facing entity @p[gamemode=!spectator,distance=..64] eyes if block ^ ^ ^1 #lib:no_collision/ anchored feet positioned ^ ^ ^ if block ^ ^0.1 ^1 #lib:no_collision/ rotated ~ ~-3 run tp @s ^ ^0.03 ^$(Move)