ダウンロードはこちら
https://lemon-slime.com/resources/HealthScope.zip
上記のzipファイルを右クリックして展開後、中にあるmcaddonファイルを起動することで、アドオンのインポートが開始されます。
概要
本アドオンは、モブの現在の体力を表示するアドオンです。剣をもった状態でモブに照準を合わせて右クリックしてみてください。すると、そのモブの現在の体力が画面下部に表示されることが確認できるでしょう。
視線の先にエンティティが存在しない場合は「エンティティが存在しません」と表示されます。また、エンティティが存在しても、それが(アイテムなど)体力の概念を持たないエンティティであった場合、「体力を読み取れません」と表示されます。
なお、これは「sword」という名前が最後につくアイテムなら、どんなものでも有効です。従って、オリジナルの剣であっても正常に動作します。
このアドオンを使うことで、剣が「攻撃」と「体力検知」の2つの機能を持つようになります。便利ですので、是非サバイバル等でご活用ください。
解説
本アドオンについて解説したYoutube動画を作成しました。こちらより視聴できます。
本アドオンについて
本アドオンのご利用は自由ですが、アドオンそのものの再配布・無断転載はお止めください。アドオンの拡散・宣伝は大歓迎です。ページ上部または下部にあるSNSリンクボタンより拡散いただけます。
実行上の注意
本アドオンは、有効化するだけで動きます。ベータAPIの機能は不要です。
スクリプト
本アドオンを構成するスクリプトは極めてシンプルです。
- import * as server from "@minecraft/server";
- server.world.afterEvents.itemUse.subscribe(function(ev){
- if (ev.itemStack.typeId.endsWith("sword")){
- for (const player of server.world.getAllPlayers()){
- if (player.getEntitiesFromViewDirection()[0] != undefined){
- if(player.getEntitiesFromViewDirection()[0].entity.getComponent("minecraft:health") != undefined){
- player.runCommand(`title @s actionbar ${"体力:" + String(player.getEntitiesFromViewDirection()[0].entity.getComponent("minecraft:health").currentValue)}`);
- }else{
- player.runCommand(`title @s actionbar 体力を読み取れません`);
- }
- }else{
- player.runCommand(`title @s actionbar エンティティが存在しません`);
- }
- }
- }
- })
今回は、体力をgetComponent関数で取得し、それをtitleコマンドによって出力しています。また、スクリプトの作成にあたっては、ScriptAPI(プログラミングでゲームシステムを改変する機能)を用いています。詳細については以下の記事をご覧ください:
また、titleコマンドの詳しい挙動については以下の記事で詳しく解説しています。