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

From BergerHealer Wiki
Jump to navigation Jump to search
(Created page with "列车存有物品时激活车站。")
 
(28 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|跳过牌]]都可使用语句条件判断来分别切换轨道、切换拉杆或执行其他类型的操作。语句通常用在控制牌的第三行和第四行。你还可以在控制牌下方继续添加其他控制牌,来扩展更多语句。
  
 
=== 使用示例 ===
 
=== 使用示例 ===
  
<div lang="en" dir="ltr" class="mw-content-ltr">
+
对于管理世界的列车路线,你一定得试试[[TrainCarts/PathFinding|路线查找]]。如果你需要根据某些属性对矿车进行分类,并有条件地激活某些控制牌或以某种方式发车,那么你需要使用语句。以下是一些示例。
For routing trains around your Minecraft world, the [[TrainCarts/PathFinding|path finding]] feature is more than adequate. If you need to categorize carts based on certain attributes and then conditionally activate certain signs or send the train a certain way, then statements cover that gap. A few examples where this can be used.
 
</div>
 
  
 
==== 移除空矿车 ====
 
==== 移除空矿车 ====
  
如果矿车上无乘客,则开启摧毁器。
+
如果矿车上没有乘客,则启用摧毁器。
  
 
==== 列车存有物品时启动列车 ====
 
==== 列车存有物品时启动列车 ====
  
列车存有物品时激活车站。
+
列车存有物品时启用车站。
  
<div lang="en" dir="ltr" class="mw-content-ltr">
+
==== 向特定玩家发车 ====
==== Send a train to a certain player ====
 
</div>
 
  
<div lang="en" dir="ltr" class="mw-content-ltr">
+
如果列车的车主是某个指定的玩家,则切换轨道通向该玩家。
If the cart is owned by a set player, the track is toggled to lead to that player.
 
</div>
 
  
<div lang="en" dir="ltr" class="mw-content-ltr">
+
== 语法 ==
== Syntax ==
 
</div>
 
  
<div lang="en" dir="ltr" class="mw-content-ltr">
+
你可以在语句前面输入“!”来表示否定。如果控制牌第一行设置为 [cart],则会将列车看作为一辆辆矿车。'''数组语句'''格式为 ''name@<数组>'',可以对多个属性进行操作。例如,''i@wood'' 操作列车中的物品,并检测其中是否是木头。对于多个物品,需使用(;)分隔,例如 ''ed@north;south'' 仅匹配向北或向南行驶的列车。
You can put a !-sign in front of the statement to act as a NOT. You can read 'the train' as 'the cart' if [cart] is used on the first line. Statements with the format ''name@<array>'' are called '''array statements''' and can operate on multiple of a certain property. For example, ''i@wood'' operates on the items in the train, and checks if there is wood in there. For multiple items, delimit using a semicolon ( ; ), for example ''ed@north;south'' will match trains moving towards north or south only.
 
</div>
 
  
<div lang="en" dir="ltr" class="mw-content-ltr">
+
大多数语句支持'''运算符'''。运算符包括:
Most statements also support '''operators'''. Operators are:
+
* = 等于
* = equals
+
* != 不等于
* != not equals
+
* >= 大于等于
* >= greater or equal than
+
* <= 小于等于
* <= smaller or equal than
+
* > 大于
* > greater than
+
* < 小于
* < smaller than
+
运算符需要输入在语句的后面。比如,''minecarts>=5'' 将检测列车中是否有超过 5 辆矿车。''trainsize>=5'' 还计算运输矿车和动力矿车。你还可以将其组成数组。使用 ''i@stone=64'' 可以检测列车中是否正好有 1 组石头。所有可以解析为数量的语句都支持运算符,包括计算列车中的生物数量:''m@cow>5''。如果没有指定运算符,则使用默认运算符 ''>0'',或者在物品的情况下,使用物品名称前面指定的数量。
To use an operator, append it after the statement. For example, ''minecarts>=5'' will check if there are more than 5 minecarts in the train. ''trainsize>=5'' also counts storage and powered minecarts. You can even use it in arrays. Using ''i@stone=64'' you can check if there are exactly 64 stone in the train. All statements that can be interpreted as an amount have operator support, including counting the amount of mobs in the train: ''m@cow>5''. If no operator is given the default operator ''>0'' is used, or in the case of items, the amount that is specified in front of the item name.
 
