無題

今回は自分から〇mに入ったらコマンドを実行する方法と、
自分から〇mから出たらコマンドを実行する方法を説明します。
 
目次的な
  • rについて~
  • rmについて~
  • 同時に使ったら



  • 引数は@aなどのセレクターの後にくっつけて書くので、
    @a[引数]
    と書きます。



    rについて 
     

    rはコマンドブロック/コマンドを実行した人のところから何メートル以内を対象とするかを決めるものです。
    サムネの画像の水色の部分です。
    無題
     
    例えば
    execute @a ~ ~ ~ execute @e[type=!Player,r=5] ~ ~ ~ give @p minecraft:stone
    このコマンドをリピートコマブロで実行しておくとプレイヤー以外のmobが自分の半径5m以内にいるときに石ブロックが毎tickもらえます。



    rmについて

    自分から何メートル以上にいるmobを対象にするかを決めるものです。
    たとえばサムネの画像のピンクの部分です。
    無題
     たとえば
    execute @e[type=Villager,tag=Man,rm=10] ~ ~ ~ execute @a ~ ~ ~ say 私から離れないでください!
    このコマンドをリピートコマブロで実行しておくとManというtagのついた村人から10m離れると
    [村人] 私から離れないでください! 
    と言われます。

    ですが、このままだと離れている間毎tickいわれるので、ログが大変なことになります。
    この画像のようにして、 
    22
    リピートに常時実行、無条件
    execute @e[type=Villager,tag=Man,rm=10] ~ ~ ~ testfor @a 
     インパルスにレッドストーン実行、無条件
    say 私から離れないでください!
    とすると解決できます。 

     

    同時に使ったら

    同時に使ったらこのピンクのところが求められます。
    無題
    execute @a ~ ~ ~ execute @e[r=5,rm=10] ~ ~ ~ コマンド
    とすると自分から5m離れてかつ10mより近いmobにだけコマンドが実行されます。