見出し画像

統合版でもポーションを自由に使いたい!【Minecraft】

こんにちは。ちべたんです。
普段Java版ばかり触っている当サークルですが、統合版を触る機会がありその中で統合版で扱えるポーションの種類の少なさに驚きました。

Java版ならコマンドで何でも設定できるが…
統合版ではこれがすべて。

統合版ではコマンド内でNBTタグを指定できないため、giveコマンドでポーションを与える際にはポーション一覧の中から選んで与えるだけに留まっています。ですがこれだけでは設計しているゲームに合わないことが多々あるので、今回は代替案を考えてみます。

・実際のコマンド

試しに、使うと30秒間足が速くなるアイテムを作ってみます。
本来統合版では俊敏のポーションはレベル1が3分と8分、レベル2が1分半です。いずれも効果時間が長すぎるので自作してみましょう。
ということでコマンドが以下になります。

1つ目:コマンドブロックを「リピート」「無条件」「常時実行」

execute as @e[type=snowball] at @s if entity @a[rm=0,r=2] run effect @p speed 30 1

2つ目:コマンドブロックを「チェーン」「無条件」「常時実行」

kill @e[type=snowball]

使用するコマンドブロックは2つだけです。そして気づいたかと思いますが、今回使用するのは飲むポーションではなく雪玉です。
つまり、プレイヤーが雪玉を投げるとそれを検知、足が速くなるエフェクトをプレイヤーに付与するという流れです。

・解説

ここからは簡単に原理の説明を。
もう一度コマンド文を見てみます。

execute as @e[type=snowball] at @s if entity @a[rm=0,r=2] run effect @p speed 30 1

最初にexecuteコマンド。
これによって、雪玉をコマンドの実行者に指定しています。
また、雪玉から見てプレイヤーが0~2mの範囲内にいたときに後半のコマンドを実行させています。

※executeコマンドについての詳しい解説はこちらから↓Java版向けですが統合版でも一部のセレクターの表記などを除いて内容はほとんど同じです。

2つ目のコマンドでは、常時雪玉を消す処理をすることで複数回、また複数人にエフェクトが付与されることを防いでいます。

・応用

まずこのコマンドでは、投げる動作をするアイテムならすべて使用することができます。
例えばエンダーパールやエンダーアイ、卵などです。一方で、例えば足が速くなる雪玉とジャンプ力が高くなる雪玉の両方を作ることはできません(足が速くなってかつジャンプ力が高くなる雪玉を作ることは可能)。これはNBTタグによって複数種類の雪玉を区別することができないからです。

また、run以降のコマンドは自由に設定ができるので、エフェクト以外にも汎用性は高そうです。

それではまた次回。

この記事が気に入ったらサポートをしてみませんか?