Aria 脚本
实体选择器
Chronos 提供的范围选取生物语句(EntitySelector)
- 以下语句均由 Chronos 插件提供,目标对象为生物(
LivingEntity)——玩家本身也是生物,所以self可以直接调用;通过选择器拿到的其它生物也能继续调用。 - 这组语句以调用者为中心选取周围生物,用来做范围攻击、群体判定。各方法的几何判定不同:
Radius与Nearest使用周围包围盒候选;Cone再筛选三维视线夹角;Box筛选面前长方体;Ring筛选三维距离。除getNearestLivingEntity返回单个生物外,其余都返回生物列表,通常配合for循环逐个处理:
选取结果不包含调用者自己。这些方法不分敌我、队伍或攻击权限,也不做视线遮挡校验;需要这些限制时,由脚本或外部系统继续过滤。
getLivingEntitiesInRadius(radius)
- 选取周围包围盒中的生物,X/Y/Z 各轴的搜索范围均使用
radius,没有再按球形距离过滤,因此角落处的目标也可能被选中。
- 对象:LivingEntity
- 参数:
radius— 各轴周围搜索范围(方块),不是严格球形半径 - 返回值:生物列表(
List<LivingEntity>) - 调用示例
getLivingEntitiesInCone(radius, angle)
- 先取
radius指定的周围包围盒候选,再按与完整视线方向的三维夹角筛选生物。玩家的俯仰角会影响结果;它不是只在水平面判断的扇形,也没有额外球形距离过滤。
- 对象:LivingEntity
- 参数:
radius— 各轴周围候选范围(方块)angle— 总夹角(度数),目标与视线的夹角须不超过angle / 2
- 返回值:生物列表
- 调用示例
getLivingEntitiesInBox(width, length, height)
- 以调用者的水平朝向为前方,按生物的位置点筛选面前长方体内的目标,适合做直线突刺、长条形范围。该判定忽略俯仰角;高度以调用者的位置高度为中心向上、向下各延伸
height / 2,不会按目标的整个碰撞箱判断是否相交。
- 对象:LivingEntity
- 参数:
width— 宽度(左右方向的总宽)length— 长度(朝正前方延伸的距离)height— 高度(上下方向的总高)
- 返回值:生物列表
- 调用示例
getLivingEntitiesInRing(innerRadius, outerRadius)
- 按生物位置到调用者位置的三维距离,选取内外半径之间的生物,包含半径边界。它是球壳距离判定,不是忽略高度的水平圆环。
- 对象:LivingEntity
- 参数:
innerRadius— 内半径(方块)outerRadius— 外半径(方块)
- 返回值:生物列表
- 调用示例
getNearestLivingEntity(maxDistance)
- 从
maxDistance指定的周围包围盒候选中,按三维位置距离取最近生物,找不到时返回空。不会额外排除直线距离超过maxDistance的包围盒角落候选。常用来配合 朝向吸附 或单体技能。
- 对象:LivingEntity
- 参数:
maxDistance— 各轴周围搜索范围(方块) - 返回值:单个生物(
LivingEntity),范围内无生物时返回空 - 调用示例