</div>
 
  
<div lang="en" dir="ltr" class="mw-content-ltr">
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Statement
+
! 语句
! Meaning
+
! 释义
 
|-
 
|-
 
| passenger
 
| passenger
| The train has a passenger
+
| 列车上有乘客。
 
|-
 
|-
 
| items
 
| items
| The train contains a chest and has items
+
| 列车上有箱子,且装有物品。
 
|-
 
|-
 
| empty
 
| empty
| The train has no passenger and no items
+
| 列车上没有乘客和物品。
 
|-
 
|-
 
| fuel
 
| fuel
| The train contains a furnace which has fuel
+
| 列车上有个装有燃料的熔炉。
 
|-
 
|-
 
| trainsize
 
| trainsize
| The train cart count matches (e.g.: trainsize>=3)
+
| 列车车厢数量(例如:trainsize>=3)。
 
|-
 
|-
 
| chest_minecart
 
| chest_minecart
| The train has a number of chest minecarts (e.g.: chest_minecart>=1). Also works for hoppers/powered/etc. types.
+
| 列车中运输矿车的数量(例如:chest_minecart>=1),这也适用于漏斗矿车、动力矿车等类型。
 
|-
 
|-
 
| velocity<br>speed
 
| velocity<br>speed
| The train velocity (movement speed) can be evaluated, or gets if the train is moving
+
| 评估列车的速度(移动速度),或判断列车是否正在移动。
 
|-
 
|-
 
| powered
 
| powered
| The train contains a powered minecart
+
| 列车包含动力矿车。
 
|-
 
|-
 
| storage
 
| storage
| The train contains a storage minecart
+
| 列车包含储存类型的矿车。
 
|-
 
|-
 
| minecart
 
| minecart
| The train contains a regular minecart
+
| 列车包含普通矿车。
 
|-
 
|-
 
| redstone
 
| redstone
| The sign is powered by redstone
+
| 控制牌被红石激活时触发。
 
|-
 
|-
 
| maxspeed
 
| maxspeed
| Evaluate the maximum speed set
+
| 评估列车的最大速度。
 
|-
 
|-
 
| mobenter
 
| mobenter
| Checks the mob enter property
+
| 评估生物进入属性。
 
|-
 
|-
 
| playerenter
 
| playerenter
| Checks the player enter property
+
| 评估玩家进入属性。
 
|-
 
|-
 
| playerexit
 
| playerexit
| Checks the player exit property
+
| 评估玩家离开属性。
 
|-
 
|-
 
| destination
 
| destination
| Checks if a destination is set on the train
+
| 评估列车是否设置了目的地。
 
|-
 
|-
 
| random
 
| random
| Has a 50% chance of turning on
+
| 50% 几率启用。
 
|-
 
|-
| n@<names><br>name@<names>
+
| n@<名称><br>name@<名称>
| The train name equals one of the names specified
+
| 列车名称等于以下指定名称之一。
 
|-
 
|-
| i@<items>
+
| i@<物品>
| The train contains one of the items specified
+
| 列车载有以下物品之一。
 
|-
 
|-
| o@<owner>
+
| o@<车主>
| The train contains this owner
+
| 列车包含以下车主之一。
 
|-
 
|-
| d@<destination>
+
| d@<目的地>
| One cart in the train has this destination set
+
| 列车设置了以下目的地之一。
 
|-
 
|-
| p@<player>
+
| p@<玩家>
| The train is occupied by this player
+
| 列车被以下玩家之一占用。
 
|-
 
|-
| m@<mobnames>
+
| m@<生物名称>
| The train is occupied by one of these mobs
+
| 列车被以下生物之一占用。
 
|-
 
|-
| pi@<items>
+
| pi@<物品>
| One of the players has one of the items in his inventory
+
| 其中一名玩家的背包中有以下物品之一。
 
|-
 
|-
| ph@<items>
+
| ph@<物品>
| One of the players has one of the items in his hand
+
| 其中一名玩家的手上有以下物品之一。
 
|-
 
