跳到主要内容

区域机制

区域机制允许你定义空间区域,并在玩家进入、离开或驻留时触发脚本。区域支持长方体和球体两种形状,可以附加药水效果和自定义变量。

区域定义

每个区域通过 RegionDefinition 描述:

字段说明
id区域 ID,全局唯一
shape区域形状(Cuboid 或 Sphere)
onEnterScript玩家进入时执行的脚本 ID
onLeaveScript玩家离开时执行的脚本 ID
onStayScript玩家驻留时周期执行的脚本 ID
stayIntervalTicks驻留脚本执行间隔,默认 20(1 秒)
effects区域内的药水效果列表
variables区域自定义变量(键值对)

区域形状

Cuboid(长方体)

用两个对角点定义的长方体区域。

字段说明
world世界名称
minX最小 X 坐标
minY最小 Y 坐标
minZ最小 Z 坐标
maxX最大 X 坐标
maxY最大 Y 坐标
maxZ最大 Z 坐标

Sphere(球体)

用中心点和半径定义的球形区域。

字段说明
world世界名称
centerX中心 X 坐标
centerY中心 Y 坐标
centerZ中心 Z 坐标
radius半径

区域效果

区域可以附加药水效果,玩家在区域内时自动获得这些效果。

字段说明
type药水效果类型(如 SPEEDREGENERATION
amplifier效果等级(0 = I 级,1 = II 级,以此类推)
ambient是否为环境效果(粒子更淡)

区域服务

RegionService 提供区域的注册和查询功能:

操作说明
register注册一个区域定义
getRegionsAt获取指定位置所在的所有区域
isInRegion检查玩家是否在指定区域内
getPlayersInRegion获取指定区域内的所有玩家
提示

区域脚本执行时,上下文中会自动注入区域的 variables 变量,你可以在脚本中直接使用这些变量来实现区域特定的逻辑。