こんにちは。先日Twitterにてあるツイートをしたところ、わりと反響があったので紹介します。

そのツイートがこちら。

僕はこれで「バズった」と表現するのですが、このバズった動画の

仕組みを本日は解説したいと思います。


準備

まずこちらでスコアを準備します。

一つ目は人参棒の右クリックを検知するスコア

二つ目はダミースコアです。

ここから実際にファンクション(またはコマブロ)でコマンドを打っていきます。


コマンド

じゃーーーーーん!

え?これだけかって?

はい、これだけです。

では解説していきましょう。


解説

まず一つ目

scoreboard players add @a[scores={nagaoshi=1..}] nagaoshi_2 1

これは

「nagaoshiスコアが1以上のプレイヤーのnagaoshi_2スコアを1追加する」

という意味です。

言い換えると

「人参棒を右クリックしたらnagaoshiが1以上になるので、nagaoshi_2のダミースコアの値を1追加する」

ということです。

ということは、このコマンドが実行された瞬間のスコアはこうなります。

nagaoshi=1

nagaoshi_2=1

次!

execute as @a[scores={nagaoshi=2..}] run say 長押し中...

これは

「nagaoshiスコアが2以上のプレイヤーに『長押し中…』と発言させる」

という意味です。

nagaoshiスコアが2以上というのはあとの説明でわかります。

この時点のスコア構成

nagaoshi=1

nagaoshi_2=1

scoreboard players set @a[scores={nagaoshi=2..}] nagaoshi_2 0

これは

「nagaoshiが2以上なら、nagaoshi_2の値を0にセットする」

という意味です。

この時点のスコア構成

nagaoshi=1

nagaoshi_2=1

scoreboard players set @a[scores={nagasohi=2..}] naoashi 1

これは

「nagaoshiスコアが2以上ならnagaoshiスコアを1にセットする」

これが結構肝心で、現時点でのスコア構成は

nagaoshi=1

nagaoshi_2=1

なので、このコマンドは反応しませんが、人参棒を長押ししていると

nagaoshiスコアは2になります。

nagaoshiスコアが2になるまで何度もコマンドがループしていることになるので

一番初めのコマンド

scoreboard players add @a[scores={nagaoshi=1..}] nagaoshi_2 1

で、nagaoshi_2スコアが1ずつ増えていっていることになります。

そして、nagaoshiが2になった瞬間、最初のコマンド以外も反応してきます。

execute as @a[scores={nagaoshi=2..}] run say 長押し中...
scoreboard players set @a[scores={nagaoshi=2..}] nagaoshi_2 0
scoreboard players set @a[scores={nagasohi=2..}] nagaoshi 1

上の二つ目のコマンドが発動する時点では、nagasohi_2のスコアが4にまで増えています。

そして、nagaoshiが2になるときにnagaoshi_2が0になります。

つまり、人参棒を右クリックしている間は「nagaoshi_2が5以上増えない」というわけです。

これでなんとなくわかったと思いますが、この右クリック長押し検知は

「nagaoshi_2が5以上になる瞬間を検知している」わけです。

では、右クリックをやめた瞬間どうなるか

nagaoshiは2にならず1のまま

nagaoshiが1以上で、nagaoshi_2がずっと増えていく。

やがて、nagaoshi_2が5に達する。

最後のコマンド

execute as @a[scores={nagaoshi=5}] run say 長押しキャンセル

が実行される。

以上がこの機構の仕組みになります。

この機構実は欠点があります。

それは、長押しじゃなくて連打でも検知されちゃうことです。

まあこれはどうにもなりません。この仕様のせいで若干使い勝手が悪くなりますが

何かに使えるかもしれないと思った方は絶対このブログとTwitterをフォローしてください!


コマンドコピペ用

scoreboard players add @a[scores={nagaoshi=1..}] nagaoshi_2 1
execute as @a[scores={nagaoshi=2..}] run say 長押し中...
scoreboard players set @a[scores={nagaoshi=2..}] nagaoshi_2 0
scoreboard players set @a[scores={nagasohi=2..}] nagaoshi 1
execute as @a[scores={nagaoshi=5}] run say 長押しキャンセル

Follow me


コメントを残す

WordPress.com で次のようなサイトをデザイン
始めてみよう