From c2c94eb7ce4406c18525bebab6d304f6b7d3438b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=AF=E3=81=84=E3=81=84=E3=82=8D?= Date: Mon, 18 Nov 2024 01:50:40 +0900 Subject: [PATCH 1/8] =?UTF-8?q?:adhesive=5Fbandage:=20BypassDifficulty?= =?UTF-8?q?=E3=81=8C=E3=83=AA=E3=82=BB=E3=83=83=E3=83=88=E3=81=95=E3=82=8C?= =?UTF-8?q?=E3=81=A6=E3=81=84=E3=81=AA=E3=81=8B=E3=81=A3=E3=81=9F=E3=81=AE?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TheSkyBlessing/data/api/functions/damage/core/reset.mcfunction | 1 + 1 file changed, 1 insertion(+) diff --git a/TheSkyBlessing/data/api/functions/damage/core/reset.mcfunction b/TheSkyBlessing/data/api/functions/damage/core/reset.mcfunction index d4e6d24b43..e043c0da5e 100644 --- a/TheSkyBlessing/data/api/functions/damage/core/reset.mcfunction +++ b/TheSkyBlessing/data/api/functions/damage/core/reset.mcfunction @@ -14,6 +14,7 @@ data remove storage api: Argument.BypassArmorDefense data remove storage api: Argument.BypassToughness data remove storage api: Argument.BypassEnchantments data remove storage api: Argument.BypassResistance +data remove storage api: Argument.BypassDifficulty data remove storage api: Argument.DisableParticle data remove storage api: Argument.ReduceEnchantment data remove storage api: Argument.AdditionalMPHeal From 7895f21a5a6974418a18ae7e4fa00c68eb4bc6d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=AF=E3=81=84=E3=81=84=E3=82=8D?= Date: Mon, 18 Nov 2024 01:54:47 +0900 Subject: [PATCH 2/8] =?UTF-8?q?:technologist:=20=E3=83=80=E3=83=A1?= =?UTF-8?q?=E3=83=BC=E3=82=B8=E4=B8=8A=E9=99=90=E3=82=9299999.9=E3=81=BE?= =?UTF-8?q?=E3=81=A7=E5=BC=95=E3=81=8D=E4=B8=8A=E3=81=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../functions/damage/core/calc/.mcfunction | 13 +++-- .../damage/core/calc/defense.mcfunction | 48 ++++++++----------- .../damage/core/calc/resistance.mcfunction | 4 +- .../health_subtract/non-player/.mcfunction | 2 - .../core/health_subtract/player/.mcfunction | 2 +- .../player/difficulty_modifier.mcfunction | 2 +- 6 files changed, 31 insertions(+), 40 deletions(-) diff --git a/TheSkyBlessing/data/api/functions/damage/core/calc/.mcfunction b/TheSkyBlessing/data/api/functions/damage/core/calc/.mcfunction index f227a94bb5..3654cd730a 100644 --- a/TheSkyBlessing/data/api/functions/damage/core/calc/.mcfunction +++ b/TheSkyBlessing/data/api/functions/damage/core/calc/.mcfunction @@ -9,23 +9,22 @@ #declare score_holder $isDefenseCalcSkip # 計算式: -# damage * (1 - min(20, max(defensePoints / 5, defensePoints - damage / (2 + toughness / 4))) / 25) * (1 - min(5, resistanceLv) / 5) * (1 - (min(20, cappedEPF) / 25)) +# damage * (1 - min(20, max(defensePoints / 5, defensePoints - damage / (2 + toughness / 4))) / 25) * (1 - min(10, resistanceLv) / 10) * (1 - (min(20, cappedEPF) / 25)) -# 計算的なダメージ上限(21474.83)チェック - execute if score $Damage Temporary matches 2147483.. run scoreboard players set $Damage Temporary 2147483 +# 計算的なダメージ上限(214748.36)チェック + execute if score $Damage Temporary matches 21474836.. run scoreboard players set $Damage Temporary 21474836 # 防御による軽減計算部 execute if score $defensePoints Temporary matches 0 if score $toughness Temporary matches 0 run scoreboard players set $isDefenseCalcSkip Temporary 1 execute unless score $isDefenseCalcSkip Temporary matches 1 run function api:damage/core/calc/defense - execute if score $isDefenseCalcSkip Temporary matches 1 run scoreboard players operation $Damage Temporary *= $100 Const # 耐性エフェクトによる軽減計算部 execute if score $Resistance Temporary matches 1.. run function api:damage/core/calc/resistance # エンチャントによる軽減計算部 execute if score $EPF Temporary matches 1.. run function api:damage/core/calc/enchantment -# システム的なダメージ上限(9999.9/99999999(e4))チェック - execute if score $Damage Temporary matches 99999000.. run scoreboard players set $Damage Temporary 99999000 +# システム的なダメージ上限(99999.9(e2))チェック + execute if score $Damage Temporary matches 9999990.. run scoreboard players set $Damage Temporary 9999990 # Reset scoreboard players reset $isDefenseCalcSkip Temporary scoreboard players reset $defensePoints Temporary scoreboard players reset $toughness Temporary scoreboard players reset $EPF Temporary - scoreboard players reset $Resistance Temporary \ No newline at end of file + scoreboard players reset $Resistance Temporary diff --git a/TheSkyBlessing/data/api/functions/damage/core/calc/defense.mcfunction b/TheSkyBlessing/data/api/functions/damage/core/calc/defense.mcfunction index 01fc0fa0ca..b78da404b0 100644 --- a/TheSkyBlessing/data/api/functions/damage/core/calc/defense.mcfunction +++ b/TheSkyBlessing/data/api/functions/damage/core/calc/defense.mcfunction @@ -8,54 +8,48 @@ # @private #declare score_holder $CalcA #declare score_holder $CalcB + #declare score_holder $CalcB1 #declare score_holder $CalcB2 - #declare score_holder $CalcB3 #declare score_holder $CalcC #declare score_holder $CalcD #declare score_holder $CalcE -# $CalcA(e2) = $defensePoints(e2) * e2 / 5 / e2 +# $CalcA(e2) = $defensePoints(e2) / 5 scoreboard players operation $CalcA Temporary = $defensePoints Temporary - scoreboard players operation $CalcA Temporary *= $20 Const - scoreboard players operation $CalcA Temporary /= $100 Const -# $CalcB3(e2) = $toughness(e2) * e2 / 4 / e2 + 2 * e2 : $damage >= 1000 * e2 -# $CalcB3(e4) = $toughness(e2) * e2 / 4 + 2 * e4 : $damage < 1000 * e2 - scoreboard players operation $CalcB3 Temporary = $toughness Temporary - scoreboard players operation $CalcB3 Temporary *= $25 Const - execute if score $Damage Temporary matches 100000.. run scoreboard players operation $CalcB3 Temporary /= $100 Const - execute if score $Damage Temporary matches 100000.. run scoreboard players operation $CalcB3 Temporary += $200 Const - execute if score $Damage Temporary matches ..099999 run scoreboard players operation $CalcB3 Temporary += $20000 Const -# $CalcB2(e2) = $damage(e2) * e2 / $CalcB3(e2) : $damage >= 1000 * e2 -# $CalcB2(e2) = $damage(e2) * e4 / $CalcB3(e4) : $damage < 1000 * e2 + scoreboard players operation $CalcA Temporary /= $5 Const +# $CalcB1(e2) = 2 * e2 + $toughness(e2) / 4 + scoreboard players operation $CalcB1 Temporary = $toughness Temporary + scoreboard players operation $CalcB1 Temporary /= $4 Const + scoreboard players add $CalcB1 Temporary 200 +# $CalcB2(e2) = $Damage(e2) * e2 / $CalcB1(e2) scoreboard players operation $CalcB2 Temporary = $Damage Temporary - execute if score $Damage Temporary matches 100000.. run scoreboard players operation $CalcB2 Temporary *= $100 Const - execute if score $Damage Temporary matches ..099999 run scoreboard players operation $CalcB2 Temporary *= $10000 Const - scoreboard players operation $CalcB2 Temporary /= $CalcB3 Temporary + scoreboard players operation $CalcB2 Temporary *= $100 Const + scoreboard players operation $CalcB2 Temporary /= $CalcB1 Temporary # $CalcB(e2) = $defensePoints(e2) - $CalcB2(e2) scoreboard players operation $CalcB Temporary = $defensePoints Temporary scoreboard players operation $CalcB Temporary -= $CalcB2 Temporary -# $CalcC(e4) = min(max($CalcA(e2), $CalcB(e2)), 20 * e2) * e2 / 25 +# $CalcC(e3) = min(max($CalcA(e2), $CalcB(e2)), 20 * e2) * e1 / 25 scoreboard players operation $CalcC Temporary = $CalcA Temporary scoreboard players operation $CalcC Temporary > $CalcB Temporary scoreboard players operation $CalcC Temporary < $2000 Const scoreboard players operation $CalcC Temporary *= $4 Const -# $CalcD(e3) = (1 * e4 - $CalcC(e4)) / e1 : $damage >= 1000 * e2 -# $CalcD(e4) = (1 * e4 - $CalcC(e4)) : $damage < 1000 * e2 - scoreboard players operation $CalcD Temporary = $10000 Const + scoreboard players operation $CalcC Temporary /= $10 Const +# $CalcD(e3) = 1 * e3 - $CalcC(e3) + scoreboard players set $CalcD Temporary 1000 scoreboard players operation $CalcD Temporary -= $CalcC Temporary - execute if score $Damage Temporary matches 100000.. run scoreboard players operation $CalcD Temporary /= $10 Const -# $damage(e4) = $damage(e2) * $CalcD(e3) / e1 : $damage >= 1000 * e2 -# $damage(e4) = $damage(e2) * $CalcD(e4) / e2 : $damage < 1000 * e2 +# $Damage(e2) = $Damage(e2) * $CalcD(e3) / e3 scoreboard players operation $CalcE Temporary = $Damage Temporary + execute if score $Damage Temporary matches 1000000.. run scoreboard players operation $CalcE Temporary /= $10 Const scoreboard players operation $CalcE Temporary *= $CalcD Temporary - execute if score $Damage Temporary matches 100000.. run scoreboard players operation $CalcE Temporary /= $10 Const - execute if score $Damage Temporary matches ..099999 run scoreboard players operation $CalcE Temporary /= $100 Const + execute if score $Damage Temporary matches 1000000.. run scoreboard players operation $CalcE Temporary /= $100 Const + execute if score $Damage Temporary matches ..999999 run scoreboard players operation $CalcE Temporary /= $1000 Const scoreboard players operation $Damage Temporary = $CalcE Temporary + # リセット scoreboard players reset $CalcA Temporary scoreboard players reset $CalcB Temporary + scoreboard players reset $CalcB1 Temporary scoreboard players reset $CalcB2 Temporary - scoreboard players reset $CalcB3 Temporary scoreboard players reset $CalcC Temporary scoreboard players reset $CalcD Temporary - scoreboard players reset $CalcE Temporary \ No newline at end of file + scoreboard players reset $CalcE Temporary diff --git a/TheSkyBlessing/data/api/functions/damage/core/calc/resistance.mcfunction b/TheSkyBlessing/data/api/functions/damage/core/calc/resistance.mcfunction index 8db44467a9..a789e1c700 100644 --- a/TheSkyBlessing/data/api/functions/damage/core/calc/resistance.mcfunction +++ b/TheSkyBlessing/data/api/functions/damage/core/calc/resistance.mcfunction @@ -8,7 +8,7 @@ # @private #declare score_holder $Mul -# $Resistance(e1) *= min(5, $Resistance(e0)) * e1 / 5 +# $Resistance(e1) *= min(10, $Resistance(e0)) * e1 / 10 scoreboard players operation $Resistance Temporary < $10 Const # $Mul(e1) = 1 * e1 - $Resistance(e1) scoreboard players operation $Mul Temporary = $10 Const @@ -17,4 +17,4 @@ scoreboard players operation $Damage Temporary *= $Mul Temporary scoreboard players operation $Damage Temporary /= $10 Const # リセット - scoreboard players reset $Mul Temporary \ No newline at end of file + scoreboard players reset $Mul Temporary diff --git a/TheSkyBlessing/data/api/functions/damage/core/health_subtract/non-player/.mcfunction b/TheSkyBlessing/data/api/functions/damage/core/health_subtract/non-player/.mcfunction index f5d3d7429d..a4dbb9d9dd 100644 --- a/TheSkyBlessing/data/api/functions/damage/core/health_subtract/non-player/.mcfunction +++ b/TheSkyBlessing/data/api/functions/damage/core/health_subtract/non-player/.mcfunction @@ -8,8 +8,6 @@ # @private #declare score_holder $Fluctuation -# ダメージ量を補正 - scoreboard players operation $Damage Temporary /= $100 Const # ダメージ表示 scoreboard players set $Fluctuation Lib 0 scoreboard players operation $Fluctuation Lib -= $Damage Temporary diff --git a/TheSkyBlessing/data/api/functions/damage/core/health_subtract/player/.mcfunction b/TheSkyBlessing/data/api/functions/damage/core/health_subtract/player/.mcfunction index 08dd11a5b9..a45a7f3566 100644 --- a/TheSkyBlessing/data/api/functions/damage/core/health_subtract/player/.mcfunction +++ b/TheSkyBlessing/data/api/functions/damage/core/health_subtract/player/.mcfunction @@ -7,7 +7,7 @@ # 難易度補正を掛ける execute if data storage api: Argument{BypassDifficulty:false} run function api:damage/core/health_subtract/player/difficulty_modifier # 引数として代入 - execute store result storage api: Argument.Fluctuation double -0.0001 run scoreboard players get $Damage Temporary + execute store result storage api: Argument.Fluctuation double -0.01 run scoreboard players get $Damage Temporary execute store result storage api: Argument.Attacker int 1 run scoreboard players get $LatestModifiedEntity MobUUID # data modify storage api: Argument.AttackType set from storage api: Argument.AttackType # data modify storage api: Argument.ElementType set from storage api: Argument.ElementType diff --git a/TheSkyBlessing/data/api/functions/damage/core/health_subtract/player/difficulty_modifier.mcfunction b/TheSkyBlessing/data/api/functions/damage/core/health_subtract/player/difficulty_modifier.mcfunction index c03db2d075..71941e9f1a 100644 --- a/TheSkyBlessing/data/api/functions/damage/core/health_subtract/player/difficulty_modifier.mcfunction +++ b/TheSkyBlessing/data/api/functions/damage/core/health_subtract/player/difficulty_modifier.mcfunction @@ -11,7 +11,7 @@ scoreboard players add $Difficulty Temporary 6 scoreboard players operation $Damage Temporary *= $Difficulty Temporary scoreboard players operation $Damage Temporary /= $10 Const - execute if score $Damage Temporary matches 999990000.. run scoreboard players set $Damage Temporary 999990000 + execute if score $Damage Temporary matches 9999990.. run scoreboard players set $Damage Temporary 9999990 # リセット scoreboard players reset $Difficulty Temporary From a379cf10d025bdefdd370398bc5075a6c3f6bc3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=AF=E3=81=84=E3=81=84=E3=82=8D?= Date: Thu, 19 Feb 2026 14:44:57 +0900 Subject: [PATCH 3/8] =?UTF-8?q?:recycle:=20=E3=83=80=E3=83=A1=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E4=B8=8A=E9=99=90=E5=87=A6=E7=90=86=E3=82=92=E5=AE=9F?= =?UTF-8?q?=E8=A1=8C=E3=81=99=E3=82=8B=E5=A0=B4=E6=89=80=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 --- .../damage/core/health_subtract/force_cap.mcfunction | 7 +++++++ .../damage/core/health_subtract/non-player/.mcfunction | 5 ++++- .../damage/core/health_subtract/player/.mcfunction | 2 ++ .../health_subtract/player/difficulty_modifier.mcfunction | 1 - 4 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 TheSkyBlessing/data/api/functions/damage/core/health_subtract/force_cap.mcfunction diff --git a/TheSkyBlessing/data/api/functions/damage/core/health_subtract/force_cap.mcfunction b/TheSkyBlessing/data/api/functions/damage/core/health_subtract/force_cap.mcfunction new file mode 100644 index 0000000000..16c82bea02 --- /dev/null +++ b/TheSkyBlessing/data/api/functions/damage/core/health_subtract/force_cap.mcfunction @@ -0,0 +1,7 @@ +#> api:damage/core/health_subtract/force_cap +# +# システム的なダメージ上限(99999.9(e2))チェック +# +# @within function api:damage/core/health_subtract/*player/ + +execute if score $Damage Temporary matches 9999990.. run scoreboard players set $Damage Temporary 9999990 diff --git a/TheSkyBlessing/data/api/functions/damage/core/health_subtract/non-player/.mcfunction b/TheSkyBlessing/data/api/functions/damage/core/health_subtract/non-player/.mcfunction index 558134b892..b31c280509 100644 --- a/TheSkyBlessing/data/api/functions/damage/core/health_subtract/non-player/.mcfunction +++ b/TheSkyBlessing/data/api/functions/damage/core/health_subtract/non-player/.mcfunction @@ -11,7 +11,10 @@ #> Val # @private -#declare score_holder $Fluctuation + #declare score_holder $Fluctuation + +# ダメージ上限 + function api:damage/core/health_subtract/force_cap # ダメージ表示 scoreboard players set $Fluctuation Lib 0 diff --git a/TheSkyBlessing/data/api/functions/damage/core/health_subtract/player/.mcfunction b/TheSkyBlessing/data/api/functions/damage/core/health_subtract/player/.mcfunction index 5ffb00c149..a1fe1d26c3 100644 --- a/TheSkyBlessing/data/api/functions/damage/core/health_subtract/player/.mcfunction +++ b/TheSkyBlessing/data/api/functions/damage/core/health_subtract/player/.mcfunction @@ -6,6 +6,8 @@ # 難易度補正を掛ける execute if data storage api: Argument{BypassDifficulty:false} run function api:damage/core/health_subtract/player/difficulty_modifier +# ダメージ上限 + function api:damage/core/health_subtract/force_cap # 引数として代入 execute store result storage api: Argument.Fluctuation double -0.01 run scoreboard players get $Damage Temporary # 統計送りにする diff --git a/TheSkyBlessing/data/api/functions/damage/core/health_subtract/player/difficulty_modifier.mcfunction b/TheSkyBlessing/data/api/functions/damage/core/health_subtract/player/difficulty_modifier.mcfunction index 71941e9f1a..d55d40035a 100644 --- a/TheSkyBlessing/data/api/functions/damage/core/health_subtract/player/difficulty_modifier.mcfunction +++ b/TheSkyBlessing/data/api/functions/damage/core/health_subtract/player/difficulty_modifier.mcfunction @@ -11,7 +11,6 @@ scoreboard players add $Difficulty Temporary 6 scoreboard players operation $Damage Temporary *= $Difficulty Temporary scoreboard players operation $Damage Temporary /= $10 Const - execute if score $Damage Temporary matches 9999990.. run scoreboard players set $Damage Temporary 9999990 # リセット scoreboard players reset $Difficulty Temporary From 6b69897305ba4e4a1e08ccfbfb2eb4cff9d1d5f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=AF=E3=81=84=E3=81=84=E3=82=8D?= Date: Sun, 14 Jun 2026 03:59:58 +0900 Subject: [PATCH 4/8] =?UTF-8?q?:bug:=20=E5=85=A5=E5=8A=9B=E3=81=97?= =?UTF-8?q?=E3=81=9F=E3=83=80=E3=83=A1=E3=83=BC=E3=82=B8=E3=81=8C=E3=82=AA?= =?UTF-8?q?=E3=83=BC=E3=83=90=E3=83=BC=E3=83=95=E3=83=AD=E3=83=BC=E3=81=97?= =?UTF-8?q?=E3=81=AA=E3=81=84=E3=82=88=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/functions/damage/core/modify_damage.m.mcfunction | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/TheSkyBlessing/data/api/functions/damage/core/modify_damage.m.mcfunction b/TheSkyBlessing/data/api/functions/damage/core/modify_damage.m.mcfunction index 169c6eb773..41de5cd55c 100644 --- a/TheSkyBlessing/data/api/functions/damage/core/modify_damage.m.mcfunction +++ b/TheSkyBlessing/data/api/functions/damage/core/modify_damage.m.mcfunction @@ -15,6 +15,7 @@ #declare score_holder $Temp #declare score_holder $Sum #declare score_holder $Difficulty + #declare score_holder $Limit # 必要なデータの取得と加算 # 元ダメージ @@ -56,6 +57,9 @@ scoreboard players operation $Difficulty Temporary > $0 Const scoreboard players operation $Modifier Temporary > $Difficulty Temporary # 補正 + scoreboard players operation $Limit Temporary = $int.max Const + scoreboard players operation $Limit Temporary /= $Modifier Temporary + scoreboard players operation $Damage Temporary < $Limit Temporary scoreboard players operation $Damage Temporary *= $Modifier Temporary # 代入 execute store result storage api: ModifiedDamage double 0.0001 run scoreboard players get $Damage Temporary @@ -67,3 +71,4 @@ scoreboard players reset $Temp Temporary scoreboard players reset $Sum Temporary scoreboard players reset $Difficulty Temporary + scoreboard players reset $Limit Temporary From 3ee15f78e206866d2e2ab37f9a8d5e493d05e696 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=AF=E3=81=84=E3=81=84=E3=82=8D?= Date: Sun, 14 Jun 2026 04:01:13 +0900 Subject: [PATCH 5/8] =?UTF-8?q?:zap:=20=E3=83=80=E3=83=A1=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E8=A8=88=E7=AE=97=E5=87=A6=E7=90=86=E3=81=AE=E8=AA=A4?= =?UTF-8?q?=E5=B7=AE=E3=82=92=E4=BD=8E=E6=B8=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../damage/core/calc/defense.mcfunction | 22 +++++++++++-------- .../damage/core/calc/enchantment.mcfunction | 21 +++++++++++------- 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/TheSkyBlessing/data/api/functions/damage/core/calc/defense.mcfunction b/TheSkyBlessing/data/api/functions/damage/core/calc/defense.mcfunction index b78da404b0..6a21d05515 100644 --- a/TheSkyBlessing/data/api/functions/damage/core/calc/defense.mcfunction +++ b/TheSkyBlessing/data/api/functions/damage/core/calc/defense.mcfunction @@ -12,7 +12,8 @@ #declare score_holder $CalcB2 #declare score_holder $CalcC #declare score_holder $CalcD - #declare score_holder $CalcE + #declare score_holder $CalcE1 + #declare score_holder $CalcE2 # $CalcA(e2) = $defensePoints(e2) / 5 scoreboard players operation $CalcA Temporary = $defensePoints Temporary @@ -38,13 +39,15 @@ scoreboard players set $CalcD Temporary 1000 scoreboard players operation $CalcD Temporary -= $CalcC Temporary # $Damage(e2) = $Damage(e2) * $CalcD(e3) / e3 - scoreboard players operation $CalcE Temporary = $Damage Temporary - execute if score $Damage Temporary matches 1000000.. run scoreboard players operation $CalcE Temporary /= $10 Const - scoreboard players operation $CalcE Temporary *= $CalcD Temporary - execute if score $Damage Temporary matches 1000000.. run scoreboard players operation $CalcE Temporary /= $100 Const - execute if score $Damage Temporary matches ..999999 run scoreboard players operation $CalcE Temporary /= $1000 Const - scoreboard players operation $Damage Temporary = $CalcE Temporary - + scoreboard players operation $CalcE1 Temporary = $Damage Temporary + scoreboard players operation $CalcE1 Temporary /= $1000 Const + scoreboard players operation $CalcE2 Temporary = $Damage Temporary + scoreboard players operation $CalcE2 Temporary %= $1000 Const + scoreboard players operation $CalcE1 Temporary *= $CalcD Temporary + scoreboard players operation $CalcE2 Temporary *= $CalcD Temporary + scoreboard players operation $CalcE2 Temporary /= $1000 Const + scoreboard players operation $Damage Temporary = $CalcE1 Temporary + scoreboard players operation $Damage Temporary += $CalcE2 Temporary # リセット scoreboard players reset $CalcA Temporary scoreboard players reset $CalcB Temporary @@ -52,4 +55,5 @@ scoreboard players reset $CalcB2 Temporary scoreboard players reset $CalcC Temporary scoreboard players reset $CalcD Temporary - scoreboard players reset $CalcE Temporary + scoreboard players reset $CalcE1 Temporary + scoreboard players reset $CalcE2 Temporary diff --git a/TheSkyBlessing/data/api/functions/damage/core/calc/enchantment.mcfunction b/TheSkyBlessing/data/api/functions/damage/core/calc/enchantment.mcfunction index d8c316cc0f..1b43026f53 100644 --- a/TheSkyBlessing/data/api/functions/damage/core/calc/enchantment.mcfunction +++ b/TheSkyBlessing/data/api/functions/damage/core/calc/enchantment.mcfunction @@ -7,7 +7,8 @@ #> Temp # @private #declare score_holder $CalcF - #declare score_holder $CalcG + #declare score_holder $CalcG1 + #declare score_holder $CalcG2 # $EPF(e2) = min(20, $EPF(e0)) * e2 / 50 scoreboard players operation $EPF Temporary < $20 Const @@ -16,12 +17,16 @@ scoreboard players operation $CalcF Temporary = $100 Const scoreboard players operation $CalcF Temporary -= $EPF Temporary # $damage(e4) = $damage(e4) * $CalcF(e2) / e2 - scoreboard players operation $CalcG Temporary = $Damage Temporary - execute if score $Damage Temporary matches 10000000.. run scoreboard players operation $CalcG Temporary /= $10 Const - scoreboard players operation $CalcG Temporary *= $CalcF Temporary - execute if score $Damage Temporary matches ..9999999 run scoreboard players operation $CalcG Temporary /= $100 Const - execute if score $Damage Temporary matches 10000000.. run scoreboard players operation $CalcG Temporary /= $10 Const - scoreboard players operation $Damage Temporary = $CalcG Temporary + scoreboard players operation $CalcG1 Temporary = $Damage Temporary + scoreboard players operation $CalcG1 Temporary /= $100 Const + scoreboard players operation $CalcG2 Temporary = $Damage Temporary + scoreboard players operation $CalcG2 Temporary %= $100 Const + scoreboard players operation $CalcG1 Temporary *= $CalcF Temporary + scoreboard players operation $CalcG2 Temporary *= $CalcF Temporary + scoreboard players operation $CalcG2 Temporary /= $100 Const + scoreboard players operation $Damage Temporary = $CalcG1 Temporary + scoreboard players operation $Damage Temporary += $CalcG2 Temporary # リセット scoreboard players reset $CalcF Temporary - scoreboard players reset $CalcG Temporary + scoreboard players reset $CalcG1 Temporary + scoreboard players reset $CalcG2 Temporary From f393ca7e343d018e3a4e48cf3c456954c5aed961 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=AF=E3=81=84=E3=81=84=E3=82=8D?= Date: Sun, 14 Jun 2026 04:01:38 +0900 Subject: [PATCH 6/8] =?UTF-8?q?=F0=9F=93=9D=20=E8=A8=88=E7=AE=97=E5=BC=8F?= =?UTF-8?q?=E3=81=AE=E3=82=B3=E3=83=A1=E3=83=B3=E3=83=88=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TheSkyBlessing/data/api/functions/damage/core/calc/.mcfunction | 2 +- .../data/api/functions/damage/core/calc/enchantment.mcfunction | 2 +- .../data/api/functions/damage/core/calc/resistance.mcfunction | 2 +- .../core/health_subtract/player/difficulty_modifier.mcfunction | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/TheSkyBlessing/data/api/functions/damage/core/calc/.mcfunction b/TheSkyBlessing/data/api/functions/damage/core/calc/.mcfunction index 55453379a9..eedf1edfcd 100644 --- a/TheSkyBlessing/data/api/functions/damage/core/calc/.mcfunction +++ b/TheSkyBlessing/data/api/functions/damage/core/calc/.mcfunction @@ -9,7 +9,7 @@ #declare score_holder $isDefenseCalcSkip # 計算式: -# damage * (1 - min(20, max(defensePoints / 5, defensePoints - damage / (2 + toughness / 4))) / 25) * (1 - min(10, resistanceLv) / 10) * (1 - (min(20, cappedEPF) / 25)) +# damage * (1 - min(20, max(defensePoints / 5, defensePoints - damage / (2 + toughness / 4))) / 25) * (1 - min(10, resistanceLv) / 10) * (1 - (min(20, cappedEPF) / 50)) # 計算的なダメージ上限(214748.36)チェック execute if score $Damage Temporary matches 21474836.. run scoreboard players set $Damage Temporary 21474836 diff --git a/TheSkyBlessing/data/api/functions/damage/core/calc/enchantment.mcfunction b/TheSkyBlessing/data/api/functions/damage/core/calc/enchantment.mcfunction index 1b43026f53..ae45edc08c 100644 --- a/TheSkyBlessing/data/api/functions/damage/core/calc/enchantment.mcfunction +++ b/TheSkyBlessing/data/api/functions/damage/core/calc/enchantment.mcfunction @@ -16,7 +16,7 @@ # $CalcF(e2) = 1 * e2 - $EPF(e2) scoreboard players operation $CalcF Temporary = $100 Const scoreboard players operation $CalcF Temporary -= $EPF Temporary -# $damage(e4) = $damage(e4) * $CalcF(e2) / e2 +# $damage(e2) = $damage(e2) * $CalcF(e2) / e2 scoreboard players operation $CalcG1 Temporary = $Damage Temporary scoreboard players operation $CalcG1 Temporary /= $100 Const scoreboard players operation $CalcG2 Temporary = $Damage Temporary diff --git a/TheSkyBlessing/data/api/functions/damage/core/calc/resistance.mcfunction b/TheSkyBlessing/data/api/functions/damage/core/calc/resistance.mcfunction index a789e1c700..4b6cd17846 100644 --- a/TheSkyBlessing/data/api/functions/damage/core/calc/resistance.mcfunction +++ b/TheSkyBlessing/data/api/functions/damage/core/calc/resistance.mcfunction @@ -13,7 +13,7 @@ # $Mul(e1) = 1 * e1 - $Resistance(e1) scoreboard players operation $Mul Temporary = $10 Const scoreboard players operation $Mul Temporary -= $Resistance Temporary -# $damage(e4) = $damage(e4) * $Mul(e1) / e1 +# $damage(e2) = $damage(e2) * $Mul(e1) / e1 scoreboard players operation $Damage Temporary *= $Mul Temporary scoreboard players operation $Damage Temporary /= $10 Const # リセット diff --git a/TheSkyBlessing/data/api/functions/damage/core/health_subtract/player/difficulty_modifier.mcfunction b/TheSkyBlessing/data/api/functions/damage/core/health_subtract/player/difficulty_modifier.mcfunction index d55d40035a..b847bd6a2c 100644 --- a/TheSkyBlessing/data/api/functions/damage/core/health_subtract/player/difficulty_modifier.mcfunction +++ b/TheSkyBlessing/data/api/functions/damage/core/health_subtract/player/difficulty_modifier.mcfunction @@ -5,7 +5,7 @@ # @private #declare score_holder $Difficulty -# $damage(e4) = $damage(e4) * (1 + ($Difficulty - 2) / 5) +# $damage(e2) = $damage(e2) * (1 + ($Difficulty - 2) / 5) function api:global_vars/get_difficulty execute store result score $Difficulty Temporary run data get storage api: Return.Difficulty 2 scoreboard players add $Difficulty Temporary 6 From d64d99556e6357e440c1353c4ce3df58c917fe0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=AF=E3=81=84=E3=81=84=E3=82=8D?= Date: Tue, 16 Jun 2026 14:39:27 +0900 Subject: [PATCH 7/8] =?UTF-8?q?:zap:=20=E3=81=95=E3=82=89=E3=81=AB?= =?UTF-8?q?=E3=83=80=E3=83=A1=E3=83=BC=E3=82=B8=E8=A8=88=E7=AE=97=E5=87=A6?= =?UTF-8?q?=E7=90=86=E3=82=92=E6=94=B9=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../damage/core/calc/defense.mcfunction | 23 ++++++++----------- .../damage/core/calc/enchantment.mcfunction | 15 ++---------- 2 files changed, 12 insertions(+), 26 deletions(-) diff --git a/TheSkyBlessing/data/api/functions/damage/core/calc/defense.mcfunction b/TheSkyBlessing/data/api/functions/damage/core/calc/defense.mcfunction index 6a21d05515..2e2e3b31a2 100644 --- a/TheSkyBlessing/data/api/functions/damage/core/calc/defense.mcfunction +++ b/TheSkyBlessing/data/api/functions/damage/core/calc/defense.mcfunction @@ -12,8 +12,7 @@ #declare score_holder $CalcB2 #declare score_holder $CalcC #declare score_holder $CalcD - #declare score_holder $CalcE1 - #declare score_holder $CalcE2 + #declare score_holder $CalcE # $CalcA(e2) = $defensePoints(e2) / 5 scoreboard players operation $CalcA Temporary = $defensePoints Temporary @@ -39,15 +38,14 @@ scoreboard players set $CalcD Temporary 1000 scoreboard players operation $CalcD Temporary -= $CalcC Temporary # $Damage(e2) = $Damage(e2) * $CalcD(e3) / e3 - scoreboard players operation $CalcE1 Temporary = $Damage Temporary - scoreboard players operation $CalcE1 Temporary /= $1000 Const - scoreboard players operation $CalcE2 Temporary = $Damage Temporary - scoreboard players operation $CalcE2 Temporary %= $1000 Const - scoreboard players operation $CalcE1 Temporary *= $CalcD Temporary - scoreboard players operation $CalcE2 Temporary *= $CalcD Temporary - scoreboard players operation $CalcE2 Temporary /= $1000 Const - scoreboard players operation $Damage Temporary = $CalcE1 Temporary - scoreboard players operation $Damage Temporary += $CalcE2 Temporary + scoreboard players set $CalcE Temporary 0 + execute if score $Damage Temporary matches 1000000.. run scoreboard players operation $CalcE Temporary = $Damage Temporary + execute if score $Damage Temporary matches 1000000.. run scoreboard players operation $CalcE Temporary /= $1000 Const + execute if score $Damage Temporary matches 1000000.. run scoreboard players operation $CalcE Temporary *= $CalcD Temporary + execute if score $Damage Temporary matches 1000000.. run scoreboard players operation $Damage Temporary %= $1000 Const + scoreboard players operation $Damage Temporary *= $CalcD Temporary + scoreboard players operation $Damage Temporary /= $1000 Const + scoreboard players operation $Damage Temporary += $CalcE Temporary # リセット scoreboard players reset $CalcA Temporary scoreboard players reset $CalcB Temporary @@ -55,5 +53,4 @@ scoreboard players reset $CalcB2 Temporary scoreboard players reset $CalcC Temporary scoreboard players reset $CalcD Temporary - scoreboard players reset $CalcE1 Temporary - scoreboard players reset $CalcE2 Temporary + scoreboard players reset $CalcE Temporary diff --git a/TheSkyBlessing/data/api/functions/damage/core/calc/enchantment.mcfunction b/TheSkyBlessing/data/api/functions/damage/core/calc/enchantment.mcfunction index ae45edc08c..11766ebca1 100644 --- a/TheSkyBlessing/data/api/functions/damage/core/calc/enchantment.mcfunction +++ b/TheSkyBlessing/data/api/functions/damage/core/calc/enchantment.mcfunction @@ -7,8 +7,6 @@ #> Temp # @private #declare score_holder $CalcF - #declare score_holder $CalcG1 - #declare score_holder $CalcG2 # $EPF(e2) = min(20, $EPF(e0)) * e2 / 50 scoreboard players operation $EPF Temporary < $20 Const @@ -17,16 +15,7 @@ scoreboard players operation $CalcF Temporary = $100 Const scoreboard players operation $CalcF Temporary -= $EPF Temporary # $damage(e2) = $damage(e2) * $CalcF(e2) / e2 - scoreboard players operation $CalcG1 Temporary = $Damage Temporary - scoreboard players operation $CalcG1 Temporary /= $100 Const - scoreboard players operation $CalcG2 Temporary = $Damage Temporary - scoreboard players operation $CalcG2 Temporary %= $100 Const - scoreboard players operation $CalcG1 Temporary *= $CalcF Temporary - scoreboard players operation $CalcG2 Temporary *= $CalcF Temporary - scoreboard players operation $CalcG2 Temporary /= $100 Const - scoreboard players operation $Damage Temporary = $CalcG1 Temporary - scoreboard players operation $Damage Temporary += $CalcG2 Temporary + scoreboard players operation $Damage Temporary *= $CalcF Temporary + scoreboard players operation $Damage Temporary /= $100 Const # リセット scoreboard players reset $CalcF Temporary - scoreboard players reset $CalcG1 Temporary - scoreboard players reset $CalcG2 Temporary From b9179272d46c31795a3bbbdf05852b953150b78d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=AF=E3=81=84=E3=81=84=E3=82=8D?= Date: Mon, 22 Jun 2026 17:13:33 +0900 Subject: [PATCH 8/8] =?UTF-8?q?:zap:=20=E9=98=B2=E5=BE=A1=E5=8A=9B?= =?UTF-8?q?=E3=81=AB=E3=82=88=E3=82=8B=E3=83=80=E3=83=A1=E3=83=BC=E3=82=B8?= =?UTF-8?q?=E6=B8=9B=E7=AE=97=E5=87=A6=E7=90=86=E3=82=92=E6=94=B9=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../damage/core/calc/defense.mcfunction | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/TheSkyBlessing/data/api/functions/damage/core/calc/defense.mcfunction b/TheSkyBlessing/data/api/functions/damage/core/calc/defense.mcfunction index 2e2e3b31a2..26ba2722a2 100644 --- a/TheSkyBlessing/data/api/functions/damage/core/calc/defense.mcfunction +++ b/TheSkyBlessing/data/api/functions/damage/core/calc/defense.mcfunction @@ -28,23 +28,22 @@ # $CalcB(e2) = $defensePoints(e2) - $CalcB2(e2) scoreboard players operation $CalcB Temporary = $defensePoints Temporary scoreboard players operation $CalcB Temporary -= $CalcB2 Temporary -# $CalcC(e3) = min(max($CalcA(e2), $CalcB(e2)), 20 * e2) * e1 / 25 +# $CalcC(e4) = min(max($CalcA(e2), $CalcB(e2)), 20 * e2) * e2 / 25 scoreboard players operation $CalcC Temporary = $CalcA Temporary scoreboard players operation $CalcC Temporary > $CalcB Temporary scoreboard players operation $CalcC Temporary < $2000 Const scoreboard players operation $CalcC Temporary *= $4 Const - scoreboard players operation $CalcC Temporary /= $10 Const -# $CalcD(e3) = 1 * e3 - $CalcC(e3) - scoreboard players set $CalcD Temporary 1000 +# $CalcD(e4) = 1 * e4 - $CalcC(e4) + scoreboard players set $CalcD Temporary 10000 scoreboard players operation $CalcD Temporary -= $CalcC Temporary -# $Damage(e2) = $Damage(e2) * $CalcD(e3) / e3 +# $Damage(e2) = $Damage(e2) * $CalcD(e4) / e4 scoreboard players set $CalcE Temporary 0 - execute if score $Damage Temporary matches 1000000.. run scoreboard players operation $CalcE Temporary = $Damage Temporary - execute if score $Damage Temporary matches 1000000.. run scoreboard players operation $CalcE Temporary /= $1000 Const - execute if score $Damage Temporary matches 1000000.. run scoreboard players operation $CalcE Temporary *= $CalcD Temporary - execute if score $Damage Temporary matches 1000000.. run scoreboard players operation $Damage Temporary %= $1000 Const + execute if score $Damage Temporary matches 100000.. run scoreboard players operation $CalcE Temporary = $Damage Temporary + execute if score $Damage Temporary matches 100000.. run scoreboard players operation $CalcE Temporary /= $10000 Const + execute if score $Damage Temporary matches 100000.. run scoreboard players operation $CalcE Temporary *= $CalcD Temporary + execute if score $Damage Temporary matches 100000.. run scoreboard players operation $Damage Temporary %= $10000 Const scoreboard players operation $Damage Temporary *= $CalcD Temporary - scoreboard players operation $Damage Temporary /= $1000 Const + scoreboard players operation $Damage Temporary /= $10000 Const scoreboard players operation $Damage Temporary += $CalcE Temporary # リセット scoreboard players reset $CalcA Temporary