Difference between revisions of "TrainCarts/Signs/Statements/zh-cn"

From BergerHealer Wiki
Jump to navigation Jump to search
(Created page with "例如,以下控制牌通过标签来切换轨道。如果列车包含以 ''station'' 为开头的标签,则向左行驶;如果列车包含以 ''main'' 为开头的标...")
 
(6 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
== 介绍 ==
 
== 介绍 ==
  
[[TrainCarts/Signs/Switcher|switcher 转辙器]]、[[TrainCarts/Signs/Detector|detector 侦测器]]、[[TrainCarts/Signs/Skip|skip 跳过]]控制牌都可使用语句条件判断来切换轨道、切换拉杆或执行其他类型的操作。语句通常用在控制牌的第三行和第四行。你还可以在控制牌下方继续添加其他控制牌,来扩展更多语句。
+
[[TrainCarts/Signs/Switcher|转辙器]]、[[TrainCarts/Signs/Detector|检测器]]、[[TrainCarts/Signs/Skip|跳过牌]]都可使用语句条件判断来分别切换轨道、切换拉杆或执行其他类型的操作。语句通常用在控制牌的第三行和第四行。你还可以在控制牌下方继续添加其他控制牌,来扩展更多语句。
  
 
=== 使用示例 ===
 
=== 使用示例 ===
Line 23: Line 23:
 
== 语法 ==
 
== 语法 ==
  
你可以在语句前面输入“!”来表示否定。如果控制牌第一行设置为 [cart],则会将列车看作一辆辆矿车。'''数组语句'''格式为 ''name@<数组>'',可以对多个属性进行操作。例如,''i@wood'' 操作列车中的物品,并检测其中是否是木头。对于多个物品,需使用(;)分隔,例如 ''ed@north;south'' 仅匹配向北或向南行驶的列车。
+
你可以在语句前面输入“!”来表示否定。如果控制牌第一行设置为 [cart],则会将列车看作为一辆辆矿车。'''数组语句'''格式为 ''name@<数组>'',可以对多个属性进行操作。例如,''i@wood'' 操作列车中的物品,并检测其中是否是木头。对于多个物品,需使用(;)分隔,例如 ''ed@north;south'' 仅匹配向北或向南行驶的列车。
  
 
大多数语句支持'''运算符'''。运算符包括:
 
大多数语句支持'''运算符'''。运算符包括:
Line 52: Line 52:
 
|-
 
|-
 
| trainsize
 
| trainsize
| 列车车厢数量匹配(例如:trainsize>=3)。
+
| 列车车厢数量(例如:trainsize>=3)。
 
|-
 
|-
 
| chest_minecart
 
| chest_minecart
| 列车有一定数量的运输矿车(例如:chest_minecart>=1),这也适用于漏斗/动力矿车等类型。
+
| 列车中运输矿车的数量(例如:chest_minecart>=1),这也适用于漏斗矿车、动力矿车等类型。
 
|-
 
|-
 
| velocity<br>speed
 
| velocity<br>speed
| 检测列车速度(移动速度),或者判断列车是否正在移动。
+
| 评估列车的速度(移动速度),或判断列车是否正在移动。
 
|-
 
|-
 
| powered
 
| powered
Line 64: Line 64:
 
|-
 
|-
 
| storage
 
| storage
| 列车包含储存矿车。
+
| 列车包含储存类型的矿车。
 
|-
 
|-
 
| minecart
 
| minecart
Line 73: Line 73:
 
|-
 
|-
 
| maxspeed
 
| maxspeed
| 检测最大速度。
+
| 评估列车的最大速度。
 
|-
 
|-
 
| mobenter
 
| mobenter
| 检测生物进入属性。
+
| 评估生物进入属性。
 
|-
 
|-
 
| playerenter
 
| playerenter
| 检测玩家进入属性。
+
| 评估玩家进入属性。
 
|-
 
|-
 
| playerexit
 
| playerexit
| 检测玩家离开属性。
+
| 评估玩家离开属性。
 
|-
 
|-
 
| destination
 
| destination
| 检测列车是否设置了目的地。
+
| 评估列车是否设置了目的地。
 
|-
 
|-
 
| random
 
| random
Line 100: Line 100:
 
|-
 
|-
 
| d@<目的地>
 
| d@<目的地>
| 列车中有一辆矿车设置了这个目的地。
+
| 列车设置了以下目的地之一。
 
|-
 
|-
 
| p@<玩家>
 
| p@<玩家>
Line 129: Line 129:
 
== 和逻辑 ==
 
== 和逻辑 ==
  
由于一切都以“或”的形式进行判定,那该如何检测列车上是否有两个相同的语句呢?最简单的方法是反转两个语句,切换拉杆来激活反转的控制牌。例如:
+
由于一切都以“或”的形式进行评估,那该如何检测列车上是否有两个相同的语句呢?最简单的方法是反转两个语句,切换拉杆来激活反转的控制牌。例如:
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 136: Line 136:
 
| {{sign|[!cart]|chest in|||}}
 
| {{sign|[!cart]|chest in|||}}
 
|-
 
|-
|colspan="2"|  如果''''''属于'''''没有''' 'a' 标签,则'''不'''转移物品。
+
|colspan="2"|  如果 'me' '''不是'''车主或'''没有''' 'a' 标签,则'''不'''转移物品。
 
|-
 
|-
|colspan="2"|  如果''是车主,且有 'a' 标签,则转移物品。
+
|colspan="2"|  如果 'me' 是车主,且有 'a' 标签,则转移物品。
 
|}
 
