From 8de421b79c1b0438503c2a58b80ee6e2856d44c4 Mon Sep 17 00:00:00 2001 From: RandomFridge Date: Sun, 11 Oct 2026 13:31:45 +0200 Subject: [PATCH 1/9] =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E3=81=AEArtifact?= =?UTF-8?q?=E3=81=A8Effect=E3=82=92=E4=BD=9C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../give/1.trigger.mcfunction | 7 ++ .../1643.jet_booster/give/2.give.mcfunction | 68 +++++++++++++++++++ .../1643.jet_booster/register.mcfunction | 7 ++ .../trigger/1.trigger.mcfunction | 8 +++ .../trigger/2.check_condition.mcfunction | 16 +++++ .../trigger/3.main.mcfunction | 14 ++++ .../effect/0408.fueling/_/end.mcfunction | 7 ++ .../effect/0408.fueling/_/register.mcfunction | 7 ++ .../effect/0408.fueling/_/tick.mcfunction | 7 ++ .../effect/0408.fueling/end/.mcfunction | 36 ++++++++++ .../effect/0408.fueling/register.mcfunction | 41 +++++++++++ .../effect/0408.fueling/tick/.mcfunction | 33 +++++++++ .../0408.fueling/tick/countdown.mcfunction | 11 +++ .../artifact/click.carrot_on_a_stick.json | 3 +- .../asset/tags/functions/artifact/give.json | 3 +- .../tags/functions/artifact/register.json | 3 +- .../data/asset/tags/functions/effect/end.json | 3 +- .../asset/tags/functions/effect/register.json | 3 +- .../asset/tags/functions/effect/tick.json | 3 +- 19 files changed, 274 insertions(+), 6 deletions(-) create mode 100644 Asset/data/asset/functions/artifact/1643.jet_booster/give/1.trigger.mcfunction create mode 100644 Asset/data/asset/functions/artifact/1643.jet_booster/give/2.give.mcfunction create mode 100644 Asset/data/asset/functions/artifact/1643.jet_booster/register.mcfunction create mode 100644 Asset/data/asset/functions/artifact/1643.jet_booster/trigger/1.trigger.mcfunction create mode 100644 Asset/data/asset/functions/artifact/1643.jet_booster/trigger/2.check_condition.mcfunction create mode 100644 Asset/data/asset/functions/artifact/1643.jet_booster/trigger/3.main.mcfunction create mode 100644 Asset/data/asset/functions/effect/0408.fueling/_/end.mcfunction create mode 100644 Asset/data/asset/functions/effect/0408.fueling/_/register.mcfunction create mode 100644 Asset/data/asset/functions/effect/0408.fueling/_/tick.mcfunction create mode 100644 Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction create mode 100644 Asset/data/asset/functions/effect/0408.fueling/register.mcfunction create mode 100644 Asset/data/asset/functions/effect/0408.fueling/tick/.mcfunction create mode 100644 Asset/data/asset/functions/effect/0408.fueling/tick/countdown.mcfunction diff --git a/Asset/data/asset/functions/artifact/1643.jet_booster/give/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1643.jet_booster/give/1.trigger.mcfunction new file mode 100644 index 0000000000..21975dd705 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1643.jet_booster/give/1.trigger.mcfunction @@ -0,0 +1,7 @@ +#> asset:artifact/1643.jet_booster/give/1.trigger +# +# 神器の取得処理の呼び出し時に実行されるfunction +# +# @within tag/function asset:artifact/give + +execute if data storage asset:context {id:1643} run function asset:artifact/1643.jet_booster/give/2.give \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1643.jet_booster/give/2.give.mcfunction b/Asset/data/asset/functions/artifact/1643.jet_booster/give/2.give.mcfunction new file mode 100644 index 0000000000..f5a5ddbc1d --- /dev/null +++ b/Asset/data/asset/functions/artifact/1643.jet_booster/give/2.give.mcfunction @@ -0,0 +1,68 @@ +#> asset:artifact/1643.jet_booster/give/2.give +# +# 神器の作成部 ここでID等を定義する +# +# @user +# @within function asset:artifact/1643.jet_booster/give/1.trigger + +# 神器の説明や消費MPなどをここで設定する。 +# 最後にasset:artifact/common/giveを実行することで入手可能。 + +# 神器のID (int) スプレッドシートの値を入れる + data modify storage asset:artifact ID set value 1643 +# 神器のベースアイテム + data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick" +# 神器の名前 (TextComponentString) + data modify storage asset:artifact Name set value '{"text": "ジェットブースター"}' +# 神器の説明文 (TextComponentString[]) + data modify storage asset:artifact Lore set value [] +# 消費アイテム ({Item: TextComponent, Count: int, Extra?: TextComponent}) (オプション) + # data modify storage asset:artifact ConsumeItem.Item set value '{"translate":"item.minecraft.stick"}' + # data modify storage asset:artifact ConsumeItem.Count set value 1 + # data modify storage asset:artifact ConsumeItem.Extra set value +# 使用回数 (int) (オプション) + # data modify storage asset:artifact RemainingCount set value +# 神器を発動できるスロット (string) Wikiを参照 + data modify storage asset:artifact Slot set value "mainhand" +# 神器のトリガー (string) Wikiを参照 + data modify storage asset:artifact Trigger set value "onClick" +# 神器の発動条件 (TextComponentString) (オプション) + # data modify storage asset:artifact Condition set value +# 攻撃に関する情報 -Damage量 (literal[]/literal) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.Damage set value [200,1000] +# 攻撃に関する情報 -攻撃タイプ (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.AttackType set value [Physical] +# 攻撃に関する情報 -攻撃属性 (string[]) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.ElementType set value [Fire] +# 攻撃に関する情報 -防御無視 (boolean) Wikiを参照 (オプション) + # data modify storage asset:artifact AttackInfo.BypassResist set value +# 攻撃に関する情報 -範囲攻撃 (string) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.IsRangeAttack set value "every" +# 攻撃に関する情報 -攻撃範囲 (literal) Wikiを参照 (オプション) + data modify storage asset:artifact AttackInfo.AttackRange set value "???" +# MP消費量 (int) + data modify storage asset:artifact MPCost set value 100 +# MP必要量 (int) (オプション) + # data modify storage asset:artifact MPRequire set value +# MP回復量 (int) + # data modify storage asset:artifact MPHealWhenHit set value +# 神器のクールダウン (int) (オプション) + data modify storage asset:artifact LocalCooldown set value 600 +# 種別クールダウン ({Type: string, Duration: int}) (オプション) + # data modify storage asset:artifact TypeCooldown.Type set value + # data modify storage asset:artifact TypeCooldown.Duration set value +# グローバルクールダウン (int) (オプション) + # data modify storage asset:artifact SpecialCooldown set value +# クールダウンによる使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableCooldownMessage set value +# MP不足による使用不可のメッセージを非表示にするか否か (boolean) (オプション) + # data modify storage asset:artifact DisableMPMessage set value +# 破壊時の音を鳴らさないかどうか (boolean) (オプション) + # data modify storage asset:artifact DisableBreakSound set value +# 扱える神 (string[]) Wikiを参照 + data modify storage asset:artifact CanUsedGod set value ["Urban", "Rumor", "Wi-ki"] +# カスタムNBT (NBTCompound) 追加で指定したいNBT (オプション) + # data modify storage asset:artifact CustomNBT set value {} + +# 神器の入手用function + function asset:artifact/common/give diff --git a/Asset/data/asset/functions/artifact/1643.jet_booster/register.mcfunction b/Asset/data/asset/functions/artifact/1643.jet_booster/register.mcfunction new file mode 100644 index 0000000000..3bb2236a24 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1643.jet_booster/register.mcfunction @@ -0,0 +1,7 @@ +#> asset:artifact/1643.jet_booster/register +# +# 神器プールへの登録処理 +# +# @within tag/function asset:artifact/register + +data modify storage asset:artifact RarityRegistry[4] append value [1643] \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1643.jet_booster/trigger/1.trigger.mcfunction b/Asset/data/asset/functions/artifact/1643.jet_booster/trigger/1.trigger.mcfunction new file mode 100644 index 0000000000..a57b96c155 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1643.jet_booster/trigger/1.trigger.mcfunction @@ -0,0 +1,8 @@ +#> asset:artifact/1643.jet_booster/trigger/1.trigger +# +# 指定したイベントタイミングで実行されるfunction +# +# @within tag/function asset:artifact/** + +# storage asset:idのmainhandに装備している神器のIDが入っているので比較し、~/2.check_condition.mcfunctionを実行する + execute if data storage asset:context id{mainhand:1643} run function asset:artifact/1643.jet_booster/trigger/2.check_condition \ No newline at end of file diff --git a/Asset/data/asset/functions/artifact/1643.jet_booster/trigger/2.check_condition.mcfunction b/Asset/data/asset/functions/artifact/1643.jet_booster/trigger/2.check_condition.mcfunction new file mode 100644 index 0000000000..cc231a4abc --- /dev/null +++ b/Asset/data/asset/functions/artifact/1643.jet_booster/trigger/2.check_condition.mcfunction @@ -0,0 +1,16 @@ +#> asset:artifact/1643.jet_booster/trigger/2.check_condition +# +# 神器の発動条件をチェックします +# +# @within function asset:artifact/1643.jet_booster/trigger/1.trigger + +# 神器の基本的な条件の確認を行うfunction、成功している場合CanUsedタグが付く + function asset:artifact/common/check_condition/mainhand +# 他にアイテム等確認する場合はここに書く +# Effect 408が既にあるならキャンセル + data modify storage api: Argument.ID set value 408 + function api:entity/mob/effect/get/from_id + execute if data storage api: Return.Effect run tag @s remove CanUsed + +# CanUsedタグをチェックして3.main.mcfunctionを実行する + execute if entity @s[tag=CanUsed] run function asset:artifact/1643.jet_booster/trigger/3.main diff --git a/Asset/data/asset/functions/artifact/1643.jet_booster/trigger/3.main.mcfunction b/Asset/data/asset/functions/artifact/1643.jet_booster/trigger/3.main.mcfunction new file mode 100644 index 0000000000..1be9ce3541 --- /dev/null +++ b/Asset/data/asset/functions/artifact/1643.jet_booster/trigger/3.main.mcfunction @@ -0,0 +1,14 @@ +#> asset:artifact/1643.jet_booster/trigger/3.main +# +# 神器のメイン処理部 +# +# @within function asset:artifact/1643.jet_booster/trigger/2.check_condition + +# 基本的な使用時の処理(MP消費や使用回数の処理など)を行う + function asset:artifact/common/use/mainhand + +# ここから先は神器側の効果の処理を書く +# Effect 408を付与、MP計測開始 + data modify storage api: Argument.ID set value 408 + function api:entity/mob/effect/give + function api:entity/mob/effect/reset diff --git a/Asset/data/asset/functions/effect/0408.fueling/_/end.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/_/end.mcfunction new file mode 100644 index 0000000000..28c5135210 --- /dev/null +++ b/Asset/data/asset/functions/effect/0408.fueling/_/end.mcfunction @@ -0,0 +1,7 @@ +#> asset:effect/0408.fueling/_/end +# +# Effectの効果の終了時に実行されるfunction +# +# @within tag/function asset:effect/end + +execute if data storage asset:context {id:408} run function asset:effect/0408.fueling/end/ \ No newline at end of file diff --git a/Asset/data/asset/functions/effect/0408.fueling/_/register.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/_/register.mcfunction new file mode 100644 index 0000000000..496ebcd024 --- /dev/null +++ b/Asset/data/asset/functions/effect/0408.fueling/_/register.mcfunction @@ -0,0 +1,7 @@ +#> asset:effect/0408.fueling/_/register +# +# +# +# @within tag/function asset:effect/register + +execute if data storage asset:context {id:408} run function asset:effect/0408.fueling/register \ No newline at end of file diff --git a/Asset/data/asset/functions/effect/0408.fueling/_/tick.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/_/tick.mcfunction new file mode 100644 index 0000000000..b9ed6582a5 --- /dev/null +++ b/Asset/data/asset/functions/effect/0408.fueling/_/tick.mcfunction @@ -0,0 +1,7 @@ +#> asset:effect/0408.fueling/_/tick +# +# Effectが発動している間毎tick実行されるfunction +# +# @within tag/function asset:effect/tick + +execute if data storage asset:context {id:408} run function asset:effect/0408.fueling/tick/ \ No newline at end of file diff --git a/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction new file mode 100644 index 0000000000..56459991ec --- /dev/null +++ b/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction @@ -0,0 +1,36 @@ +#> asset:effect/0408.fueling/end/ +# +# Effectの効果が切れた時の処理 +# +# @within function asset:effect/0408.fueling/_/end + +#> Private +# @private + #declare score_holder $Magnitude + #declare score_holder $500 + +# tellraw @p {"storage": "asset:context", "nbt": "this.MPUsage"} + +# 消費MPの分量に応じた強さのPlayerMotionを適用 + execute store result score $Magnitude Temporary run data get storage asset:context this.MPUsage + execute store result storage lib: Argument.VectorMagnitude double 0.01 run scoreboard players add $Magnitude Temporary 100 + function lib:motion/looking + +# 攻撃情報(最低で200、消費MP1につき+2) + scoreboard players operation $Magnitude Temporary < $500 Const + execute store result storage api: Argument.Damage double 2 run scoreboard players get $Magnitude Temporary + data modify storage api: Argument.AttackType set value "Physical" + data modify storage api: Argument.ElementType set value "Fire" + function api:damage/modifier + + function api:damage/single_damage_session/open +# 攻撃範囲も可変 + execute if score $Magnitude Temporary matches 100..199 positioned ^ ^ ^-2 as @e[type=#lib:living_without_player,tag=Enemy,distance=..3] run function api:damage/ + execute if score $Magnitude Temporary matches 200..299 positioned ^ ^ ^-4 as @e[type=#lib:living_without_player,tag=Enemy,distance=..6] run function api:damage/ + execute if score $Magnitude Temporary matches 300.. positioned ^ ^ ^-6 as @e[type=#lib:living_without_player,tag=Enemy,distance=..8] run function api:damage/ + + function api:damage/reset + function api:damage/single_damage_session/close + +# リセット + scoreboard players reset $Magnitude Temporary diff --git a/Asset/data/asset/functions/effect/0408.fueling/register.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/register.mcfunction new file mode 100644 index 0000000000..1fc185f81b --- /dev/null +++ b/Asset/data/asset/functions/effect/0408.fueling/register.mcfunction @@ -0,0 +1,41 @@ +#> asset:effect/0408.fueling/register +# +# Effectのデータを指定 +# +# @within function asset:effect/0408.fueling/_/register + +# ExtendsSafe (boolean) (default = false) + # data modify storage asset:effect ExtendsSafe set value true +# ID (int) + data modify storage asset:effect ID set value 408 +# 名前 (TextComponentString) + data modify storage asset:effect Name set value '{"text": "発射用意"}' +# 説明文 (TextComponentString[]) + data modify storage asset:effect Description set value [] +# 効果時間 (int) (default = API || error) + data modify storage asset:effect Duration set value 100 +# スタック (int) (default = API || 1) + # data modify storage asset:effect Stack set value +# 効果時間の操作方法 (default = API || "replace") + # data modify storage asset:effect DurationOperation set value +# スタックの操作方法 (default = API || "replace") + # data modify storage asset:effect StackOperation set value +# 最大効果時間 (int) (default = 2147483647) + # data modify storage asset:effect MaxDuration set value +# 最大スタック (int) (default = 2147483647) + # data modify storage asset:effect MaxStack set value +# 悪い効果か否か (boolean) + data modify storage asset:effect IsBadEffect set value false +# 死亡時のエフェクトの処理 (default = "remove") + # data modify storage asset:effect ProcessOnDied set value +# 消すのに必要なレベル (int) (default = 1) + data modify storage asset:effect RequireClearLv set value 3 +# エフェクトをUIに表示するか (boolean) (default = true) + # data modify storage asset:effect Visible set value +# エフェクトのスタックををUIに表示するか (boolean) (default = true) + data modify storage asset:effect StackVisible set value false + +# フィールド + data modify storage asset:effect Field.PrevMP set value -1 + data modify storage asset:effect Field.MPUsage set value 0 + data modify storage asset:effect Field.Interval set value 20 diff --git a/Asset/data/asset/functions/effect/0408.fueling/tick/.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/tick/.mcfunction new file mode 100644 index 0000000000..553ff1fbc1 --- /dev/null +++ b/Asset/data/asset/functions/effect/0408.fueling/tick/.mcfunction @@ -0,0 +1,33 @@ +#> asset:effect/0408.fueling/tick/ +# +# Effectのtick処理 +# +# @within function asset:effect/0408.fueling/_/tick + +#> Private +# @private + #declare score_holder $MP + #declare score_holder $PrevMP + #declare score_holder $MPUsage + +# Interval減算 + execute store result storage asset:context this.Inverval int 0.9999999999 run data get storage asset:context this.Interval + execute if data storage asset:context this{Interval:0} run function asset:effect/0408.fueling/tick/countdown + +# MP現在値を取得して差をもとめる + function api:mp/get_current + execute store result score $MP Temporary run data get storage api: Return.CurrentMP + execute unless data storage asset:context this{PrevMP:-1} store result score $PrevMP Temporary run data get storage asset:context this.PrevMP + execute if data storage asset:context this{PrevMP:-1} run scoreboard players operation $PrevMP Temporary = $MP Temporary + scoreboard players operation $PrevMP Temporary -= $MP Temporary + #前tickと比べてMPが減った($PrevMPが正である)ときのみMPUsageに加算して保存 + execute store result score $MPUsage Temporary run data get storage asset:context this.MPUsage + execute if score $PrevMP Temporary matches 1.. store result storage asset:context this.MPUsage int 1 run scoreboard players operation $MPUsage Temporary += $PrevMP Temporary + +# 現在値をFieldに保存 + execute store result storage asset:context this.PrevMP int 1 run scoreboard players get $MP Temporary + +# リセット + scoreboard players reset $MP Temporary + scoreboard players reset $PrevMP Temporary + scoreboard players reset $MPUsage Temporary diff --git a/Asset/data/asset/functions/effect/0408.fueling/tick/countdown.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/tick/countdown.mcfunction new file mode 100644 index 0000000000..731d9a12d0 --- /dev/null +++ b/Asset/data/asset/functions/effect/0408.fueling/tick/countdown.mcfunction @@ -0,0 +1,11 @@ +#> asset:effect/0408.fueling/tick/countdown +# +# +# +# @within function asset:effect/0408.fueling/tick/ + +# Intervalを20にリセット + data modify storage asset:context this.Interval set value 20 + +# 演出 + ## とりあえず空 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 5586d3767c..d5f91d9531 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 @@ -1,5 +1,6 @@ { "values": [ + "asset:artifact/1643.jet_booster/trigger/1.trigger", "asset:artifact/1555.shift_change/trigger/1.trigger", "asset:artifact/1636.mana_controller/trigger/1.trigger", "asset:artifact/1606.dimension_knife/click/1.trigger", @@ -180,4 +181,4 @@ "asset:artifact/2001.staff_of_the_willless/trigger/1.trigger", "asset:artifact/0019.scripture/trigger/1.trigger" ] -} +} \ No newline at end of file diff --git a/Asset/data/asset/tags/functions/artifact/give.json b/Asset/data/asset/tags/functions/artifact/give.json index 3f770e5a44..bdd3163df2 100644 --- a/Asset/data/asset/tags/functions/artifact/give.json +++ b/Asset/data/asset/tags/functions/artifact/give.json @@ -1,5 +1,6 @@ { "values": [ + "asset:artifact/1643.jet_booster/give/1.trigger", "asset:artifact/1392.yellow_refraction_prism/give/1.trigger", "asset:artifact/1421.toaster/give/1.trigger", "asset:artifact/1555.shift_change/give/1.trigger", @@ -559,4 +560,4 @@ "asset:artifact/0735.collision_plate/give/1.trigger", "asset:artifact/0745.blade_of_whirlwind/give/1.trigger" ] -} +} \ No newline at end of file diff --git a/Asset/data/asset/tags/functions/artifact/register.json b/Asset/data/asset/tags/functions/artifact/register.json index fb738d0354..ff89025623 100644 --- a/Asset/data/asset/tags/functions/artifact/register.json +++ b/Asset/data/asset/tags/functions/artifact/register.json @@ -1,5 +1,6 @@ { "values": [ + "asset:artifact/1643.jet_booster/register", "asset:artifact/1421.toaster/register", "asset:artifact/1555.shift_change/register", "asset:artifact/1466.insulator_helmet/register", @@ -330,4 +331,4 @@ "asset:artifact/1027.fire_of_rebirth/register", "asset:artifact/1111.rod_o_redeem/register" ] -} +} \ No newline at end of file diff --git a/Asset/data/asset/tags/functions/effect/end.json b/Asset/data/asset/tags/functions/effect/end.json index 328f6768d2..3ca7f7f5f4 100644 --- a/Asset/data/asset/tags/functions/effect/end.json +++ b/Asset/data/asset/tags/functions/effect/end.json @@ -1,5 +1,6 @@ { "values": [ + "asset:effect/0408.fueling/_/end", "asset:effect/0359.time_ticker_eclipse/_/end", "asset:effect/0358.time_ticker_night/_/end", "asset:effect/0357.time_ticker_day/_/end", @@ -117,4 +118,4 @@ "asset:effect/0007.defense_base_debuff/_/end", "asset:effect/0258.spirit_melody/_/end" ] -} +} \ No newline at end of file diff --git a/Asset/data/asset/tags/functions/effect/register.json b/Asset/data/asset/tags/functions/effect/register.json index 562930996b..cb3231a398 100644 --- a/Asset/data/asset/tags/functions/effect/register.json +++ b/Asset/data/asset/tags/functions/effect/register.json @@ -1,5 +1,6 @@ { "values": [ + "asset:effect/0408.fueling/_/register", "asset:effect/0359.time_ticker_eclipse/_/register", "asset:effect/0358.time_ticker_night/_/register", "asset:effect/0357.time_ticker_day/_/register", @@ -194,4 +195,4 @@ "asset:effect/0007.defense_base_debuff/_/register", "asset:effect/0258.spirit_melody/_/register" ] -} +} \ No newline at end of file diff --git a/Asset/data/asset/tags/functions/effect/tick.json b/Asset/data/asset/tags/functions/effect/tick.json index 910ccfd5f6..a81696f439 100644 --- a/Asset/data/asset/tags/functions/effect/tick.json +++ b/Asset/data/asset/tags/functions/effect/tick.json @@ -1,5 +1,6 @@ { "values": [ + "asset:effect/0408.fueling/_/tick", "asset:effect/0359.time_ticker_eclipse/_/tick", "asset:effect/0358.time_ticker_night/_/tick", "asset:effect/0357.time_ticker_day/_/tick", @@ -113,4 +114,4 @@ "asset:effect/0279.poison_of_vinderre/_/tick", "asset:effect/0258.spirit_melody/_/tick" ] -} +} \ No newline at end of file From 14a8b421236c0eac666edffa874d1d95bc9b7c38 Mon Sep 17 00:00:00 2001 From: RandomFridge Date: Sun, 11 Oct 2026 14:47:02 +0200 Subject: [PATCH 2/9] =?UTF-8?q?=E6=BC=94=E5=87=BA=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../1643.jet_booster/trigger/3.main.mcfunction | 5 +++++ .../functions/effect/0408.fueling/end/.mcfunction | 10 +++++++--- .../effect/0408.fueling/end/attack/1.mcfunction | 11 +++++++++++ .../effect/0408.fueling/end/attack/2.mcfunction | 13 +++++++++++++ .../effect/0408.fueling/end/attack/3.mcfunction | 12 ++++++++++++ .../functions/effect/0408.fueling/tick/.mcfunction | 2 +- .../effect/0408.fueling/tick/countdown.mcfunction | 2 +- 7 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 Asset/data/asset/functions/effect/0408.fueling/end/attack/1.mcfunction create mode 100644 Asset/data/asset/functions/effect/0408.fueling/end/attack/2.mcfunction create mode 100644 Asset/data/asset/functions/effect/0408.fueling/end/attack/3.mcfunction diff --git a/Asset/data/asset/functions/artifact/1643.jet_booster/trigger/3.main.mcfunction b/Asset/data/asset/functions/artifact/1643.jet_booster/trigger/3.main.mcfunction index 1be9ce3541..2660cbd966 100644 --- a/Asset/data/asset/functions/artifact/1643.jet_booster/trigger/3.main.mcfunction +++ b/Asset/data/asset/functions/artifact/1643.jet_booster/trigger/3.main.mcfunction @@ -12,3 +12,8 @@ data modify storage api: Argument.ID set value 408 function api:entity/mob/effect/give function api:entity/mob/effect/reset + +# 演出 + playsound entity.tnt.primed player @a ~ ~ ~ 1.0 0.5 + playsound ogg:block.vault.eject3 player @a ~ ~ ~ 1.0 1.0 + particle campfire_signal_smoke ~ ~1 ~ 0.1 0.5 0.1 0.05 10 diff --git a/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction index 56459991ec..1ab07f47b8 100644 --- a/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction +++ b/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction @@ -25,12 +25,16 @@ function api:damage/single_damage_session/open # 攻撃範囲も可変 - execute if score $Magnitude Temporary matches 100..199 positioned ^ ^ ^-2 as @e[type=#lib:living_without_player,tag=Enemy,distance=..3] run function api:damage/ - execute if score $Magnitude Temporary matches 200..299 positioned ^ ^ ^-4 as @e[type=#lib:living_without_player,tag=Enemy,distance=..6] run function api:damage/ - execute if score $Magnitude Temporary matches 300.. positioned ^ ^ ^-6 as @e[type=#lib:living_without_player,tag=Enemy,distance=..8] run function api:damage/ + execute if score $Magnitude Temporary matches 100..199 positioned ^ ^ ^-2 run function asset:effect/0408.fueling/end/attack/1 + execute if score $Magnitude Temporary matches 200..299 positioned ^ ^ ^-4 run function asset:effect/0408.fueling/end/attack/2 + execute if score $Magnitude Temporary matches 300.. positioned ^ ^ ^-6 run function asset:effect/0408.fueling/end/attack/3 function api:damage/reset function api:damage/single_damage_session/close +# 共通演出 + playsound entity.firework_rocket.launch player @a ~ ~ ~ 2.0 0.5 + playsound block.note_block.bit player @s ~ ~ ~ 1.0 2.0 + # リセット scoreboard players reset $Magnitude Temporary diff --git a/Asset/data/asset/functions/effect/0408.fueling/end/attack/1.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/end/attack/1.mcfunction new file mode 100644 index 0000000000..a79ce23899 --- /dev/null +++ b/Asset/data/asset/functions/effect/0408.fueling/end/attack/1.mcfunction @@ -0,0 +1,11 @@ +#> asset:effect/0408.fueling/end/attack/1 +# +# +# +# @within function asset:effect/0408.fueling/end/ + + execute as @e[type=#lib:living_without_player,tag=Enemy,distance=..3] run function api:damage/ + +# 演出 + playsound ogg:random.explode4 player @a ~ ~ ~ 1 2 + particle flame ~ ~ ~ 1 0.0 1 0.01 50 diff --git a/Asset/data/asset/functions/effect/0408.fueling/end/attack/2.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/end/attack/2.mcfunction new file mode 100644 index 0000000000..6760f32db7 --- /dev/null +++ b/Asset/data/asset/functions/effect/0408.fueling/end/attack/2.mcfunction @@ -0,0 +1,13 @@ +#> asset:effect/0408.fueling/end/attack/2 +# +# +# +# @within function asset:effect/0408.fueling/end/ + + + execute as @e[type=#lib:living_without_player,tag=Enemy,distance=..6] run function api:damage/ + +# 演出 + playsound ogg:random.explode4 player @a ~ ~ ~ 1 1.5 + particle flame ~ ~ ~ 2 0.0 2 0.01 100 + particle explosion ^ ^ ^4 0 0 0 1 1 diff --git a/Asset/data/asset/functions/effect/0408.fueling/end/attack/3.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/end/attack/3.mcfunction new file mode 100644 index 0000000000..95988a38f8 --- /dev/null +++ b/Asset/data/asset/functions/effect/0408.fueling/end/attack/3.mcfunction @@ -0,0 +1,12 @@ +#> asset:effect/0408.fueling/end/attack/3 +# +# +# +# @within function asset:effect/0408.fueling/end/ + + execute as @e[type=#lib:living_without_player,tag=Enemy,distance=..8] run function api:damage/ + +# 演出 + playsound ogg:random.explode4 player @a ~ ~ ~ 1 1.5 + particle flame ~ ~ ~ 4 0.0 4 0.01 150 + particle explosion_emitter ^ ^ ^6 0 0 0 1 1 diff --git a/Asset/data/asset/functions/effect/0408.fueling/tick/.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/tick/.mcfunction index 553ff1fbc1..1dcdd40463 100644 --- a/Asset/data/asset/functions/effect/0408.fueling/tick/.mcfunction +++ b/Asset/data/asset/functions/effect/0408.fueling/tick/.mcfunction @@ -11,7 +11,7 @@ #declare score_holder $MPUsage # Interval減算 - execute store result storage asset:context this.Inverval int 0.9999999999 run data get storage asset:context this.Interval + execute store result storage asset:context this.Interval int 0.9999999999 run data get storage asset:context this.Interval execute if data storage asset:context this{Interval:0} run function asset:effect/0408.fueling/tick/countdown # MP現在値を取得して差をもとめる diff --git a/Asset/data/asset/functions/effect/0408.fueling/tick/countdown.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/tick/countdown.mcfunction index 731d9a12d0..96f9bb5ab8 100644 --- a/Asset/data/asset/functions/effect/0408.fueling/tick/countdown.mcfunction +++ b/Asset/data/asset/functions/effect/0408.fueling/tick/countdown.mcfunction @@ -8,4 +8,4 @@ data modify storage asset:context this.Interval set value 20 # 演出 - ## とりあえず空 + playsound block.note_block.bit player @s ~ ~ ~ 1.0 1.0 From 15f5d036f77b1ee5e5e76a2f1aab30db869d46f1 Mon Sep 17 00:00:00 2001 From: RandomFridge Date: Sun, 11 Oct 2026 15:09:35 +0200 Subject: [PATCH 3/9] =?UTF-8?q?Lore=E9=A1=9E=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../artifact/1643.jet_booster/give/2.give.mcfunction | 4 ++-- .../asset/functions/effect/0408.fueling/register.mcfunction | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Asset/data/asset/functions/artifact/1643.jet_booster/give/2.give.mcfunction b/Asset/data/asset/functions/artifact/1643.jet_booster/give/2.give.mcfunction index f5a5ddbc1d..0622a5d8b8 100644 --- a/Asset/data/asset/functions/artifact/1643.jet_booster/give/2.give.mcfunction +++ b/Asset/data/asset/functions/artifact/1643.jet_booster/give/2.give.mcfunction @@ -13,9 +13,9 @@ # 神器のベースアイテム data modify storage asset:artifact Item set value "minecraft:carrot_on_a_stick" # 神器の名前 (TextComponentString) - data modify storage asset:artifact Name set value '{"text": "ジェットブースター"}' + data modify storage asset:artifact Name set value '{"text": "ジェットブースター", "color": "blue"}' # 神器の説明文 (TextComponentString[]) - data modify storage asset:artifact Lore set value [] + data modify storage asset:artifact Lore set value ['{"text": "使用してから5秒後、爆発をして向いている方向に吹っ飛ぶ。"}', '{"text": "その間に計測されたMP消費量に応じて攻撃範囲、威力、飛距離が上昇する。"}', '{"text": "マナの燃料にして動くブースター。", "color": "gray"}', '{"text": "燃料の貯蓄こそできないが、爆発的な出力を誇る。", "color": "gray"}'] # 消費アイテム ({Item: TextComponent, Count: int, Extra?: TextComponent}) (オプション) # data modify storage asset:artifact ConsumeItem.Item set value '{"translate":"item.minecraft.stick"}' # data modify storage asset:artifact ConsumeItem.Count set value 1 diff --git a/Asset/data/asset/functions/effect/0408.fueling/register.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/register.mcfunction index 1fc185f81b..5fe44dd9fb 100644 --- a/Asset/data/asset/functions/effect/0408.fueling/register.mcfunction +++ b/Asset/data/asset/functions/effect/0408.fueling/register.mcfunction @@ -9,9 +9,9 @@ # ID (int) data modify storage asset:effect ID set value 408 # 名前 (TextComponentString) - data modify storage asset:effect Name set value '{"text": "発射用意"}' + data modify storage asset:effect Name set value '{"text": "発射用意", "color": "#fa9514"}' # 説明文 (TextComponentString[]) - data modify storage asset:effect Description set value [] + data modify storage asset:effect Description set value ['{"text": "効果中に消費したMP量を推進力に変える"}'] # 効果時間 (int) (default = API || error) data modify storage asset:effect Duration set value 100 # スタック (int) (default = API || 1) From 9e1123970c2f1df05ed404f679b7888ab8d2739c Mon Sep 17 00:00:00 2001 From: RandomFridge Date: Sun, 11 Oct 2026 15:10:32 +0200 Subject: [PATCH 4/9] =?UTF-8?q?=E3=82=AB=E3=83=A9=E3=83=BC=E3=82=B7?= =?UTF-8?q?=E3=83=A3=E3=83=BC=E3=83=89=E3=81=AE=E5=8A=A0=E5=B7=A5=E7=B5=90?= =?UTF-8?q?=E6=9E=9C=E3=81=AB=E7=99=BB=E9=8C=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../functions/artifact/1643.jet_booster/register.mcfunction | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Asset/data/asset/functions/artifact/1643.jet_booster/register.mcfunction b/Asset/data/asset/functions/artifact/1643.jet_booster/register.mcfunction index 3bb2236a24..4eec1bfae5 100644 --- a/Asset/data/asset/functions/artifact/1643.jet_booster/register.mcfunction +++ b/Asset/data/asset/functions/artifact/1643.jet_booster/register.mcfunction @@ -4,4 +4,5 @@ # # @within tag/function asset:artifact/register -data modify storage asset:artifact RarityRegistry[4] append value [1643] \ No newline at end of file +data modify storage asset:artifact RarityRegistry[4] append value [1643] +data modify storage asset:artifact RarityRegistryWithColor.Red[4] append value [1643] From 6411308686392749f17f0785651c1e33bee98d79 Mon Sep 17 00:00:00 2001 From: RandomFridge Date: Thu, 22 Oct 2026 11:52:41 +0200 Subject: [PATCH 5/9] =?UTF-8?q?=E4=BB=95=E6=A7=98=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../1643.jet_booster/give/2.give.mcfunction | 2 +- .../effect/0408.fueling/_/given.mcfunction | 7 ++++++ .../effect/0408.fueling/end/.mcfunction | 18 ++++++++++---- .../effect/0408.fueling/given/.mcfunction | 9 +++++++ .../effect/0408.fueling/register.mcfunction | 5 ++-- .../effect/0408.fueling/tick/.mcfunction | 24 ------------------- .../asset/tags/functions/effect/given.json | 3 ++- 7 files changed, 34 insertions(+), 34 deletions(-) create mode 100644 Asset/data/asset/functions/effect/0408.fueling/_/given.mcfunction create mode 100644 Asset/data/asset/functions/effect/0408.fueling/given/.mcfunction diff --git a/Asset/data/asset/functions/artifact/1643.jet_booster/give/2.give.mcfunction b/Asset/data/asset/functions/artifact/1643.jet_booster/give/2.give.mcfunction index 0622a5d8b8..cf3633a467 100644 --- a/Asset/data/asset/functions/artifact/1643.jet_booster/give/2.give.mcfunction +++ b/Asset/data/asset/functions/artifact/1643.jet_booster/give/2.give.mcfunction @@ -15,7 +15,7 @@ # 神器の名前 (TextComponentString) data modify storage asset:artifact Name set value '{"text": "ジェットブースター", "color": "blue"}' # 神器の説明文 (TextComponentString[]) - data modify storage asset:artifact Lore set value ['{"text": "使用してから5秒後、爆発をして向いている方向に吹っ飛ぶ。"}', '{"text": "その間に計測されたMP消費量に応じて攻撃範囲、威力、飛距離が上昇する。"}', '{"text": "マナの燃料にして動くブースター。", "color": "gray"}', '{"text": "燃料の貯蓄こそできないが、爆発的な出力を誇る。", "color": "gray"}'] + data modify storage asset:artifact Lore set value ['{"text": "使用してから5秒後、爆発をして向いている方向に吹っ飛ぶ。"}', '{"text": "MPが使用時と比べて低いほど攻撃範囲、威力、推進力が上昇する。"}', '{"text": "マナの準位差を利用して動くブースター。", "color": "gray"}', '{"text": "燃料の貯蓄こそできないが、爆発的な出力を誇る。", "color": "gray"}'] # 消費アイテム ({Item: TextComponent, Count: int, Extra?: TextComponent}) (オプション) # data modify storage asset:artifact ConsumeItem.Item set value '{"translate":"item.minecraft.stick"}' # data modify storage asset:artifact ConsumeItem.Count set value 1 diff --git a/Asset/data/asset/functions/effect/0408.fueling/_/given.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/_/given.mcfunction new file mode 100644 index 0000000000..7f384c4ebb --- /dev/null +++ b/Asset/data/asset/functions/effect/0408.fueling/_/given.mcfunction @@ -0,0 +1,7 @@ +#> asset:effect/0408.fueling/_/given +# +# Effectが付与された時に実行されるfunction +# +# @within tag/function asset:effect/given + +execute if data storage asset:context {id:408} run function asset:effect/0408.fueling/given/ \ No newline at end of file diff --git a/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction index 1ab07f47b8..fa46698b4c 100644 --- a/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction +++ b/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction @@ -8,15 +8,22 @@ # @private #declare score_holder $Magnitude #declare score_holder $500 + #declare score_holder $MP -# tellraw @p {"storage": "asset:context", "nbt": "this.MPUsage"} +# 使用時とのMP差に応じた強さのPlayerMotionを適用 + function api:mp/get_current + execute store result score $MP Temporary run data get storage api: Return.CurrentMP + execute store result score $Magnitude Temporary run data get storage asset:context this.InitialMP + scoreboard players operation $Magnitude Temporary -= $MP Temporary -# 消費MPの分量に応じた強さのPlayerMotionを適用 - execute store result score $Magnitude Temporary run data get storage asset:context this.MPUsage - execute store result storage lib: Argument.VectorMagnitude double 0.01 run scoreboard players add $Magnitude Temporary 100 + #最低100は飛ぶ + execute if score $Magnitude Temporary matches 1.. run scoreboard players add $Magnitude Temporary 100 + execute if score $Magnitude Temporary matches ..0 run scoreboard players set $Magnitude Temporary 100 + + execute store result storage lib: Argument.VectorMagnitude double 0.01 run scoreboard players get $Magnitude Temporary function lib:motion/looking -# 攻撃情報(最低で200、消費MP1につき+2) +# 攻撃情報(最低で200、MP差1につき+2) scoreboard players operation $Magnitude Temporary < $500 Const execute store result storage api: Argument.Damage double 2 run scoreboard players get $Magnitude Temporary data modify storage api: Argument.AttackType set value "Physical" @@ -38,3 +45,4 @@ # リセット scoreboard players reset $Magnitude Temporary + scoreboard players reset $MP Temporary diff --git a/Asset/data/asset/functions/effect/0408.fueling/given/.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/given/.mcfunction new file mode 100644 index 0000000000..d50abfc4e9 --- /dev/null +++ b/Asset/data/asset/functions/effect/0408.fueling/given/.mcfunction @@ -0,0 +1,9 @@ +#> asset:effect/0408.fueling/given/ +# +# Effectが付与された時の処理 +# +# @within function asset:effect/0408.fueling/_/given + +# 現在MPを記憶 + function api:mp/get_current + data modify storage asset:context this.InitialMP set from storage api: Return.CurrentMP diff --git a/Asset/data/asset/functions/effect/0408.fueling/register.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/register.mcfunction index 5fe44dd9fb..0410011ea4 100644 --- a/Asset/data/asset/functions/effect/0408.fueling/register.mcfunction +++ b/Asset/data/asset/functions/effect/0408.fueling/register.mcfunction @@ -11,7 +11,7 @@ # 名前 (TextComponentString) data modify storage asset:effect Name set value '{"text": "発射用意", "color": "#fa9514"}' # 説明文 (TextComponentString[]) - data modify storage asset:effect Description set value ['{"text": "効果中に消費したMP量を推進力に変える"}'] + data modify storage asset:effect Description set value ['{"text": "効果開始時と終了時のMP差を推進力に変える"}'] # 効果時間 (int) (default = API || error) data modify storage asset:effect Duration set value 100 # スタック (int) (default = API || 1) @@ -36,6 +36,5 @@ data modify storage asset:effect StackVisible set value false # フィールド - data modify storage asset:effect Field.PrevMP set value -1 - data modify storage asset:effect Field.MPUsage set value 0 + data modify storage asset:effect Field.InitialMP set value -1 data modify storage asset:effect Field.Interval set value 20 diff --git a/Asset/data/asset/functions/effect/0408.fueling/tick/.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/tick/.mcfunction index 1dcdd40463..2ba8719b16 100644 --- a/Asset/data/asset/functions/effect/0408.fueling/tick/.mcfunction +++ b/Asset/data/asset/functions/effect/0408.fueling/tick/.mcfunction @@ -4,30 +4,6 @@ # # @within function asset:effect/0408.fueling/_/tick -#> Private -# @private - #declare score_holder $MP - #declare score_holder $PrevMP - #declare score_holder $MPUsage - # Interval減算 execute store result storage asset:context this.Interval int 0.9999999999 run data get storage asset:context this.Interval execute if data storage asset:context this{Interval:0} run function asset:effect/0408.fueling/tick/countdown - -# MP現在値を取得して差をもとめる - function api:mp/get_current - execute store result score $MP Temporary run data get storage api: Return.CurrentMP - execute unless data storage asset:context this{PrevMP:-1} store result score $PrevMP Temporary run data get storage asset:context this.PrevMP - execute if data storage asset:context this{PrevMP:-1} run scoreboard players operation $PrevMP Temporary = $MP Temporary - scoreboard players operation $PrevMP Temporary -= $MP Temporary - #前tickと比べてMPが減った($PrevMPが正である)ときのみMPUsageに加算して保存 - execute store result score $MPUsage Temporary run data get storage asset:context this.MPUsage - execute if score $PrevMP Temporary matches 1.. store result storage asset:context this.MPUsage int 1 run scoreboard players operation $MPUsage Temporary += $PrevMP Temporary - -# 現在値をFieldに保存 - execute store result storage asset:context this.PrevMP int 1 run scoreboard players get $MP Temporary - -# リセット - scoreboard players reset $MP Temporary - scoreboard players reset $PrevMP Temporary - scoreboard players reset $MPUsage Temporary diff --git a/Asset/data/asset/tags/functions/effect/given.json b/Asset/data/asset/tags/functions/effect/given.json index 90e2aa1f7d..fa9ed137d5 100644 --- a/Asset/data/asset/tags/functions/effect/given.json +++ b/Asset/data/asset/tags/functions/effect/given.json @@ -1,5 +1,6 @@ { "values": [ + "asset:effect/0408.fueling/_/given", "asset:effect/0359.time_ticker_eclipse/_/given", "asset:effect/0358.time_ticker_night/_/given", "asset:effect/0357.time_ticker_day/_/given", @@ -112,4 +113,4 @@ "asset:effect/0007.defense_base_debuff/_/given", "asset:effect/0258.spirit_melody/_/given" ] -} +} \ No newline at end of file From 0bc93e0550ae2c63cd72f1c360fa58c1b0574c33 Mon Sep 17 00:00:00 2001 From: RandomFridge Date: Sat, 31 Oct 2026 16:58:49 +0100 Subject: [PATCH 6/9] =?UTF-8?q?=E5=A4=89=E6=95=B0=E9=A1=9E=E3=81=AB?= =?UTF-8?q?=E5=91=BD=E5=90=8D=E8=A6=8F=E5=89=87=E3=82=92=E9=81=A9=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../effect/0408.fueling/end/.mcfunction | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction index fa46698b4c..b7642f3f9d 100644 --- a/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction +++ b/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction @@ -6,35 +6,35 @@ #> Private # @private - #declare score_holder $Magnitude + #declare score_holder $E0408.Magnitude #declare score_holder $500 - #declare score_holder $MP + #declare score_holder $E0408.MP # 使用時とのMP差に応じた強さのPlayerMotionを適用 function api:mp/get_current - execute store result score $MP Temporary run data get storage api: Return.CurrentMP - execute store result score $Magnitude Temporary run data get storage asset:context this.InitialMP - scoreboard players operation $Magnitude Temporary -= $MP Temporary + execute store result score $E0408.MP Temporary run data get storage api: Return.CurrentMP + execute store result score $E0408.Magnitude Temporary run data get storage asset:context this.InitialMP + scoreboard players operation $E0408.Magnitude Temporary -= $E0408.MP Temporary #最低100は飛ぶ - execute if score $Magnitude Temporary matches 1.. run scoreboard players add $Magnitude Temporary 100 - execute if score $Magnitude Temporary matches ..0 run scoreboard players set $Magnitude Temporary 100 + execute if score $E0408.Magnitude Temporary matches 1.. run scoreboard players add $E0408.Magnitude Temporary 100 + execute if score $E0408.Magnitude Temporary matches ..0 run scoreboard players set $E0408.Magnitude Temporary 100 - execute store result storage lib: Argument.VectorMagnitude double 0.01 run scoreboard players get $Magnitude Temporary + execute store result storage lib: Argument.VectorMagnitude double 0.01 run scoreboard players get $E0408.Magnitude Temporary function lib:motion/looking # 攻撃情報(最低で200、MP差1につき+2) - scoreboard players operation $Magnitude Temporary < $500 Const - execute store result storage api: Argument.Damage double 2 run scoreboard players get $Magnitude Temporary + scoreboard players operation $E0408.Magnitude Temporary < $500 Const + execute store result storage api: Argument.Damage double 2 run scoreboard players get $E0408.Magnitude Temporary data modify storage api: Argument.AttackType set value "Physical" data modify storage api: Argument.ElementType set value "Fire" function api:damage/modifier function api:damage/single_damage_session/open # 攻撃範囲も可変 - execute if score $Magnitude Temporary matches 100..199 positioned ^ ^ ^-2 run function asset:effect/0408.fueling/end/attack/1 - execute if score $Magnitude Temporary matches 200..299 positioned ^ ^ ^-4 run function asset:effect/0408.fueling/end/attack/2 - execute if score $Magnitude Temporary matches 300.. positioned ^ ^ ^-6 run function asset:effect/0408.fueling/end/attack/3 + execute if score $E0408.Magnitude Temporary matches 100..199 positioned ^ ^ ^-2 run function asset:effect/0408.fueling/end/attack/1 + execute if score $E0408.Magnitude Temporary matches 200..299 positioned ^ ^ ^-4 run function asset:effect/0408.fueling/end/attack/2 + execute if score $E0408.Magnitude Temporary matches 300.. positioned ^ ^ ^-6 run function asset:effect/0408.fueling/end/attack/3 function api:damage/reset function api:damage/single_damage_session/close @@ -44,5 +44,5 @@ playsound block.note_block.bit player @s ~ ~ ~ 1.0 2.0 # リセット - scoreboard players reset $Magnitude Temporary - scoreboard players reset $MP Temporary + scoreboard players reset $E0408.Magnitude Temporary + scoreboard players reset $E0408.MP Temporary From 3ab754eb095d1ec71654b38c0e656ceb34867e46 Mon Sep 17 00:00:00 2001 From: RandomFridge Date: Sat, 31 Oct 2026 17:34:59 +0100 Subject: [PATCH 7/9] =?UTF-8?q?=E5=90=84=E7=A8=AE=E3=83=91=E3=83=A9?= =?UTF-8?q?=E3=83=A1=E3=83=BC=E3=82=BF=E3=83=BC=E3=82=92=E7=A5=9E=E5=99=A8?= =?UTF-8?q?=E3=81=8B=E3=82=89=E8=A8=AD=E5=AE=9A=E3=81=A7=E3=81=8D=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../trigger/3.main.mcfunction | 14 +++++++ .../effect/0408.fueling/end/.mcfunction | 42 +++++++++++++------ .../attack/{1.mcfunction => 1.m.mcfunction} | 4 +- .../attack/{2.mcfunction => 2.m.mcfunction} | 4 +- .../attack/{3.mcfunction => 3.m.mcfunction} | 4 +- 5 files changed, 50 insertions(+), 18 deletions(-) rename Asset/data/asset/functions/effect/0408.fueling/end/attack/{1.mcfunction => 1.m.mcfunction} (52%) rename Asset/data/asset/functions/effect/0408.fueling/end/attack/{2.mcfunction => 2.m.mcfunction} (58%) rename Asset/data/asset/functions/effect/0408.fueling/end/attack/{3.mcfunction => 3.m.mcfunction} (59%) diff --git a/Asset/data/asset/functions/artifact/1643.jet_booster/trigger/3.main.mcfunction b/Asset/data/asset/functions/artifact/1643.jet_booster/trigger/3.main.mcfunction index 2660cbd966..fed79937a1 100644 --- a/Asset/data/asset/functions/artifact/1643.jet_booster/trigger/3.main.mcfunction +++ b/Asset/data/asset/functions/artifact/1643.jet_booster/trigger/3.main.mcfunction @@ -10,6 +10,20 @@ # ここから先は神器側の効果の処理を書く # Effect 408を付与、MP計測開始 data modify storage api: Argument.ID set value 408 + + ## 攻撃情報 + # 最低ベクトル / 最低ダメージ(倍率2) + data modify storage api: Argument.FieldOverride.MinMagnitude set value 100 + # 最大ベクトル / 最大ダメージ(倍率2) + data modify storage api: Argument.FieldOverride.MaxMagnitude set value 500 + + # MP差1ごとのダメージ(倍率0.01) + data modify storage api: Argument.FieldOverride.Multiplier set value 200 + + # 攻撃範囲とMP消費の基準値 + data modify storage api: Argument.FieldOverride.Range set value {0:3,1:6,2:8} + data modify storage api: Argument.FieldOverride.Border set value {1:100,2:150} + function api:entity/mob/effect/give function api:entity/mob/effect/reset diff --git a/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction index b7642f3f9d..5f6ed8758b 100644 --- a/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction +++ b/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction @@ -6,9 +6,13 @@ #> Private # @private + #declare score_holder $E0408.Multiplier #declare score_holder $E0408.Magnitude - #declare score_holder $500 + #declare score_holder $E0408.MinMagnitude + #declare score_holder $E0408.MaxMagnitude #declare score_holder $E0408.MP + #declare score_holder $E0408.Border1 + #declare score_holder $E0408.Border2 # 使用時とのMP差に応じた強さのPlayerMotionを適用 function api:mp/get_current @@ -16,25 +20,34 @@ execute store result score $E0408.Magnitude Temporary run data get storage asset:context this.InitialMP scoreboard players operation $E0408.Magnitude Temporary -= $E0408.MP Temporary - #最低100は飛ぶ - execute if score $E0408.Magnitude Temporary matches 1.. run scoreboard players add $E0408.Magnitude Temporary 100 - execute if score $E0408.Magnitude Temporary matches ..0 run scoreboard players set $E0408.Magnitude Temporary 100 + #最低MinMagnitudeは飛ぶ + execute store result score $E0408.MinMagnitude Temporary run data get storage asset:context this.MinMagnitude + execute if score $E0408.Magnitude Temporary matches 1.. run scoreboard players operation $E0408.Magnitude Temporary += $E0408.MinMagnitude Temporary + execute if score $E0408.Magnitude Temporary matches ..0 run scoreboard players operation $E0408.Magnitude Temporary = $E0408.MinMagnitude Temporary execute store result storage lib: Argument.VectorMagnitude double 0.01 run scoreboard players get $E0408.Magnitude Temporary function lib:motion/looking -# 攻撃情報(最低で200、MP差1につき+2) - scoreboard players operation $E0408.Magnitude Temporary < $500 Const - execute store result storage api: Argument.Damage double 2 run scoreboard players get $E0408.Magnitude Temporary + +# 攻撃情報(最低でMinMagnitude * Multiplier) + execute store result score $E0408.MaxMagnitude Temporary run data get storage asset:context this.MaxMagnitude + scoreboard players operation $E0408.Magnitude Temporary < $E0408.MaxMagnitude Temporary + + execute store result score $E0408.Multiplier Temporary run data get storage asset:context this.Multiplier + execute store result storage api: Argument.Damage double 0.01 run scoreboard players operation $E0408.Magnitude Temporary *= $E0408.Multiplier Temporary data modify storage api: Argument.AttackType set value "Physical" data modify storage api: Argument.ElementType set value "Fire" function api:damage/modifier function api:damage/single_damage_session/open + # 攻撃範囲も可変 - execute if score $E0408.Magnitude Temporary matches 100..199 positioned ^ ^ ^-2 run function asset:effect/0408.fueling/end/attack/1 - execute if score $E0408.Magnitude Temporary matches 200..299 positioned ^ ^ ^-4 run function asset:effect/0408.fueling/end/attack/2 - execute if score $E0408.Magnitude Temporary matches 300.. positioned ^ ^ ^-6 run function asset:effect/0408.fueling/end/attack/3 + execute store result score $E0408.Border1 Temporary run data get storage asset:context this.Border.1 2 + execute store result score $E0408.Border2 Temporary run data get storage asset:context this.Border.2 2 + + execute if score $E0408.Magnitude Temporary < $E0408.Border1 Temporary positioned ^ ^ ^-2 run function asset:effect/0408.fueling/end/attack/1.m with storage asset:context this.Range + execute if score $E0408.Magnitude Temporary >= $E0408.Border1 Temporary if score $E0408.Magnitude Temporary < $E0408.Border2 Temporary positioned ^ ^ ^-2 run function asset:effect/0408.fueling/end/attack/2.m with storage asset:context this.Range + execute if score $E0408.Magnitude Temporary >= $E0408.Border2 Temporary positioned ^ ^ ^-2 run function asset:effect/0408.fueling/end/attack/3.m with storage asset:context this.Range function api:damage/reset function api:damage/single_damage_session/close @@ -44,5 +57,10 @@ playsound block.note_block.bit player @s ~ ~ ~ 1.0 2.0 # リセット - scoreboard players reset $E0408.Magnitude Temporary - scoreboard players reset $E0408.MP Temporary + scoreboard players reset $E0408.Multiplier + scoreboard players reset $E0408.Magnitude + scoreboard players reset $E0408.MinMagnitude + scoreboard players reset $E0408.MaxMagnitude + scoreboard players reset $E0408.MP + scoreboard players reset $E0408.Border1 + scoreboard players reset $E0408.Border2 diff --git a/Asset/data/asset/functions/effect/0408.fueling/end/attack/1.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/end/attack/1.m.mcfunction similarity index 52% rename from Asset/data/asset/functions/effect/0408.fueling/end/attack/1.mcfunction rename to Asset/data/asset/functions/effect/0408.fueling/end/attack/1.m.mcfunction index a79ce23899..4623f83b0f 100644 --- a/Asset/data/asset/functions/effect/0408.fueling/end/attack/1.mcfunction +++ b/Asset/data/asset/functions/effect/0408.fueling/end/attack/1.m.mcfunction @@ -1,10 +1,10 @@ -#> asset:effect/0408.fueling/end/attack/1 +#> asset:effect/0408.fueling/end/attack/1.m # # # # @within function asset:effect/0408.fueling/end/ - execute as @e[type=#lib:living_without_player,tag=Enemy,distance=..3] run function api:damage/ + $execute as @e[type=#lib:living_without_player,tag=Enemy,distance=..$(0)] run function api:damage/ # 演出 playsound ogg:random.explode4 player @a ~ ~ ~ 1 2 diff --git a/Asset/data/asset/functions/effect/0408.fueling/end/attack/2.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/end/attack/2.m.mcfunction similarity index 58% rename from Asset/data/asset/functions/effect/0408.fueling/end/attack/2.mcfunction rename to Asset/data/asset/functions/effect/0408.fueling/end/attack/2.m.mcfunction index 6760f32db7..ff02004fd1 100644 --- a/Asset/data/asset/functions/effect/0408.fueling/end/attack/2.mcfunction +++ b/Asset/data/asset/functions/effect/0408.fueling/end/attack/2.m.mcfunction @@ -1,11 +1,11 @@ -#> asset:effect/0408.fueling/end/attack/2 +#> asset:effect/0408.fueling/end/attack/2.m # # # # @within function asset:effect/0408.fueling/end/ - execute as @e[type=#lib:living_without_player,tag=Enemy,distance=..6] run function api:damage/ + $execute as @e[type=#lib:living_without_player,tag=Enemy,distance=..$(1)] run function api:damage/ # 演出 playsound ogg:random.explode4 player @a ~ ~ ~ 1 1.5 diff --git a/Asset/data/asset/functions/effect/0408.fueling/end/attack/3.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/end/attack/3.m.mcfunction similarity index 59% rename from Asset/data/asset/functions/effect/0408.fueling/end/attack/3.mcfunction rename to Asset/data/asset/functions/effect/0408.fueling/end/attack/3.m.mcfunction index 95988a38f8..29027e8d07 100644 --- a/Asset/data/asset/functions/effect/0408.fueling/end/attack/3.mcfunction +++ b/Asset/data/asset/functions/effect/0408.fueling/end/attack/3.m.mcfunction @@ -1,10 +1,10 @@ -#> asset:effect/0408.fueling/end/attack/3 +#> asset:effect/0408.fueling/end/attack/3.m # # # # @within function asset:effect/0408.fueling/end/ - execute as @e[type=#lib:living_without_player,tag=Enemy,distance=..8] run function api:damage/ + $execute as @e[type=#lib:living_without_player,tag=Enemy,distance=..$(2)] run function api:damage/ # 演出 playsound ogg:random.explode4 player @a ~ ~ ~ 1 1.5 From 270a74257ca2235dc86df698c8ab4c10746a8089 Mon Sep 17 00:00:00 2001 From: RandomFridge Date: Sat, 31 Oct 2026 18:09:51 +0100 Subject: [PATCH 8/9] =?UTF-8?q?=E8=A8=88=E7=AE=97=E9=A0=86=E3=82=92?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction index 5f6ed8758b..249a24061c 100644 --- a/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction +++ b/Asset/data/asset/functions/effect/0408.fueling/end/.mcfunction @@ -34,7 +34,7 @@ scoreboard players operation $E0408.Magnitude Temporary < $E0408.MaxMagnitude Temporary execute store result score $E0408.Multiplier Temporary run data get storage asset:context this.Multiplier - execute store result storage api: Argument.Damage double 0.01 run scoreboard players operation $E0408.Magnitude Temporary *= $E0408.Multiplier Temporary + execute store result storage api: Argument.Damage double 0.01 run scoreboard players operation $E0408.Multiplier Temporary *= $E0408.Magnitude Temporary data modify storage api: Argument.AttackType set value "Physical" data modify storage api: Argument.ElementType set value "Fire" function api:damage/modifier From 09a64490cfdbe266d24a8e53faf23b2b6274c842 Mon Sep 17 00:00:00 2001 From: RandomFridge Date: Sat, 31 Oct 2026 18:31:39 +0100 Subject: [PATCH 9/9] =?UTF-8?q?=E5=8A=B9=E6=9E=9C=E6=99=82=E9=96=93?= =?UTF-8?q?=E3=82=82=E7=A5=9E=E5=99=A8=E3=81=8B=E3=82=89=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E3=81=A7=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../artifact/1643.jet_booster/trigger/3.main.mcfunction | 3 +++ .../asset/functions/effect/0408.fueling/register.mcfunction | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Asset/data/asset/functions/artifact/1643.jet_booster/trigger/3.main.mcfunction b/Asset/data/asset/functions/artifact/1643.jet_booster/trigger/3.main.mcfunction index fed79937a1..5775f14ee9 100644 --- a/Asset/data/asset/functions/artifact/1643.jet_booster/trigger/3.main.mcfunction +++ b/Asset/data/asset/functions/artifact/1643.jet_booster/trigger/3.main.mcfunction @@ -11,6 +11,9 @@ # Effect 408を付与、MP計測開始 data modify storage api: Argument.ID set value 408 + # 効果時間 + data modify storage api: Argument.Duration set value 100 + ## 攻撃情報 # 最低ベクトル / 最低ダメージ(倍率2) data modify storage api: Argument.FieldOverride.MinMagnitude set value 100 diff --git a/Asset/data/asset/functions/effect/0408.fueling/register.mcfunction b/Asset/data/asset/functions/effect/0408.fueling/register.mcfunction index 0410011ea4..d580dafaa4 100644 --- a/Asset/data/asset/functions/effect/0408.fueling/register.mcfunction +++ b/Asset/data/asset/functions/effect/0408.fueling/register.mcfunction @@ -13,7 +13,7 @@ # 説明文 (TextComponentString[]) data modify storage asset:effect Description set value ['{"text": "効果開始時と終了時のMP差を推進力に変える"}'] # 効果時間 (int) (default = API || error) - data modify storage asset:effect Duration set value 100 + # data modify storage asset:effect Duration set value # スタック (int) (default = API || 1) # data modify storage asset:effect Stack set value # 効果時間の操作方法 (default = API || "replace")