Skip to content

神器の発動条件を満たさない間も長押し・スニーク時間が進む #2313

Open

Description

@Lapis-LJA

長押し中にクールダウンやMP不足が解消しても、押し直すまでチャージできなくなる場合があります。

原因は、本体の長押し時間が神器の発動条件とは独立して進むことです。increment は神器側の条件判定より先に時間を加算します。そのため、条件判定で処理を中断しても、特定tickとの一致で行う更新は後から再実行されません。

例として Asset #2176 のアポカリプスは、1・21・41…141tickの完全一致時だけチャージを更新します。使用直後の240tickクールダウン中から長押しすると、全更新時点を通過し、解除後もチャージされない構成です。

発動条件を満たした後は、押し直さずチャージを開始できるようにしたいです。本体側で提供する長押し時間と神器側の条件判定をどう組み合わせるか整理してください。

コード上の確認に基づく報告です。実サーバーでは未検証です。

Activity

  1. changed the title [-]長押し中に発動条件を満たしてもチャージ更新を取り逃す[/-] [+]神器の発動条件を満たさない間も長押し時間が進む[/+] on Oct 16, 2026
  2. changed the title [-]神器の発動条件を満たさない間も長押し時間が進む[/-] [+]神器の発動条件を満たさない間も長押し・スニーク時間が進む[/+] on Oct 16, 2026
  3. tatuharu commented on Oct 26, 2026

    @tatuharu
    Member

    この問題を実サーバーで再現したので、結果と、同じ判定方法を使っている Asset のレビュー中の神器を共有します。

    再現結果

    Asset #2122 の 1619 P.C.D.L.R. Volt-Rave(head 2f15fb0)で確かめました。本体は TheSkyBlessing master の 95528d1、Minecraft は 1.20.4 です。1619 はチャージの段階を UsingItemTime{mainhand:17}・{mainhand:20} との一致で判定しています。

    押し始めの状態 Stack 1 になった UsingItemTime Stack 2(フルチャージ) 離したときのダメージ
    すぐ使える状態(対照) 1 20 で到達 1968
    フルチャージで離した次の tick に押し直す(種別クールダウンの残り 29) 30 60 まで押し続けても到達しない 984
    MP 100 で押し始め、24 tick 後に MP を 500 にする 25 60 まで押し続けても到達しない 984
    離してから 19 tick 待って押し直す(種別クールダウンの残り 10) 11 20 で到達(Stack 1 から 9 tick 後) 1968

    長押しは core:handler/using_item の進捗を毎 tick 付与して作りました。このとき UsingItem と UsingItem.Mainhand は1 tick に1ずつ進みました。付与をやめて1 tick 進めたものを、離した入力として扱っています。そこから using_item/2.check_condition と release_using_item/3.main までは実際のトリガーを通っています。

    同じ判定方法の神器(レビュー中の Asset PR)

    どれも、チャージの段階を UsingItemTime との一致で判定しています。神器ごとの境界の値は各レビューコメントに書いています。

    #2184 と #2122 のレビューでは、この件は本体側で対応する問題として扱われています。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions