Minecraft 指令的目標選擇器
你知道除了@p可以指定最近的實體也可以指定最遠的實體嗎?你知道 @a 可以套用條件使得只選定特定族群?本文將詳細介紹各種設定篩選條件的指令,不懂也難。
基本的篩選條件
基本的篩選條件有5個,詳細內容表列如下:@p | 選擇最近的玩家 |
@a | 選擇所有的玩家 |
@r | 隨機挑一個玩家 |
@e | 選擇所有的實體 |
@s | 選擇單一的實體 |
篩選條件的參數
除了上方的基本篩選條件之外,Minecraft還提供其他的參數限縮實體的選取範圍,換言之,可以更精確的定義欲選出之實體。基本格式如下:@x[variable=value, ...]x 可以是 p、a、r、e、s 其中一個。variable即是變數,必須給予值(value)才可以正確的指定。變數的列表如下:
x | x座標 |
y | y座標 |
z | z座標 |
dx | x座標變化量 |
dy | y座標變化量 |
dz | z座標變化量 |
distance | 距離指令觸發地 |
指定格數外
distance=10距離基準點10格的環,小於或大於10格都不算在內。
指定範圍
distance=最小值..最大值指定距離基準點的最小值與最大值,如果沒有指定最小值即是0,如果沒有指定最大值即是無限大。
指令 | 說明 |
scores | 計分板的分數列表 |
tag | 標籤 |
team | 隊伍 |
limit | 限制實體數量 |
sort | 分類依據 |
team | 隊伍 |
level | 實體經驗等級範圍 |
l | 經驗等級最小值(1.13以上被level取代) |
lm | 經驗等級最大值(1.13以上被level取代) |
gamemode | 遊戲模式 |
name | 實體名稱 |
x_rotation | 視角上下轉的角度,可以是單一值或範圍 |
y_rotation | 視角左右轉的角度,可以是單一值或範圍 |
type | 實體類型 |
nbt | 實體的NBT標籤 |
advancements | 成就或進度(1.13以上) |
Scores
scores={名稱=分數,...}分數可以是單一值或範圍的形式。
Sort
sort=nearestnearest是指最近的目標,furthest是指最遠的目標,random是指隨機的目標,arbitary是指無序
sort=furthest
sort=random
sort=arbitrary
Gamemode
gamemode=survivalsurvival為生存、creative為創造、adventure為冒險、spectator為觀察者
gamemode=creative
gamemode=adventure
gamemode=spectator
Advancements
advancements={分類/名稱=布林值}詳細的advancements分類與名稱可以參照這篇:Minecraft 新版成就指令,6大類帶你一次了解,而布林值即為true、false。
運算子
雖然Minecraft中對條件的表達不像一般程式中有那麼多運算子可以用,但是足以將條件表達清楚了。第一個是「非」,符號為「!」,意思是指排除後方所接的條件,舉例:
第一行是將實體種類指定為玩家(player),而第二行為將實體種類指定為非玩家,即所有實體如:友善生物、敵對生物、Q出來的物品、盔甲座、繪畫、展示框、等等非玩家的實體。
- type=player
- type=!player
第二個是「範圍」,符號為「..」,意思是:「1..2」就是指「1~2」。
第三個是「所有」,符號為「#」,例子如下:
type=#skeletons上方就是將實體種類指定為所有的骷髏,包含主世界的一般骷髏、凋零骷髏、流髑。
Summary
一些條件可以重複出現如:type,例子如下:/tp @e[type=#skeletons,type=zombie,type=creeper] @p上方就是指定@e的範圍限縮在:所有的骷髏類實體、殭屍、苦力怕。
@p、@a、@r、@e、@s並不侷限於玩家或者實體,有時候如果將@p加上type=creeper則會指定距離最近的苦力怕,所以@p、@a、@r、@e、@s皆可以套用在所有實體上。
前面所說的要怎麼選擇最遠的實體呢?相信看完文章的你就會知道啦!