投稿日:
最終更新:

【コマンド解説編】「空中浮遊PvP」を作ろう! ~オフハンドのアイテムを判定する方法~ [Minecraft 1.9]

空中浮遊PvPコマンド解説編

お待たせしました、前回紹介した「空中浮遊PvP」のコマンド解説編です。
今回は、バージョン1.9の新要素「オフハンド(両手持ち)」を早速活用して、
左手(または右手)に持っているアイテムを判定する方法を解説します。
また、新効果「空中浮遊」でプレイヤーを上昇/下降させる方法も解説します。
是非皆さんも、自分だけのPvPワールドを作ってみてください。

「空中浮遊PvP」のダウンロードは、前回の「紹介編」へ!

これが今回配布するワールドです

私が初めて作ったPvPマップ「空中浮遊PvP」、皆さん楽しんで頂けたでしょうか?
色々と雑な所もありますが、まだ遊んでないという方はぜひ一度遊んでみてください。Minecraft 1.9の革新的な新機能「オフハンドスロット」と「空中浮遊」を活用した、新感覚のバトルが楽しめます。

新感覚PvPワールド「空中浮遊PvP」のダウンロードは前回の記事へ!
空中浮遊PvP紹介編
https://www.napoan.com/float-battle-show/
赤い矢印を持って上昇

どういう仕組みなのか、気になりますよね? それでは、これから回路とコマンドを一つ一つ解説しますバージョン1.9での初めてのコマンド解説です。ワクワクですね。


まずは回路とスコアボードを用意しよう

今回解説する回路の全貌

今回の回路は、コマンドブロック計11個(うち2個はfillクロック)、リピーター2個、パウダー5個でできています。
(レッドストーンブロックはfillコマンドで生成されたものです)
それではまず、スクショ左側のコマンドブロック9個の装置の作り方を解説します。

最速クロック回路

上図のように上下に2個のコマンドブロックを設置した後、「A」「B」に以下を入力します。

「A」に入力するコマンド/fill ~ ~-1 ~ ~4 ~-1 ~ redstone_block
「B」に入力するコマンド/fill ~ ~1 ~ ~4 ~1 ~ stone

コマンド解説記事では毎度毎度作っている「最速fillクロック」です。コマンドをセットしたら、「A」「B」の間にレッドストーンブロックを設置して下さい。すると赤い棒が現れ、高速で信号を発し続けます。

コマブロを増やす

そして赤い棒の上下に、7つのコマブロを新しく設置します。
まだ中身は空ですが、とにかく7個置いて下さい。コマンドは後で入力します。

次に、この仕掛けを動かすのに必要なScoreboardを作成します。

回路を動かすのに必要なスコアボードの作成
/scoreboard objectives add float dummy
/scoreboard objectives add KillCount playerKillCount キル数
/scoreboard objectives setdisplay sidebar KillCount

▲どれもチャット欄で実行して構いません。「float」はまだ空ですが、「KillCount」には他のプレイヤーを殺した回数が自動で代入されます。ついでにKillCount(「キル数」)を画面に表示させます。

10人殺したらゲーム終了する仕掛け

こちらのまあまあ速いクロック回路には、「C」「D」2つのコマンドブロックを繋ぎます。
だれかが一番早く10人殺したら皆殺し、強制的にゲーム終了という雑なコマンドです。

「C」に入力するコマンド
/execute @a[score_KillCount_min=10] ~ ~ ~ kill @a
キル数が10に到達した人は、即座にkill @aで全員を殺してしまう、というコマンドです。かなり無理矢理なゲーム終了の処理です。
「D」に入力するコマンド
/scoreboard players set @a KillCount 0

▲私としたことが、あんまりにも単純過ぎる仕組みです... ここは皆さんの手で、例えば商品をあげるだとか、よりPvPらしい仕掛けを考えて下さい。とにかく「KillCount」の数値がキル数なのです。


左手(オフハンド)に持っているアイテムを判定する方法

それでは、この仕掛けの肝である「オフハンドスロットのアイテムの判定」を解説します。Scoreboardコマンドを使えばあら不思議。いとも簡単に持ち物を判定して、スコアを付与できます。

矢印系アイテムの入手
/give @p minecraft:slime_ball 1 0 {display:{Name:"下向き矢印"}}
/give @p minecraft:spider_eye 1 0 {display:{Name:"横向き矢印"}}
/give @p minecraft:fermented_spider_eye 1 0 {display:{Name:"上向き矢印"}}

▲これら3つのコマンドを実行して、スライムボール(下向き矢印)クモの目(横向き矢印)発酵したクモの目(上向き矢印)を入手します。見た目がまだバニラのままですが、後で矢印のテクスチャに差し替えるのでご心配なく。

オフハンドスロットのアイテムを判定するコマブロ

それでは、先ほど増設した上の「E」「F」「G」のコマンドブロックの中身を入力します。