|}
  

Latest revision as of 07:20, 13 September 2024

Other languages:
English • ‎中文(中国大陆)‎

介绍

转辙器检测器跳过牌都可使用语句条件判断来分别切换轨道、切换拉杆或执行其他类型的操作。语句通常用在控制牌的第三行和第四行。你还可以在控制牌下方继续添加其他控制牌,来扩展更多语句。

使用示例

对于管理世界的列车路线,你一定得试试路线查找。如果你需要根据某些属性对矿车进行分类,并有条件地激活某些控制牌或以某种方式发车,那么你需要使用语句。以下是一些示例。

移除空矿车

如果矿车上没有乘客,则启用摧毁器。

列车存有物品时启动列车

列车存有物品时启用车站。

向特定玩家发车

如果列车的车主是某个指定的玩家,则切换轨道通向该玩家。

语法

你可以在语句前面输入“!”来表示否定。如果控制牌第一行设置为 [cart],则会将列车看作为一辆辆矿车。数组语句格式为 name@<数组>,可以对多个属性进行操作。例如,i@wood 操作列车中的物品,并检测其中是否是木头。对于多个物品,需使用(;)分隔,例如 ed@north;south 仅匹配向北或向南行驶的列车。

大多数语句支持运算符。运算符包括:

  • = 等于
  • != 不等于
  • >= 大于等于
  • <= 小于等于
  • > 大于
  • < 小于

运算符需要输入在语句的后面。比如,minecarts>=5 将检测列车中是否有超过 5 辆矿车。trainsize>=5 还计算运输矿车和动力矿车。你还可以将其组成数组。使用 i@stone=64 可以检测列车中是否正好有 1 组石头。所有可以解析为数量的语句都支持运算符,包括计算列车中的生物数量:m@cow>5。如果没有指定运算符,则使用默认运算符 >0,或者在物品的情况下,使用物品名称前面指定的数量。

语句 释义
passenger 列车上有乘客。
items 列车上有箱子,且装有物品。
empty 列车上没有乘客和物品。
fuel 列车上有个装有燃料的熔炉。
trainsize 列车车厢数量(例如:trainsize>=3)。
chest_minecart 列车中运输矿车的数量(例如:chest_minecart>=1),这也适用于漏斗矿车、动力矿车等类型。
velocity
speed
评估列车的速度(移动速度),或判断列车是否正在移动。
powered 列车包含动力矿车。
storage 列车包含储存类型的矿车。
minecart 列车包含普通矿车。
redstone 控制牌被红石激活时触发。
maxspeed 评估列车的最大速度。
mobenter 评估生物进入属性。
playerenter 评估玩家进入属性。
playerexit 评估玩家离开属性。
destination 评估列车是否设置了目的地。
random 有 50% 几率启用。
n@<名称>
name@<名称>
列车名称等于以下指定名称之一。
i@<物品> 列车载有以下物品之一。
o@<车主> 列车包含以下车主之一。
d@<目的地> 列车设置了以下目的地之一。
p@<玩家> 列车被以下玩家之一占用。
m@<生物名称> 列车被以下生物之一占用。
pi@<物品> 其中一名玩家的背包中有以下物品之一。
ph@<物品> 其中一名玩家的手上有以下物品之一。
ed@<方向> 矿车正在向指定的方向之一移动(转辙器:进入时)。
rs@<方向> 控制牌由以下指定的方向之一激活。
[email protected] 有 30% 的几率启用(而不是默认的 50%;1.0 相当于 100%)。
anything
t@<标签>
对于任何其他事情,插件都会检测列车是否将其设置为标签。

和逻辑

由于一切都以“或”的形式进行评估,那该如何检测列车上是否有两个相同的语句呢?最简单的方法是反转两个语句,切换拉杆来激活反转的控制牌。例如:

Signtemplate.png
[cart]
switcher
!o@me
!a
Signtemplate.png
[!cart]
chest in
如果 'me' 不是车主或没有 'a' 标签,则转移物品。
如果 'me' 是车主,且有 'a' 标签,则转移物品。

如果这较难做到(你需要评估超过 3 个语句),你必须使用红石和多个转辙器。


标签

对于除上述的语法表外的其他所有语句,名称都会与列车上的标签进行比较。要查找标签,你可以使用通配符一次检测多个标签:

 * - 有标签。
 !* - 没有标签。
 *a - 有以 'a' 为结尾的标签。
 a* - 有以 'a' 为开头的标签。
 *a* - 包含 'a' 的标签。
 *ab*cd* - 包含 'ab' 和 'cd' 的标签。

例如,以下控制牌通过标签来切换轨道。如果列车包含以 station 为开头的标签,则向左行驶;如果列车包含以 main 为开头的标签,则向右行驶;如果列车同时包含这两个标签,则直行。

Signtemplate.png
[!train]
switcher
station*
*main*