Repository navigation
Conversation
Lapis-LJA
left a comment
There was a problem hiding this comment.
まず、前提としてこれじゃ厳密にMP消費量を取得できないけど大丈夫?
(MP回復とMP消費が同時に起こると計測できないため)
tatuharu
left a comment
There was a problem hiding this comment.
このレビューはハルがAI自動レビューの動作テストのためにOpus5.5 Extra Highを使用してレビューを行なったものです。鵜呑みにせず、指摘を採用するかはお任せします。
指摘が 2 件あります。詳細は行コメントに書いています。
- 〔不具合〕攻撃範囲の段階を選ぶ前に
$E0408.Magnitudeに Multiplier を掛けているため、MP の差に関係なく常に3段階目の範囲になる - 〔挙動の変化〕攻撃範囲の中心が3段階とも
^ ^ ^-2になり、2・3段階目の範囲がプレイヤーの前方へ移った
| 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 |
There was a problem hiding this comment.
3ab754e から、MP の差に関係なく、常に3段階目(半径8)の範囲で攻撃するようになっています。
37行目の scoreboard players operation $E0408.Magnitude Temporary *= $E0408.Multiplier Temporary は、ダメージを出すと同時に $E0408.Magnitude 自体を書き換えます。そのため48〜50行目で段階を選ぶときの $E0408.Magnitude は、100〜500ではなく20000〜100000になっています。境界の $E0408.Border1・$E0408.Border2 は200・300なので、いつも50行目の attack/3.m が呼ばれます。Lore の「MPが使用時と比べて低いほど攻撃範囲、威力、推進力が上昇する」に合わず、0bc93e0 では MP の差に応じて半径3・6・8の範囲を選んでいました。ダメージの値は変わっていません。
検証用サーバー(Minecraft 1.20.4、このPRの head 3ab754e)で確かめました。3人のプレイヤーに 3.main と同じ FieldOverride で api:entity/mob/effect/give から Effect 408 を付与し、効果中に MP を0・150・450減らして終了を待ちました。各プレイヤーの後ろ2・7・11ブロックと前5ブロックにハスクを置いています。3人とも後ろ2・7ブロックと前5ブロックのハスクに当たり、後ろ11ブロックには当たりませんでした。0bc93e0 で同じ手順を流すと、MP の差が0では後ろ2ブロックだけ、150では後ろ2・7ブロック、450では後ろ2・7・11ブロックに当たりました。ダメージ(196.8・492・984)はどちらも同じです。神器を使う経路では試していません。
掛け算の結果を $E0408.Multiplier に入れれば、$E0408.Magnitude は段階を選ぶときまで100〜500のまま残ります。この suggestion を当てて同じ手順を流すと、MP の差が0では後ろ2ブロックだけ、150では後ろ2・7ブロックに当たり、ダメージも同じでした。450の結果はもう1件の指摘(範囲の中心)のとおりです。
| 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 score $E0408.Multiplier Temporary run data get storage asset:context this.Multiplier | |
| scoreboard players operation $E0408.Multiplier Temporary *= $E0408.Magnitude Temporary | |
| execute store result storage api: Argument.Damage double 0.01 run scoreboard players get $E0408.Multiplier Temporary |
There was a problem hiding this comment.
修正を確認しました。MP の差に関係なく常に3段階目の範囲になる件は解消されていて、この指摘への対応として問題ありません。
270a742 で37行目が掛け算の結果を $E0408.Multiplier に入れるようになり、段階を選ぶときの $E0408.Magnitude は100〜500のまま残ります。検証用サーバー(Minecraft 1.20.4、head 270a742)で前回と同じ手順を流すと、MP の差が0では後ろ2ブロックだけ、150では後ろ2・7ブロックに当たりました。450では3段階目の範囲になり、後ろ2・7ブロックと前5ブロックに当たっています。ダメージ(196.8・492・984)は前回と同じです。
| 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 |
There was a problem hiding this comment.
3ab754e で、攻撃範囲の中心が3段階とも positioned ^ ^ ^-2 になりました。0bc93e0 では段階ごとに ^ ^ ^-2・^ ^ ^-4・^ ^ ^-6 で、範囲が後ろへ広がっていました。いまの中心では、2段階目(半径6)はプレイヤーの前方4ブロック、3段階目(半径8)は前方6ブロックまで届き、後ろは8・10ブロックまでになります。このコミットは各種パラメーターを神器から設定する変更なので、意図した変更かを確認させてください。
1件目の指摘の suggestion を当てて、MP を450減らしたプレイヤーで試しました(検証用サーバー、Minecraft 1.20.4、head 3ab754e)。3段階目の範囲が選ばれ、前5ブロックのハスクに当たり、後ろ11ブロックのハスクには当たりませんでした。0bc93e0 では同じ条件で後ろ11ブロックに当たり、前5ブロックには当たりませんでした。MP の差が150のときは2段階目の範囲が選ばれ、後ろ2・7ブロックに当たって前5ブロックには当たりませんでした。前4ブロック以内のハスクでは試していません。
元の範囲に戻すなら、48〜50行目の positioned を段階ごとに ^ ^ ^-2・^ ^ ^-4・^ ^ ^-6 にします。
There was a problem hiding this comment.
未解消です。270a742 では48〜50行目は変わっておらず、攻撃範囲の中心は3段階とも positioned ^ ^ ^-2 のままです。
検証用サーバー(Minecraft 1.20.4、head 270a742)で前回と同じ手順を流すと、MP を450減らしたプレイヤーでは3段階目の範囲が選ばれ、前5ブロックのハスクに当たり、後ろ11ブロックのハスクには当たりませんでした。0bc93e0 では同じ条件で後ろ11ブロックに当たり、前5ブロックには当たりませんでした。意図した変更なら、その旨の返信だけで十分です。
以下のAssetを追加