|-
| ed@<directions>
+
| ed@<方向>
|The minecart is moving into a given direction (switcher: upon entering the sign)
+
| 矿车正在向指定的方向之一移动(转辙器:进入时)。
 
|-
 
|-
| rs@<directions>
+
| rs@<方向>
| The sign is powered from one of the directions specified
+
| 控制牌由以下指定的方向之一激活。
 
|-
 
|-
  
| Has a 30% chance of turning on (instead of the default 50%) (1.0 is equivalent to 100%)
+
| 30% 的几率启用(而不是默认的 50%;1.0 相当于 100%)。
 
|-
 
|-
| anything<br>t@<tags>
+
| anything<br>t@<标签>
| For anything else the plugin checks if the train has it set as a tag
+
| 对于任何其他事情,插件都会检测列车是否将其设置为标签。
 
|}
 
|}
</div>
 
  
<div lang="en" dir="ltr" class="mw-content-ltr">
+
== 和逻辑 ==
== And logic ==
 
</div>
 
  
<div lang="en" dir="ltr" class="mw-content-ltr">
+
由于一切都以“或”的形式进行评估,那该如何检测列车上是否有两个相同的语句呢?最简单的方法是反转两个语句,切换拉杆来激活反转的控制牌。例如:
Since everything is evaluated as an OR, how can you check if the train has two of the same? The easiest method is to invert two statements, toggling a lever which powers an inverted sign. For example:
 
</div>
 
  
<div lang="en" dir="ltr" class="mw-content-ltr">
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Line 155: Line 136:
 
| {{sign|[!cart]|chest in|||}}
 
| {{sign|[!cart]|chest in|||}}
 
|-
 
|-
|colspan="2"|  If '''not''' owned by 'me' or '''not''' has tag 'a' then '''not''' transfer items
+
|colspan="2"|  如果 'me' '''不是'''车主或'''没有''' 'a' 标签,则''''''转移物品。
 
|-
 
|-
|colspan="2"|  If owned by 'me' and has tag 'a' transfer items
+
|colspan="2"|  如果 'me' 是车主,且有 'a' 标签,则转移物品。
 
|}
 
|}
</div>
 
  
<div lang="en" dir="ltr" class="mw-content-ltr">
+
如果这较难做到(你需要评估超过 3 个语句),你必须使用红石和多个转辙器。
If this proves too hard to do (you need to evaluate more than 3 statements), you will have to use a redstone circuit and multiple switcher signs instead.
 
</div>
 
  
  
<div lang="en" dir="ltr" class="mw-content-ltr">
+
== 标签 ==
== Tags ==
 
</div>
 
  
<div lang="en" dir="ltr" class="mw-content-ltr">
+
对于除上述的语法表外的其他所有语句,名称都会与列车上的标签进行比较。要查找标签,你可以使用通配符一次检测多个标签:
For all statements other than in the syntax table above, the name is compared to tags on the train. To find the tags, you can use wildcards to check for multiple tags at once:
+
   * - 有标签。
   * - has a tag
+
   !* - 没有标签。
   !* - has no tags
+
   *a - 有以 'a' 为结尾的标签。
   *a - has a tag ending with 'a'
+
   a* - 有以 'a' 为开头的标签。
   a* - has a tag starting with 'a'
+
   *a* - 包含 'a' 的标签。
   *a* - has a tag containing 'a'
+
   *ab*cd* - 包含 'ab' 'cd' 的标签。
   *ab*cd* - has a tag containing both 'ab' and 'cd'
 
</div>
 
  
<div lang="en" dir="ltr" class="mw-content-ltr">
+
例如,以下控制牌通过标签来切换轨道。如果列车包含以 ''station'' 为开头的标签,则向左行驶;如果列车包含以 ''main'' 为开头的标签,则向右行驶;如果列车同时包含这两个标签,则直行。
For example, the following sign uses tags to switch tracks. If the train contains a tag starting with ''station'' it goes left, if it contains a tag containing ''main'' it will go right. If it contains both, it will go straight ahead.
 
</div>
 
  
 
{{sign|[!train]|switcher|station*|*main*}}
 
{{sign|[!train]|switcher|station*|*main*}}

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*