【Minecraft】劇的に軽く!?operationの罠に気をつけよう!【BE】
みなさんこんにちは!
赤石大好き!赤石愛です!
最近、といってももう結構立ちましたが、Minecraft BEにもスコアボードが実装されましたね!
できることが増えたので使いまくっている人も多いのではないでしょうか?
でもscoreboard players operationには、とある罠が潜んでいるのです!
次の映像をご覧ください。
明らかに重さの違うコマンドのようですが……?私の記憶は無駄じゃなかった
— 赤石愛 (@AiAkaishi) 2019年5月21日
BE...... pic.twitter.com/czBDIiky3t
比べているコマンドは以下の2つです。
1つめ
/scoreboard players operation @e TEST2 = @e[tag=TEST,c=1] TEST
2つめこの2つ、全く同じことをしているコマンドです。
/execute @e[tag=TEST,c=1] ~ ~ ~ /scoreboard players operation @e TEST2 = @s TEST
一見、1つめの方が短く、セレクタも少ないため軽そうですが、
2つめの方が圧倒的に軽いです!
同じことをするコマンドなのに差が出る理由としては、
上のコマンドでは@e[tag=TEST,c=1]を@eの数だけ評価しちゃっているようです。
scoreboard players operationの両方に@s以外のターゲット選択子(@?のこと)を入れてはいけません。
どちらにも入れたい場合は必ず片方をexecuteで前に出しましょう。
なお、JEでも1.12.2以前の場合は同じことが発生します。
BEやJE1.12.2以前の方は、一度operationコマンドを見直してみてください。
なんとも恐ろしいスコアボードの罠でした!
JE1.13以降は起こらないので安心してね!