🏷️ 编号(ID)#

#bs.id:help

管理实体ID,在需要追踪谁在瞄准谁等场景(如射击游戏)中至关重要。

“我们知道自己是谁,却不知道自己能成为谁。”

—威廉·莎士比亚(William Shakespeare)


🔧 函数#

你可以在下方找到此模块中的所有可用函数。


给予简单唯一ID#

#bs.id:give_suid

给每个实体一个唯一的 bs.id 分数。

输入:

执行 as <实体>:要分配ID的实体。

输出:

分数 @s bs.id:生成的简单唯一ID。

示例:给所有玩家一个ID:

# Give an ID to all players who don't already have one
execute as @a[predicate=!bs.id:has_suid] run function #bs.id:give_suid

# Display the results in the sidebar
scoreboard objective setdisplay sidebar bs.id

制作人员:Aksiome、KubbyDev


给予链式唯一ID#

#bs.id:give_cuid

给每个实体一个唯一的 bs.cid 分数。

输入:

执行 as <实体>:要分配ID的实体。

输出:

分数 @s bs.cid:生成的链式唯一ID。

工作原理?

链式ID类似于简单ID。但是,使用链式ID时,你可以使用 #bs.id:update_cuids 函数来确保ID序列中没有空隙,从而创建一个连续的链。

示例:给所有玩家一个ID:

# Give an ID to all players who don't have one
execute as @a[predicate=!bs.id:has_cuid] run function #bs.id:give_cuid

# Display the results in the sidebar
scoreboard objective setdisplay sidebar bs.cid

制作人员:Aksiome、KubbyDev


更新链式唯一ID#

#bs.id:update_cuids

更新所有实体的链式唯一ID以确保链的连续性。

示例:确保链中没有空隙和重复:

function #bs.id:update_cuids

# See the result
scoreboard objective setdisplay sidebar bs.cid

制作人员:Aksiome、KubbyDev


👁️ 谓词#

你可以在下方找到此模块中的所有可用谓词。


检查简单唯一ID#

bs.id:has_suid

判断实体是否有 bs.id 分数。

示例:给所有没有 bs.id 分数标识的实体一个简单唯一ID:

execute as @e[predicate=!bs.id:has_suid] run function #bs.id:give_suid
bs.id:suid_equal

查找具有与输入值相同 bs.id 的实体。

输入:

分数 $id.suid bs.in:要检查的值。

示例:查找具有 bs.id 等于 1 的实体:

scoreboard players set $id.suid bs.in 1
execute as @e[predicate=bs.id:suid_equal,limit=1] run say I'm the one
bs.id:suid_lower

过滤出 bs.id 小于或等于输入值的实体。

输入:

分数 $id.suid bs.in:要检查的值。

示例:过滤出 bs.id 小于或等于 17 的实体:

scoreboard players set $id.suid bs.in 17
execute as @e[predicate=bs.id:suid_lower] run say I'm a minor
bs.id:suid_upper

过滤出 bs.id 大于或等于输入值的实体。

输入:

分数 $id.suid bs.in:要检查的值。

示例:过滤出 bs.id 大于或等于 18 的实体:

scoreboard players set $id.suid bs.in 18
execute as @e[predicate=bs.id:suid_upper] run say I'm an adult
bs.id:suid_match

过滤出 bs.id 在给定值之间的实体。

输入:

分数 $id.suid.min bs.in:要检查的最小值。

分数 $id.suid.max bs.in:要检查的最大值。

示例:过滤出 bs.id 在 2 到 4 之间的实体:

scoreboard players set $id.suid.min bs.in 2
scoreboard players set $id.suid.max bs.in 4
execute as @e[predicate=bs.id:suid_match,limit=1] run say In range

制作人员:Aksiome


检查链式唯一ID#

bs.id:has_cuid

判断实体是否有 bs.cid 分数。

示例:给所有没有 bs.cid 分数标识的实体一个链式唯一ID:

execute as @e[predicate=!bs.id:has_cuid] run function #bs.id:give_cuid
bs.id:cuid_equal

查找具有与输入值相同 bs.cid 的实体。

输入:

分数 $id.cuid bs.in:要检查的值。

示例:查找具有 bs.cid 等于 1 的实体:

scoreboard players set $id.cuid bs.in 1
execute as @e[predicate=bs.id:cuid_equal,limit=1] run say I'm the one
bs.id:cuid_lower

过滤出 bs.cid 小于或等于输入值的实体。

输入:

分数 $id.cuid bs.in:要检查的值。

示例:过滤出 bs.cid 小于或等于 17 的实体:

scoreboard players set $id.cuid bs.in 17
execute as @e[predicate=bs.id:cuid_lower] run say I'm a minor
bs.id:cuid_upper

过滤出 bs.cid 大于或等于输入值的实体。

输入:

分数 $id.cuid bs.in:要检查的值。

示例:过滤出 bs.cid 大于或等于 18 的实体:

scoreboard players set $id.cuid bs.in 18
execute as @e[predicate=bs.id:cuid_upper] run say I'm an adult
bs.id:cuid_match

过滤出 bs.cid 在给定值之间的实体。

输入:

分数 $id.cuid.min bs.in:要检查的最小值。

分数 $id.cuid.max bs.in:要检查的最大值。

示例:过滤出 bs.cid 在 2 到 4 之间的实体:

scoreboard players set $id.cuid.min bs.in 2
scoreboard players set $id.cuid.max bs.in 4
execute as @e[predicate=bs.id:cuid_match,limit=1] run say In range

制作人员:Aksiome


💬 这对你有帮助吗?

欢迎在下方留下你的问题和反馈!