TrainCarts/命令/选择器

From BergerHealer Wiki
Revision as of 01:07, 29 September 2024 by Halogly (talk | contribs) (Created page with "<code>name</code>(名称)条件按名称或名称模式选择列车。支持远程控制语法中的通配符。")
Jump to navigation Jump to search
Other languages:
English • ‎中文(中国大陆)‎

« 返回

介绍

TC 添加了命令选择器,用于定位列车或列车上的乘客,类似于 Minecraft 的目标选择器。除了基于类型的选择器外,其他 train 属性也可以用来筛选符合特定条件的列车。这些选择器可以与其他插件一起使用。如果要选择多个玩家或列车为目标,则命令会为每个玩家或列车重复执行。

存在两个选择器:@train@ptrain。两者都接受相同的选择器条件,这将在本页的其余部分讨论。

要快速预览游戏中可用的条件,请使用/train info --train @ptrain[等 TC 命令,该命令会显示支持的条件。

快速命令示例

实例 描述
/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”标签的列车以 0.5 的速度启动到 2 格方块以外的距离。

条件

可以指定多个条件,之间为逻辑与。所有基于数值的条件都支持 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)开始在 y 和 z 两个方向上扩大长方体。将长方体变为(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] Selects train with name 'train12'
@train[name=Intercity*Express] Selects trains with name starting with "Intercity" and ending with "Express"
@train[name=*] Selects all trains on the world


列车标签

The tag condition, which can be specified multiple times, can be used to select the tags assigned to trains and filter on those. Like the name condition, this supports a wildcard pattern. This only checks that a particular tag is or isn't present, not that it is the only tag present.

@train[tag=mytag] Selects trains that have tag 'mytag'
@train[tag=*fast,tag=!express] Selects trains that have a tag ending with 'fast', but do not have tag 'express'


乘客数量

The passengers and playerpassengers conditions select the trains that meet a certain number of (player) passengers. This supports the range command to check for 'at least' a number of passengers, such as @train[passengers=5..]

出轨

The derailed condition selects trains that have derailed. For example: @train[derailed=1] or @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.

速度

The speed condition (alias: velocity) selects trains that move at a certain speed. This is the actual movement speed, which is at most the speed limit set for the train. Example: @train[speed=0] for trains that are not moving.

其他属性

未来会添加更多属性,但其他属性可用来筛选所选内容。

目的地 设置列车的目的地
摩擦 更改列车的摩擦系数(默认为 1)。
gravity 更改列车的重力系数(默认为 1)。
keepchunksloaded 列车是否保持区块加载。
speedlimit 设置列车限速。
ticket 与检测标签相同,但使用车票名称代替。