Minecraft【Java版/統合版】
時の時計。(アイテム検知)
時計を投げると時間が止まる(経験値消費)。
Java版1.19.2、統合版はv1.19.30で動作確認。
【Java版】では、メインハンドとアイテム検知を利用して、時間を止めたプレイヤーだけ経験値を減らします。時計を拾うか、経験値が無くなると時間が再生。マルチプレイでもアイテムを受け渡すだけで、交代して使うことが出来ます。
【統合版】では、落ちてるアイテムは名前で検知出来るという謎仕様があるので、Java版に似た動作が簡単に出来ました。ただしアイテムの受け渡しには時計ケースを使います。(タグの切り替え装置)
※hasitemが使えると、Java版のようなタグの切り替えが出来るかも知れません。未検証
時の時計【Java版】
時計を投げると経験値を消費して、時間を止め敵が動かなくなります。
アイテムを拾うか、経験値が無くなると時間が再生。
アイテム名の変更。
Java版では名前を変更したアイテムを、コマンドから直接出せるので便利です。
※メモ帳やテキストエディタでコマンドを作っておくと便利。
①名前を付けた時計を入手するコマンドを作成。
コマンドの作り方は魔女の剣と同じなので割愛します。
チャットコマンドで入手します。
/give @p minecraft:clock {display:{Name:"\"時の時計\"",Lore:["\"説明文\""]}} 1 |
Java版のコマンド作成。
画像を参考に、ブロックを配置。
◎配置したコマンドブロックの状態/すべて無条件
コマンドブロックの色 | ブロックの種類 | レッドストーン |
黄色 | インパルス | 動力が必要 |
青色 | チェーン | 常時実行 |
紫色 | リピート | 常時実行 |
❶時の時計起動装置
①execute if entity @e[nbt={Item:{tag:{display:{Name:"\"時の時計\"",Lore:["\"説明文\""]}}}}] ②scoreboard objectives add t_skill dummy ③scoreboard players set 時の時計 t_skill 0 ④execute as @e[nbt={SelectedItem:{tag:{display:{Name:"\"時の時計\"",Lore:["\"説明文\""]}}}}] at @s run tag @e[nbt={SelectedItem:{tag:{display:{Name:"\"時の時計\"",Lore:["\"説明文\""]}}}}] add c_toki |
①時の時計を持っていない時、信号を送ります。
②スコアボード「t_skill」を作成。
③スコアボード「t_skill」の時の時計を0に設定します。(タイマー用)
④時の時計をメインハンドに持っているプレイヤーにタグ「c_toki」を付ける。
②は、動力が必要に変更。地面に埋めます。
❷タイマーと時間を止める装置
①execute if entity @e[tag=c_toki,level=1..] ②scoreboard players add 時の時計 t_skill 1 ③execute as @e[type=!minecraft:player] at @s run data merge entity @s {NoGravity:1b,NoAI:1b,direction:[0.0,0.0,0.0],power:[0.0,0.0,0.0],Motion:[0.0,0.0,0.0]} |
①タグ付きプレイヤーの経験値が1レベル以上の時、信号を送ります。
②信号がある時、スコアボード「t_skill」の時の時計に1足していきます。
③プレイヤー以外の動きを止める。
❸経験値タイマー
①execute if score 時の時計 t_skill matches 10.. ②scoreboard players set 時の時計 t_skill 0 ③experience add @p[tag=c_toki] -1 levels ④execute as @a[tag=c_toki] at @s run playsound block.note_block.guitar player @a[tag=c_toki] ~ ~ ~ 1 1.05 1 |
①スコアボード「t_skill」の時の時計が10以上になったら信号を出す。
②スコアボード「t_skill」の時の時計を0に設定します。
③タグ付きプレイヤーから経験値レベルを1引く。
④タグ付きプレイヤーにギター音を鳴す。
❹時の時計終了装置
①execute as @e[type=!minecraft:player] run data merge entity @s {NoGravity:0b,NoAI:0b,direction:[0.0,-10.0,0.0],power:[1.0,-10.0,0.0]} ②scoreboard objectives remove t_skill ③tag @a remove c_toki |
①アイテムを拾うか経験値が無くなった時、プレイヤー以外の動きを再開。
②スコアボード「t_skill」を削除。
③全てのプレイヤーからタグ「c_toki」を削除。
今回はモブの動きを止めるスキルでした。アイテムを投げると起動する経験値タイマー付き装置として、他のスキルでも応用出来ると思います。
時の時計【統合版】
Java版と同じく、時計を投げると経験値を消費して、時間を止め敵が動かなくなります。
アイテムを拾うか、経験値が無くなると時間が再生。
タグの受け渡し装置を作ると大掛かりになりそうなので、簡単に作れる「時計ケース」で、タグの切り替えをします。
アイテム名の変更。
統合版ではアイテム名での検知や、名前を付けたアイテムをコマンドで出せません。(落ちてるアイテム除く)
金床を使ってチェストと時計の名前を変更しておきます。(2個)
チェスト→時計ケース 時計→時の時計 |
統合版のコマンド作成。
画像を参考に、ブロックを配置。
◎配置したコマンドブロックの状態/すべて無条件
コマンドブロックの色 | ブロックの種類 | レッドストーン |
黄色 | 衝撃 | レッドストーンが必要 |
青色 | チェーン | 常にアクティブ |
紫色 | 反復 | 常にアクティブ |
◻︎時の時計装置の仕組み
装置は大きく分けて【時計ケース】【アイテム検知装置】の2種類で設計してあります。
画像は逆向きですが、装置の見た目はJava版に似せて作ってあります。
【時計ケース】
「時の時計」専用ケース。タグを付けたり消したりする装置。
【アイテム検知装置】
落ちている「時の時計」を検知。経験値を消費して時間を止める装置。
矢印はチェストの向き。「A」と「B」には時計ケースを設置して時の時計を入れておきます。
❶時計ケース付、タグ装置。
時の時計専用ケース。タグを付けたり消したりする装置。
①testforblocks ~~~ ~~~ ~~~ ②tag @a remove c_toki ③tag @p add c_toki |
①「~~~」には「A」の座標(2回)。 後ろの「~~~」には「B」の座標を入れます。
②全てのプレイヤーから、タグ「c_toki」を削除。
③近くのプレイヤーに「c_toki」のタグを付けます。
❷時の時計起動装置
①testfor @e[type=item,name=時の時計] ②scoreboard objectives add t_skill dummy ③scoreboard players set 時の時計 t_skill 0 |
①時の時計を持っていない時、信号を送ります。
②スコアボード「t_skill」を作成。
③スコアボード「t_skill」の時の時計を0に設定します。(タイマー用)
②③は、レッドストーンが必要に変更。②は地面に埋めます。
❷タイマーと時間を止める装置
①execute @e[tag=c_toki,lm=1] ~~~ testfor @e[tag=c_toki] ②scoreboard players add 時の時計 t_skill 1 ③execute @e[type=!player] ~~~ tp @s ~~~ |
①タグ付きプレイヤーの経験値が1レベル以上の時、信号を送ります。
②信号がある時、スコアボード「t_skill」の時の時計に1足していきます。
③プレイヤー以外の動きを止める。
❸経験値タイマー
①scoreboard players test 時の時計 t_skill 10 ②scoreboard players set 時の時計 t_skill 0 ③xp -1l @e[tag=c_toki] ④execute @e[tag=c_toki] ~~~ playsound note.guitar @a[tag=c_toki] ~~~ 1 1.05 1 |
①スコアボード「t_skill」の時の時計が10になったら信号を出す。
②スコアボード「t_skill」の時の時計を0に設定します。
③タグ付きプレイヤーから経験値レベルを1引く。
④タグ付きプレイヤーにギター音を鳴す。
❹時の時計終了装置
①scoreboard objectives remove t_skill |
①アイテムを拾うか経験値が無くなった時、スコアボード「t_skill」を削除。
注意点
マルチプレイでも動作しますが、タグ「c_toki」が重複しているとうまく動作しません。
交代で使う時は、時計ケースに入れてタグを付け替えます。
同時に使いたい場合は、タグ名を変えて人数分の装置を作る必要があります。
おすすめ記事もどうぞ!