投稿者:人類の恥
投稿日:2024/7/18
ジャンル:
技術・機構、
小ネタ
環境:通常
情報番号:9
構文
/tag @a remove hit
/tag @a[tag=!give_orb,hasitem=[{item=diamond_sword,location=slot.weapon.mainhand},{item=diamond_sword,data=0,quantity=0,location=slot.weapon.mainhand}]] add hit
/tag @a[tag=hit] add give_orb
/tag @a[hasitem={item=diamond_sword,data=0,location=slot.weapon.mainhand}] remove give_orb
/execute at @a[tag=give_orb] run summon xp_orb
タグhitがついてるプレイヤーが攻撃を当てたプレイヤーです。
例としてダイヤモンドの剣に対応するように作りました。他のツールでも同じように作れます。
説明
上記コマンドではtag: hitにより攻撃を行ったプレイヤーを識別します。tag: give_orbは経験値を与える(耐久値を回復する必要のある)プレイヤーを識別するもので、これがなくなるまで次の攻撃を検出できません
このコマンドにより、名前などを保持した武器(/防具)に対し耐久値減少を検知することが可能になります。これは/replaceitemによる耐久回復では実現できません
注意点
tag: hitの仕様に加え、修繕による耐久回復にいくらか時間がかかるため、連続する攻撃を検出できない場合があります。現在の耐久値をスコアで保存し、それと比べて耐久値が減少したことを検知することで改善が期待されますが、膨大なコマンド量を必要とします
経験値オーブは過剰に生成されます
補足
上記コマンドでは周囲に経験値オーブが撒き散らされますが、/tpにより防いだり、/stopsoundや/playanimationにより存在感を薄めたりすることが可能です
最終更新:2024年12月22日 20:07