「E」に入力するコマンド
/scoreboard players set @a float 0 {Inventory:[{Slot:-106b,id:"minecraft:slime_ball",tag:{display:{Name:"下向き矢印"}}}]}
▲オフハンドスロットに「下向き矢印」と名の付くスライムボールがある人「float」の値を0にします。
「F」に入力するコマンド
/scoreboard players set @a float 1 {Inventory:[{Slot:-106b,id:"minecraft:spider_eye",tag:{display:{Name:"横向き矢印"}}}]}
▲オフハンドスロットに「横向き矢印」と名の付くクモの目がある人「float」の値を1にします。
「G」に入力するコマンド
/scoreboard players set @a float 2 {Inventory:[{Slot:-106b,id:"minecraft:fermented_spider_eye",tag:{display:{Name:"上向き矢印"}}}]}
▲オフハンドスロットに「下向き矢印」と名の付く発酵クモ目がある人「float」の値を2にします。
オフハンドスロットを指定する

scoreboardコマンドの末尾に{Inventory:[{Slot:-106b,id:.. と書けば、オフハンドスロットのアイテムを条件にスコアを付与できます。これにより、「上向き矢印」などの名前とアイテムIDを手がかりに、「float」スコアの値を0~2の間で増減させているんです。意外に仕組みは簡単ですよね。


「空中浮遊」効果でプレイヤーを上下に操り、落下ダメージ無効化

空中浮遊と落下ダメージ無効化

さあお次は後半戦。赤い棒の下側の、4つのコマンドブロックの中身を入力します。

「H」に入力するコマンド
/effect @a[score_float_min=0,score_float=0] clear
▲「下向き矢印」をオフハンドにセットしたプレイヤーは、エフェクト効果が消えます(落ちる)。 
「I」に入力するコマンド
/effect @a[score_float_min=1,score_float=1] minecraft:levitation 1 255
▲「横向き矢印」をオフハンドにセットしたプレイヤーは、上下の動きが封じられます。 
「J」に入力するコマンド
/effect @a[score_float_min=2,score_float=2] minecraft:levitation 1 6
▲「上向き矢印」をオフハンドにセットしたプレイヤーは、ゆっくり上昇します。
「K」に入力するコマンド
/effect @a minecraft:jump_boost 1 255 true
▲全てのプレイヤーに、限界レベルのジャンプ力アップ効果が付与されます。これにより、なんと落下ダメージが無効化されます。

バージョン1.9の新エフェクト「空中浮遊」は少し扱いづらく、レベルを「255」にすると上下の動きが封じられてしまいます。また、「245」レベルにすれば少しづつ下降するのですが、そうすると上昇→下降という動きができなくなるみたいで、自由に飛べません。なので思い切って、「下向き矢印」では効果が消えるようにしました。

落下ダメージ無効化

それともう一つ、重要なこと。なんと跳躍力上昇の効果を「255」レベルで与えれば、落下ダメージが無効になります。この間まで知りませんでした。


矢印アイテムのテクスチャを差し替えよう

「矢印」にテクスチャを!

さあラストスパートです。これらの「矢印」アイテムに、ちゃんと矢印のテクスチャを与えましょう。

矢印のテクスチャを作成

まずは、これらの矢印用テクスチャを作らないといけませんね。
「GIMP」などを使ってテクスチャを作っておきましょう。
(▲「GIMP」を使ったテクスチャ作成方法は、こちらの記事で詳しく解説しています)


デスクトップなど適当な場所に「assets」というフォルダを作り、その中に
「minecraft」>「textures」>「items」という構造でフォルダを作っていきます。
最後に、以下の名前でテクスチャ画像を「items」に入れましょう。

アイテムの種類画像の名前適用されるアイテム私が作ったテクスチャ画像
下向き矢印slimeball.pngスライムボールslimeball
横向き矢印spider_eye.pngクモの目spider_eye
上向き矢印fermented_spider_eye.png発酵したクモの目spider_eye_fermented

※上記画像はぼやけて見えますが、保存すればくっきり見えるのでご安心下さい。

「assets」フォルダを圧縮

3つの画像を入れたら、「assets」フォルダを右クリック→送る→「圧縮」しましょう。
すると「assets.zip」なるzipファイルが生成されたかと思います。

「resources.zip」に改名

生成されたzipを、回路を作ったセーブデータのフォルダ内に移動させましょう。
そして「resources.zip」に名前を変えます。スペルミスに注意!

急ぎ足のコマンド解説

だいぶ急ぎ足のコマンド解説記事になってしまいました。でも、これまで私のコマンド解説を読み続けてきた読者の皆さんなら、仕組みはご理解いただけましたよね? とにかく「Slot:-106b」を判定するんです。
以上で、「空中浮遊PvP」のご紹介は終わりです。最後までお読み頂きありがとうございました。

 

コメント

記事の内容が最新のものと異なる場合があります。ご了承ください。

“【コマンド解説編】「空中浮遊PvP」を作ろう! ~オフハンドのアイテムを判定する方法~ [Minecraft 1.9]” への3件のフィードバック

  1. スナイプ より:

    羽を使ってより直感的に空中浮遊PvPはできませんか?
    羽に疑似的な推進力をつけて・・・

    • 匿名 より:

      羽で飛んでいる人の後ろに、すぐ爆発するクリーパーを連続で召喚してブーストしてるのをよく見ますね。羽を使った遊びも色々考えてみます

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください