マイクラ コマンド 釣竿魔法の作り方!とスコアボード 使い方になります。
スコアボードコマンドは、自身のスコアの値を設定したり、増減したりできる値の保管や管理できるコマンドになります。
{ この記事の目次 }
釣竿魔法の作り方
釣竿魔法は釣竿を装備し、使用したときに、何かを変えます。
scoreboard(スコアーボード)を使って、条件と値を変更して作ることができます。
scoreboardとは?
scoreboardとは、値を保存するコマンドになります。
ゲーム内でプライヤー同士がゲームを行った際に、スコアをカウントしたり、保存したり、変更できる便利なコマンドになります。
scoreboardのパラメーター引数一覧
スコアーボードのパラメーターの種類には、大きく分けて2つあります。
objectives パラメーター
objectivesは、目的をしているパラメーターにります。
/scoreboard objectives <パラメーター(要求名)> <引数(値)>
指定できるパラメーター一覧は、以下の通りです。
引数の値を入れると、実行されます。
パラメーター | 説明 |
---|---|
add | オブジェクト名、条件、表示名のオブジェクトを新しく作成する。 |
list | 作成した全てのスコアの表示名と条件を表示する。 |
remove | 作成した全てのスコアの表示名と条件を削除する。 |
setdisplay | 指定された表示スロット(画面)に表示する。 |
players パラメーター
playersは、プレイヤーの操作のパラメーターになります。
/scoreboard players <パラメーター(要求名)> <ターゲット引数(値)>
指定できるパラメーター一覧は、以下の通りです。
引数の値を入れると、実行されます。
パラメーター | 説明 |
---|---|
list | 記録がある全てのエンティティを表示する |
players get | 実行結果としてスコアの値を返す。 |
players set | セットした値を上書きする。 |
players add | 指定したエンティティにやスコアを指定量を加算する。 |
players remove | 指定したエンティティやスコアを指定量だけ減算する。 |
players reset | 指定したエンティティやスコアを全てを削除する。 |
players operation | 値を算術演算子を使って変更する。 |
scoreboardでダミーを入れてみよう。
練習にスコアーボードを作ってみよう。
実行コマンドを入れてスコアボード「test」が作成されます。
ダミーなので、テストです。
スコアボードで条件を作ってみよう!
にんじんの釣竿の魔法条件を作ります。
エンチャントしたにんじんの釣竿を用意しましょう。
/give @p minecraft:carrot_on_a_stick{enchants:[{id:fire_protection,lvl:1}]}
①複合条件付きのスコアーボードを作成する
まずは、スコアボードを使って条件を作ります。
プレイヤーがアイテムおよびブロックを使用した時にスコアが増加する「minecraft.used」を使用します。
/* スコアボードをaddで作成、オブジェクト名 cs 複合条件 にんじん釣竿を右手のアイテムの使用時 */
/scoreboard objectives add cs minecraft.used:minecraft.Carrot_on_a_Stick
以下のようにオブジェクトが作成されます。
よく使われる複合条件は以下になります。
基本条件 | 説明 |
---|---|
minecraft.custom | プレイヤーの統計情報に基づく全ての複合条件の基礎条件で増加する。 |
minecraft.crafted | アイテムを取り出した時に、その数に応じてスコアが増加する。 |
minecraft.used | プレイヤーがアイテムおよびブロックを使用した時にスコアが増加する。 |
minecraft.broken | プレイヤーがアイテムの耐久値を0以下にした時にスコアが増加する。 |
minecraft.mined | プレイヤーがブロックを採掘した時にスコアが増加する。 |
minecraft.picked_up | プレイヤーがドロップアイテムを拾った時にスコアが増加する。 |
minecraft.dropped | プレイヤーがアイテムを捨てるキーを押して捨てた時、あるいはインベントリから直接捨てた時にスコアが増加する。 |
minecraft.killed | プレイヤーがエンティティを倒した時にスコアが増加する。 |
minecraft.killed_by | プレイヤーがエンティティに倒された時にスコアが増加する。 |
teamkill | プレイヤーが特定の色のチームのメンバーを倒した時にスコアが増加する。 |
killedByTeam | プレイヤーが特定の色のチームのメンバーに倒された時にスコアが増加する。 |
②TNTがあるときに「にんじん付きの棒を」振ったかどうかの判定を用意する
このようにコマンドブロックを用意しましょう。
反復ブロックには、スイッチまたはレバーをつけておきましょう。
反復のコマンドブロックには、以下のようなコマンドを作ります。
アイテムを使用時に増加するプログラムを作成します。
/clear @a[
scores={cs=1},/* スコアボードのカウント条件 */
nbt={SelectedItem:{id:"minecraft:Carrot_on_a_Stick",/* データタグに右手のアイテムの指定*/
tag:{enchantments:[
{id:fire_protection,lvl:1}
]
}}}
] tnt 1 /* TNTが1つのときにエンチャントを実行 */
スコアの条件の書き方一覧になります。
スコアの条件の書き方 | 意味 |
---|---|
[scores={test=1}] | testが1の時だけ実行する |
[scores={test=1..}] | testが1以上の時だけ実行する |
[scores={test=1..3}] | testが1から3の時だけ実行する |
[scores={test=1,bar=1..5}] | testが1かつbarが1から5の時だけ実行する bar(オブジェクト名) |
btb(NBTフォーマット)とは?
ntbとは、NBTフォーマットになります。
マインクラフトの色々なデータは NBT(Named Binary Tag) という独自の形式で保存しています。ゲーム中でコマンドでアクセスするために使われているものが「データタグ」です。
{<タグ名>:<値>}
現在持っているアイテムを指定したいので、この場合は、「SelectedItem」はにんじんの釣竿になります。
スコアの条件の書き方 | 意味 |
---|---|
Dimension | プレイヤーがいるディメンション。 |
playerGameType | プレイヤーのゲームモード。 |
Score | プレイヤーの死亡回数。 |
SelectedItemSlot | プレイヤーが選択している、つまり現在手に持っているホットバーインベントリのスロット番号。 |
SelectedItem | プレイヤーが現在手に持っているアイテム。 |
SpawnX/SpawnY/SpawnZ | プレイヤーが最後に使用したベッド、つまりリスポーン地点の座標。 リスポーンする時にベッドが破壊されていた場合、このデータタグは消去されます。 よってこのデータタグ自体が存在しない場合があります。 |
SpawnForced | プレイヤーが最後に使用したベッドが破壊されていた場合でも、強制的にその座標にリスポーンします。 |
Sleeping | プレイヤーがベッドで寝ている状態。 |
SleepTimer | プレイヤーがベッドで寝始めてから経過した時間をゲームtick(1秒=20)で表します。 |
foodLevel | プレイヤーの満腹度。 満腹状態のとき 20 です。 |
foodExhaustionLevel | プレイヤーが最後に使用したベッドが破壊されていた場合でも、強制的にその座標にリスポーンします。 |
Sleeping | プレイヤーがベッドで寝ている状態。 |
foodTickTimer | プレイヤーがベッドで寝始めてから経過した時間をゲームtick(1秒=20)で表します。 |
foodLevel | プレイヤーの満腹度。満腹状態のとき 20 です。 |
foodExhaustionLevel | プレイヤーの行動によって蓄積された消耗レベル。 消耗レベルが 4.0 を超えたとき、4.0 減算され、隠し満腹度が 1.0 消費される。 |
foodSaturationLevel | プレイヤーの隠し満腹度レベル。 |
foodTickTimer | プレイヤーの満腹度による体力増減のためのタイマー。 満腹度が 17 以上のときtickが経過することによって自動的に加算され、80 を超えると 0 にリセットされ、体力が 1 増加します。 満腹度が 0 のときtickが経過することによって自動的に加算され、80 を超えると 0 にリセットされ、体力が 1 減少します。 |
Inventory | プレイヤーのインベントリにあるアイテムのリスト。 |
EnderItems | プレイヤーがエンダーチェストに格納したアイテムのリスト。 |
XpLevel | プレイヤーが持っている能力。外部ツールで書き換えが可能。 |
XpP |
プレイヤーが次のレベルに上がるために必要な、経験値バーの進捗パーセント。 |
XpSeed |
プレイヤーが次のエンチャントを実行する時に使用されるエンチャントシード値。 |
XpTotal |
fプレイヤーがそれまでに集めた経験値の合計。 |
tag(タグ)とは?
tagとは、簡単にエンティティやアイテム、ブロックそれぞれの識別する名札名になります。アイテムのデータータグを使って、振る舞いを指定します。
このタグ(blast_protection
)を指定して、tnt が1個あるとき、火炎耐性(耐火)を減らすことができます。
③人参の棒を振った時に雷を召喚
チェーンブロックには以下のコマンドを入れます。
(条件付き、常時実行)
/execute as @a[
scores={cs=1},/* スコアボードのカウント条件 */
nbt={SelectedItem:{id:"minecraft:Carrot_on_a_Stick"},/* データタグに右手のアイテムの指定*/
tag:{enchantments:[{id:blast_protection,lvl:1}
]
}}}
at @s run summon minecraft:lightning_bolt ^ ^ ^5 /* 向いている方向の5ブロック先に雷を召喚*/
④にんじんの棒を振った時に振った時にTNTを召喚
チェーンブロックには以下のコマンドを入れます。
(条件付き、常時実行)
/execute @a[
scores={cs=1},/* スコアボードのカウント条件 */
nbt={SelectedItem:{id:"minecraft:Carrot_on_a_Stick"},/* データタグに右手のアイテムの指定*/
tag:{enchantments:[{id:fire_protection,lvl:1}
]
}}}
]
at @s run summon minecraft:tnt ^ ^ ^5 /* 向いている方向の5ブロック先 TNTを召喚 */
⑤スコアボードをリセットする
チェーンブロックには以下のコマンドを入れます。
(条件付き、常時実行)
/scoreboard players reset /* スコアボードリセット*/
@a[scores={cs=1},/* スコアボードのカウント条件 */
nbt={SelectedItem:{id:"minecraft:Carrot_on_a_Stick"},/* データタグに右手のアイテムの指定*/
tag:{enchantments:[{id:fire_protection,lvl:1}
]
}}}
] cs /* オブジェクト名*/