今天,我會把所有基礎指令全都講一遍
包括目標選擇器
隨隨便便放幾個鎮樓圖
關於大部分基礎指令的語法我極有可能引用wiki
畢竟wiki才是最準確的
我能做的,就是補充和效果展示
還有語法錯誤分析罷了
畢竟基礎指令的語法根本不難(指令不好的請無視QAQ)
先說一說關於命令語法的相關符號的表達意義
<>是必填專案,<target>就是命令中此目標選項必填
[]是選填專案,[true]就是此專案可填true可不填
|是選填 true|false就是要麼填true要麼填false
先說說kill這個指令
大多數人都知道,這個指令就是清除實體
語法/kill <target>
kill可以選擇多個目標實體,對於計分板中的虛擬實體沒有效果
栗子:kill @e[type=villager]
解析:清除掉所有的村民,其中[]不是選填,是對於@e的限制條件
@e是所有實體,type是型別
由此命令我引出了@e和type
所以下來我說說目標選擇器
目標選擇器也叫實體選擇器,
實體選擇器的相關程式碼放置在 net.minecraft.command.EntitySelector中,有興趣可以看看
目標選擇器分為這幾種:
@e
@a
@p
@s
@r
@c
@v
wiki的表述:
其中@c和@v是關於吉祥物的,也就是第一個鎮樓圖
關於其中幾個選擇器的補充:
@r同樣可以選擇其他實體
栗子:@r[type=creeper],就是隨機一個苦力怕
關於@a與@e:從圖片中可以看出
@a也有最大限制數量2147483647
@a沒有isAlive的限制(必須是活的)
而@e有
所以基岩版的死亡計分板就是這麼來的xd
補圖:
舉報
下來講中括號裡面的內容
[]即對於目標選擇器的限制
格式一般是
目標選擇器後面直接加中括號[]
比如@a[name="1"]
這種寫法:@a [name="1"]在基岩版中是正確的,但是在Java版是行不通的
下面是所有的限制條件:
x(x座標) y(y座標) z(z座標) dx(x方向平移量) dy(y方向平移量) dz(z方向平移量) r(最大探測半徑) rm(最小探測半徑) rx(最大垂直旋轉角度) rxm(最小垂直旋轉角度) ry(最大水平旋轉角度) rym(最小水平旋轉角度) l(最大經驗) lm(最小經驗) type(實體型別) name(名字) c(數量) m(玩家遊戲模式) scores(實體分數)
接下來講每一個限制條件的具體用法:
x y z就是選擇命令執行座標,不填預設命令方塊所處座標,裡面支援相對座標(~)
栗子:testfor @p[x=~,y=~10,z=~]
這個指令就是探測離命令方塊座標y軸加10的座標最近的玩家
r就是半徑,r=10就是選擇半徑10內的某實體
栗子:testfor @e[r=10]
rm=10與r=10正好相反,它的意思是探測除了半徑10以內的實體
栗子:testfor @e[rm=10]
半徑10內的實體不會被探測
r可以和rm配合使用
栗子:testfor @e[r=10,rm=5]
就是探測半徑為10的圓的面積減去半徑為5的圓的面積後剩餘的面積
下來是dx,dy,dz
這三個引數相當於長,寬,高
dx=1可理解為方向為東方,長度為1
dy=2可理解為方向向上,長度為2
dz=3可以理解為方向為南方,長度為3
testfor @e[dx=1,dy=2,dz=3]
就是長為3,寬為1,高為2個一個長方形
在遊戲中可以不看東西南北,只需要開啟顯示座標,透過簡單的移動看看xz軸的增減,x增方向也是dx的增方向
補圖:圖片中範圍就是事例中選擇實體範圍
接下來講rx和rxm
這兩個就是來限定垂直旋轉角度的
垂直垂直,就是從頭頂看到腳底
取值範圍是-90到90(-90和90也可以取)
-90是抬頭抬到不能再抬,90是低頭低的不能再低
補圖:
execute @a[rxm=-90,rx=-45] ~~~ tp @s ~~~~ 0
這個指令就是當玩家的垂直旋轉角度處於-45到-90的時候把自己的垂直旋轉角度設定為0
ry和rym
水平旋轉角度
definition:其角度以正南(或正Z軸方向)為基準順時針旋轉。水平旋轉值從-180(面向正北)開始,到-90(面向正東),再到0(面向正南),再到90(面向正西),最後到180(再次面向正北)。(來自wiki)
補圖&
注意事項:這個ry和rym只能選擇劣弧不能選擇優弧。。。
栗子:testfor @e[ry=90,rym=0]
就是選擇玩家符合西到南面向的玩家
更新完畢XD
目標選擇器略抽象
先說l和lm
l和r,lm和rm可以相互對比著理解
l=5就是選擇經驗≤5的玩家,lm=6
就是選擇經驗≥6的玩家
栗子:testfor @e[l=5,lm=5]就是選擇經驗等於5的玩家
下來是type,實體型別,可以選擇特定的實體
testfor @e[type=creeper]就是探測是否存在苦力怕
testfor @e[type=!creeper]就是探測除了苦力怕的實體
name可以探測實體名字,
testfor @e[name=1]就是探測所有實體中是否存在名字為1的實體
c是數量
栗子:tp @e[c=2] ~ ~ ~ 就是把離自己最近的兩個實體tp到自己的位置(自己也是實體所以其實是把自己tp了一次然後再把離自己最近的實體tp到自己這裡)
tp @e[c=-1] ~ ~ ~就是把離自己最遠的實體tp到自己這裡
m是遊戲模式
m=1和m=c都是創造模式
m=0和m=s都是生存模式
m=2和m=a都是冒險模式
m引數也可以使用!
比如:m=!1就是選擇不是創造的玩家
接下來是scores,可以選擇特定計分板分數的實體
scores={a=1}是選擇分數為1的實體
scores={a=!1}是選擇分數不為1的實體
scores={a=1..10}是選擇分數在1到10的實體
scores={a=..1}是選擇分數小於等於1的實體
scores={a=1..}是選擇分數大於等於1的實體
scores同時也可以對多個計分板分數限定
剛剛都是a計分板
scores={a=1,b=1}就是a計分板分數為1,b計分板分數為1的實體
tag引數是選擇具有某標籤的實體
tag=是是是 就是選擇標籤為是是是的實體
tag=!w1 就是選擇標籤不為w1的實體
引數完畢
我下了會講命令方塊的用法和絕對座標,相對座標,區域性座標的使用