实体计数器
简介
本系统可追踪世界中玩家/实体的总数,并根据获取的数值执行你期望的命令。
注意:未加载区块中的实体不会被追踪。但玩家不受此限制。
设置
在聊天栏输入:
/scoreboard objectives add wiki:count dummy
若你使用函数并希望在世界初始化时自动添加该计分项,请参照首次世界加载的流程操作。
系统
BP/functions/wiki/scoreboard/players/tally_count.mcfunction
yaml
## 重置先前计数
scoreboard players set * wiki:count 0
## 获取当前计数(示例)
### 存活玩家
execute as @e[type=player] run scoreboard players add .Players.Alive wiki:count 1
### 苦力怕
execute as @e[type=creeper] run scoreboard players add .Creeper wiki:count 1
## 在此处添加你的命令(示例)
### 当存活玩家≥4时发送消息
execute if score .Players.Alive wiki:count matches 4.. run title @a actionbar 当前世界中有超过4名玩家。
### 当苦力怕≤3时发送消息
execute if score .Creeper wiki:count matches ..3 run title @a actionbar 当前世界中苦力怕数量少于3只。
这里我们以存活玩家和苦力怕为例进行追踪,但你可以追踪任意实体且数量不限。也可自定义计分持有者名称,例如将".Players.Alive"简化为"Players"。
同样地,我们以/title命令为例:
- a) 当玩家≥4时
4.. - b) 当苦力怕≤3时
..3
你可修改或扩展这些命令,例如将/title替换为/kill命令。
原理说明
- 命令1: 将
wiki:count计分项中所有计分持有者的分数重置为0,包括被追踪的玩家和实体。 - 命令2、3: 为每个需要追踪的目标实体,向其对应的计分持有者名称累加分数,从而获取总数。
- 示例:苦力怕生物会计入".Creeper"计分持有者。
- 命令4、5: 这些是可修改/扩展的示例命令。
- 基于获取的总数,我们可通过
/execute if score条件在满足特定值时运行目标命令。n任意数字_n_n..数字_n_及以上..n数字_n_及以下n..n1数字_n_到_n1_之间的范围(小数字在前)
- 基于获取的总数,我们可通过
注意:
当在多个计分项中处理大量计分持有者时,建议单独将每个计分持有者的分数重置为零,而非使用通配符(*),以获得更佳性能。
Tick JSON
若使用函数而非命令方块,需将tally_count函数添加至tick.json以实现循环持续运行。多个文件可通过在每个字符串后添加逗号的方式加入。详见函数文档。
BP/functions/tick.json
json
{
"values": [
"wiki/scoreboard/players/tally_count"
]
}若使用函数,你的资源包文件夹结构应如下所示:
- 📝tally_count.mcfunction
- 📝tick.json
- 🖼️pack_icon.png
- 📝manifest.json

