👀 视线(View)#
#bs.view:help
根据实体看到的内容执行命令。
“愿景是看到事物可能的样子,而不是现在的样子。”
—格雷琴·鲁宾(Gretchen Rubin)
🔧 函数#
你可以在下方找到此模块中的所有可用函数。
瞄准的方块#
- #bs.view:at_aimed_block {run:<command>,with:{}}
在实体瞄准的方块处执行命令,并自动对齐坐标(align xyz)。
- 输入:
执行
as <实体>:视线起点实体。函数宏:
参数
run: 在目标方块位置执行的命令。
with: 可选设置(详见下方高级用法)。
示例:改变你正在看着的方块:
# Once (will run if you are targeting a block)
function #bs.view:at_aimed_block {run:"setblock ~ ~ ~ minecraft:sponge",with:{}}
高级用法
该系统是 #bs.raycast:run 函数的简化特定用例。它内部依赖于该函数,允许你读取其输出,并通过修改其输入来灵活地改变其行为。详见此处
避免使用进度
此函数可以与 placed_block 进度一起使用来检测方块放置,但由于与 Minecraft 原生检测相比可能存在精度差异,不推荐这样做。此外,同一游戏刻内快速移动鼠标可能导致瞄准错误的方块。
制作人员:Aksiome
瞄准的实体#
- #bs.view:as_aimed_entity {run:<command>,with:{}}
以当前实体瞄准的实体为执行者执行指令。
- 输入:
执行
as <实体>:视线起点实体。函数宏:
参数
run: 以瞄准的实体为执行者执行的命令。
with: 可选设置(详见下方高级用法)。
示例:让你正在看着的实体执行命令:
# Once (will run if you are targeting an entity)
function #bs.view:as_aimed_entity {run:"say I am sorry, are you hitting on me?",with:{}}
- #bs.view:at_aimed_entity {run:<command>,with:{}}
以当前实体瞄准的实体为执行位置执行指令。
- 输入:
执行
as <实体>:视线起点实体。函数宏:
参数
run: 以瞄准的实体为执行位置执行的命令。
with: 可选设置(详见下方高级用法)。
示例:在你正在看着的实体处执行命令:
# Once (will run if you are targeting an entity)
function #bs.view:at_aimed_entity {run:"particle minecraft:heart ~ ~2 ~ 0 0 0 0 1",with:{}}
高级用法
该系统是 #bs.raycast:run 函数的简化特定用例。它内部依赖于该函数,允许你读取其输出,并通过修改其输入来灵活地改变其行为。详见此处
性能提示
在 Minecraft 中,谓词可以检查玩家是否在看着一个实体。如果你只需要简单的特定玩家检查,应该考虑使用被看着的实体函数。
制作人员:Aksiome
瞄准点#
- #bs.view:at_aimed_point {run:<command>,with:{}}
在射线命中的终点处执行命令。
- 输入:
执行
as <实体>:视线起点实体。函数宏:
参数
run: 在射线命中的终点处执行的命令。
with: 可选设置(详见下方高级用法)。
示例:在你正在看着的点处执行命令:
# Once (will run if you are aiming at a solid block or entity)
function #bs.view:at_aimed_point {run:"particle minecraft:flame ~ ~ ~ 0 0 0 0 1 force",with:{}}
高级用法
该系统是 #bs.raycast:run 函数的简化特定用例。它内部依赖于该函数,允许你读取其输出,并通过修改其输入来灵活地改变其行为。详见此处
制作人员:Aksiome
方块放置#
- #bs.view:at_block_placement {run:<command>,with:{}}
根据方块的碰撞箱和其法线方向,精确地得到放置方块的位置,并对齐坐标(align xyz),执行命令。
- 输入:
执行
as <实体>:视线起点实体。函数宏:
参数
run: 在方块放置位置执行的命令。
with: 可选设置(详见下方高级用法)。
示例:像玩家放置方块一样设置方块:
# Once (will run if you are targeting a block)
function #bs.view:at_block_placement {run:"setblock ~ ~ ~ minecraft:sponge",with:{}}
高级用法
该系统是 #bs.raycast:run 函数的简化特定用例。它内部依赖于该函数,允许你读取其输出,并通过修改其输入来灵活地改变其行为。详见此处
制作人员:Aksiome
视线能否穿过“从执行者到执行位置”#
- #bs.view:can_see_ata {with:{}}
验证从实体当前位置到执行位置之间能否被视线穿过。
- 输入:
执行
as <实体>:被检查的实体。执行
at <实体>或positioned <x> <y> <z>:你想检查的位置。函数宏:
参数
with: 可选设置(详见下方高级用法)。
- 输出:
返回值:检查是否成功或失败(1或0)。
示例:检查最近的实体是否能看到你:
# Once
execute at @s as @e[distance=0.1..,sort=nearest,limit=1] store success score #success bs.data run function #bs.view:can_see_ata {with:{}}
execute if score #success bs.data matches 1 run say You're not hiding very well...
高级用法
该系统是 #bs.raycast:run 函数的简化特定用例。它内部依赖于该函数,允许你读取其输出,并通过修改其输入来灵活地改变其行为。详见此处
制作人员:Aksiome、Leirof
在视野内“从执行者到执行位置”#
- #bs.view:in_view_ata {angle:<value>}
判断某个位置是否在实体的视野范围(从实体眼睛发出的锥体)内。
- 输入:
执行
as <实体>:将该实体作为视野锥体。执行
at <实体>或positioned <x> <y> <z>:被检查是否在视野锥体内的位置。函数宏:
参数
angle: Angle that represents the field of view. This is the angle of the cone’s aperture, based on the world coordinates and not the fov option.
示例:检查位置0 5 0是否在你的视野内:
# Once
execute as @s positioned 0 5 0 run function #bs.view:in_view_ata {angle:90}
制作人员:Aksiome、Leirof
被看着的实体#
- #bs.view:as_looked_entity {run:<command>}
以玩家正在看着的实体为执行者执行命令。
- 输入:
执行
as <玩家>:将该玩家的眼部位置作为视线起点。函数宏:
参数
run: 对被看着的实体执行的命令。
标签
bs.view.is_lookable:要检测的实体必须加上此标签。
示例:让玩家正在看着的盔甲架发光:
# Once
tag @e[type=minecraft:armor_stand] add bs.view.is_lookable
function #bs.view:as_looked_entity {run:"effect give @s minecraft:glowing 1 0 true"}
- #bs.view:at_looked_entity {run:<command>}
在玩家正在看着的实体处执行命令。
- 输入:
执行
as <玩家>:将该玩家的眼部位置作为视线起点。函数宏:
参数
run: Command to run at the looked at entity.
标签
bs.view.is_lookable:要检测的实体必须加上此标签。
示例:在玩家正在看着的盔甲架处召唤粒子:
# Once
tag @e[type=minecraft:armor_stand] add bs.view.is_lookable
function #bs.view:at_looked_entity {run:"particle minecraft:crit ~ ~2 ~ 0 0 0 0 1"}
技术限制
由于此函数依赖于特定于玩家的谓词,它专门为玩家设计。此外,为了优化性能,同时只允许最多255个实体拥有 bs.view.is_lookable 标签。
制作人员:Aksiome

💬 这对你有帮助吗?
欢迎在下方留下你的问题和反馈!