TrainCarts/Commands/Selectors [zh-hk]

From BergerHealer Wiki
Jump to navigation Jump to search
This page is a translated version of the page TrainCarts/Commands/Selectors and the translation is 100% complete.
Other languages:

介紹

Traincarts增加了可用於列車或列車乘客的目標選擇器,類似於原版Minecraft中的@e選擇器的功能。除了通常基於位置的目標選擇器參數外,還可以使用其他列車屬性來選擇符合特定條件的列車。這些選擇器可以與其他插件一起使用。若一個選擇器針對多個玩家或列車,那麼整個命令會針對每個玩家或列車重複執行。

存在兩個選擇器:@train@ptrain。兩者都使用相同的選擇器條件,這將在下文詳述。

要快速預覽遊戲中可用的條件,請使用/train info --train @ptrain[等Traincarts命令,該命令會顯示支持的條件。

快捷命令示例

實例 描述
/say hello @ptrain[distance=..5] 向5格及以內的列車上的乘客發送「hello」。
/kick @ptrain[name=train23] 踢出名為「train23」的列車上的乘客。
/train destroy --train @train[destination=InterState5] 銷毀目的地為「InterState5」的列車。
/train eject --train @train[dx=-2..2,dy=-3..3,dz=-2..2] 在以命令執行者為中心設置的長方體範圍內彈出列車。
/train launch 0.5 --options 2 --train @train[tag=express] 將帶有「express」標籤的列車在2格後啟動到0.5的速度。

條件

可以指定多個條件,條件之間為邏輯。所有基於數值的條件都支持Minecraft範圍語法:a..b。例如,-5..5(-5到5),..6(6或更小)和12..(12或更大)。在條件前面加上!會反轉條件,檢測某條件是否「不」滿足。

在下面的所有示例中,若要針對列車上的乘客,可以將@train替換為@ptrain


長方體

x/y/z條件指定了世界上要選擇的列車的位置,其指定的是一個長方體區域。也可以指定dx/dy/dz來擴大長方體。如果僅指定 dx/dy/dz,則使用命令執行者的 x/y/z 坐標。可以使用world(世界)條件在特定世界上運行,或從無法推斷世界的伺服器控制台運行。

@train[x=10..12,y=23..56,z=-100..-80] 選擇所有在(10,23,-100)->(12,56,80)內部的列車。
@train[x=10,y=23,z=-100,dx=2,dy=33,dz=20] 同上,但使用dx/dy/dz來「擴大」長方體。
@train[x=10,y=10,z=10,dx=-2..2,dy=-10..10,dz=-2..2] 複雜用法:以點(10,10,10)為中心,在x和z軸的正方向和負方向上各延伸2格,在y軸的正方向和負方向上各延伸10格。將長方體變為(8,0,8)->(12,20,12)。
@train[dx=-10..10,dy=-5..5,dz=-10..10] 在命令執行者(命令方塊或玩家)周圍選擇的長方體。
@train[world=world_the_end,x=10,y=89,z=-20,dx=-10..10,dy=-10..10,dz=-10..10] 指定世界名稱可用於定位其他世界的列車。

距離

distance(距離)條件根據與命令執行者之間的距離(球面距離)或指定的長方體來選擇列車。

@train[distance=..10] 距離命令執行者10格及以內的所有列車。
@train[distance=1000..] 距離命令執行者1000格及以外的所有列車。
@train[x=100,y=50,z=-100,distance=..5] 距離坐標(100, 50, -100)5格及以內的所有列車。
@train[x=10,y=10,z=10,dx=50,dz=50,distance=..10] 距離長方體(10, 10, 10)->(60, 10, 60)10格及以內的所有列車。


排序和限制

sort(排序)和limit(限制)條件可根據距離從多個結果中選取一個結果,或隨機選取有限的結果。Sort支持nearest(最近)、furthest(最遠)和random(隨機)條件。Limit必須為一個自然整數。

@train[distance=..100,sort=random,limit=1] 隨機選擇100格及以內的1輛列車。
@train[distance=..100,sort=nearest,limit=2] 至多選擇100格及以內的最近的2輛列車。
@train[distance=1000..,sort=furthest,limit=10] 至多選擇1000格及以外的最遠的10輛列車。


列車名稱

name(名稱)條件按名稱或名稱模式選擇列車。支持遠程控制語法中的通配符。

@train[name=train12] 選擇名為「train12」的列車。
@train[name=Intercity*Express] 選擇名稱以「Intercity」開頭且以「Express」結尾的列車。
@train[name=*] 選擇世界上所有的列車。


列車標籤

tag(標籤)條件可以多次指定,可選擇列車標籤並對其進行篩選。與name(名稱)條件相同,支持通配符。該條件只檢測特定標籤是否存在,而不是表示是否只存在某一標籤。

@train[tag=mytag] 選擇具有「mytag」標籤的列車。
@train[tag=*fast,tag=!express] 選擇標籤以「fast」結尾,但沒有「express」標籤的列車。


乘客數量

passengers(乘客)和playerpassengers(玩家乘客)條件選擇滿足一定數量的(玩家)乘客的列車。支持範圍命令來檢測「至少」有幾位乘客,例如@train[passengers=5..]

脫軌

derailed(脫軌)條件選擇已脫軌的列車。例如:@train[derailed=1]@train[derailed=true]

卸載

The unloaded condition selects trains that are inside unloaded chunks and are therefore no longer simulated. Example: @train[unloaded=1] or @train[unloaded=true]. Trains that keep chunks loaded do not unload.

速度

speed(速度)條件(別名:velocity)選擇特定速度的列車。條件檢測實際的移動速度,最多不超過列車設定的速度限制。例如:@train[speed=0]選擇不行駛的列車。

其他屬性

未來會添加更多屬性,但其他屬性可用來篩選所選內容。

destination 設置列車的目的地
friction 更改列車的摩擦係數(默認為 1)。
gravity 更改列車的重力係數(默認為 1)。
keepchunksloaded 列車是否保持區塊加載。
speedlimit 設置列車限速。
ticket 與檢測標籤相同,但使用車票名稱代替。