精英脚本区域
区域是由形状定义的位置,可以被脚本编写者用作目标来执行任何类型的动作。
每个脚本只能设置一个区域。
要以区域为目标,可以使用目标类型 ZONE_FULL 或 ZONE_BORDER。
区域本身也会使用脚本目标来定义区域将出现在哪里。
shape
设置区域的形状。有效形状:
| 形状类型 | 详情 | 可动画 | 边界 |
|---|---|---|---|
CYLINDER | 圆柱形 | ❌ | ✅ |
SPHERE | 球形 | ❌ | ✅ |
DOME | 穹顶形(半球) | ❌ | ✅ |
CUBOID | 长方体形 | ❌ | ✅ |
STATIC_RAY | 两点之间的固定线 | ❌ | ❌ |
ROTATING_RAY | 两点之间的旋转线 | ✅ | ❌ |
TRANSLATING_RAY | 从两个起始点移动到两个终点的线 | ✅ | ❌ |
CONE | 圆锥形 | ❌ | ✅ |
可动画
带动画的区域在脚本首次被调用时开始区域动画。
这意味着如果某个动作有等待时间,那么当该动作开始时,区域在动作等待期间就已经在移动了。
区域始终每刻都会推进动画。这意味着如果你使用 SPAWN_PARTICLES 动作,可以把它设为每刻运行一次,因为区域每刻都在移动。如果你设成每秒运行一次,你会看到粒子在跳跃,因为即使在没有生成粒子的那些刻里区域仍在继续移动。
如果你想制作一个旋转区域的动作,但希望在动作开始前先等待固定刻数,请把它拆成另一个脚本,并通过 RUN_SCRIPT 调用那个脚本。确保 RUN_SCRIPT 上设置了你想要的等待时间。
区域在动画完成后会停留在最终位置。
所有可动画的区域都被设为不跟踪脚本目标,因为额外的移动会让脚本编写者和玩家都难以理解。这意味着这些区域不会跟着 Boss 或玩家跑,而是始终相对于它们最初的生成点移动。
边界
某些区域可以拥有边界。有边界意味着可以把 ZONE_BORDER 用作该区域的目标。边界的定义方式是在第一个较大的形状内部再创建一个较小的形状。较小区域与较大区域之间的那部分空间就是边界。
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CYLINDER
radius: 4
borderRadius: 3
height: 8
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: SMOKE_LARGE
Target:
targetType: ZONE_BORDER
repeatEvery: 5
times: 20

此脚本会生成仅出现在区域边界上的烟雾粒子,持续 5 秒(repeatEvery 5 × times 20 = 100 刻)。
如果你没有使用 ZONE_BORDER 选项,而是改用了 ZONE_FULL 选项,那么整个区域都会被烟雾粒子覆盖,像这样:

SPHERE
| 键 | 详情 | 必填 |
|---|---|---|
shape | 设置区域的形状。应为 SPHERE | ✅ |
target | 设置球体中心的位置 | ✅ |
filter | 设置哪些类型的实体会被作为目标 | ❌ |
radius | 球体的半径 | ✅ |
borderRadius | 内部球体的半径 | ❌ |
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: SPHERE
radius: 4
borderRadius: 3
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

此脚本使用云粒子演示球体的形状。
DOME
| 键 | 详情 | 必填 |
|---|---|---|
shape | 设置区域的形状。应为 DOME | ✅ |
target | 设置穹顶中心的位置 | ✅ |
filter | 设置哪些类型的实体会被作为目标 | ❌ |
radius | 穹顶的半径 | ✅ |
borderRadius | 内部穹顶的半径 | ❌ |
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: DOME
radius: 4
borderRadius: 3
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

此脚本使用云粒子演示穹顶的形状。
CONE
| 键 | 详情 | 必填 |
|---|---|---|
shape | 设置区域的形状。应为 CONE | ✅ |
target | 设置圆锥顶点(尖端)的位置 | ✅ |
target2 | 设置圆锥底面中心的位置 | ✅ |
filter | 设置哪些类型的实体会被作为目标 | ❌ |
radius | 圆锥底面的半径 | ✅ |
borderRadius | 内部圆锥的半径 | ❌ |
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CONE
radius: 10
Target:
targetType: SELF
offset: 0,0,0
Target2:
targetType: SELF
offset: 0,10,0
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
coverage: 0.8
repeatEvery: 5
times: 20
此脚本使用云粒子演示圆锥的形状。请注意,这个区域是 CONE 形状,也就是说它是一个三维体积,如果你想制作扇形横扫效果,这一点很重要。
CYLINDER
| 键 | 详情 | 必填 |
|---|---|---|
shape | 设置区域的形状。应为 CYLINDER | ✅ |
target | 设置圆柱中心的位置 | ✅ |
filter | 设置哪些类型的实体会被作为目标 | ❌ |
radius | 圆柱的半径 | ✅ |
borderRadius | 内部圆柱的半径 | ❌ |
height | 圆柱的高度 | ✅ |
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CYLINDER
radius: 4
borderRadius: 3
height: 8
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

此脚本使用云粒子演示圆柱的形状。
CUBOID
| 键 | 详情 | 必填 |
|---|---|---|
shape | 设置区域的形状。应为 CUBOID | ✅ |
target | 设置长方体中心的位置 | ✅ |
filter | 设置哪些类型的实体会被作为目标 | ❌ |
x | 设置长方体的长度 | ✅ |
y | 设置长方体的高度 | ✅ |
z | 设置长方体的宽度,默认与 x 相同 | ❌ |
xBorder | 设置内部长方体的长度 | ❌ |
yBorder | 设置内部长方体的高度 | ❌ |
zBorder | 设置内部长方体的宽度,默认与 x 相同 | ❌ |
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CUBOID
x: 4
y: 4
z: 4
xBorder: 3
yBorder: 3
zBorder: 3
Target:
targetType: SELF
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

此脚本使用云粒子演示长方体的形状。
STATIC_RAY
| 键 | 详情 | 必填 |
|---|---|---|
shape | 设置区域的形状。应为 STATIC_RAY | ✅ |
target | 设置线段第一个端点的位置 | ✅ |
target2 | 设置线段最后一个端点的位置 | ✅ |
filter | 设置哪些类型的实体会被作为目标 | ❌ |
ignoresSolidBlocks | 设置射线是否会穿透固体方块。默认为 true | ❌ |
pointRadius | 设置射线的粗细。默认为 0.5 格。 | ❌ |
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: STATIC_RAY
Target2:
targetType: DIRECT_TARGET
offset: 0,1,0
Target:
targetType: SELF
offset: 0,1,0
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 5
times: 20

此脚本使用云粒子演示静态射线的形状。
我们在区域的两端都使用了 offset 选项来调整区域的高度,使射线从玩家和 Boss 的身体中部发出,否则射线会出现在他们的脚下。
ROTATING_RAY
| 键 | 详情 | 必填 |
|---|---|---|
shape | 设置区域的形状。应为 ROTATING_RAY | ✅ |
filter | 设置哪些类型的实体会被作为目标 | ❌ |
target | 设置线段第一个端点的位置 | ✅ |
target2 | 设置线段最后一个端点的位置 | ✅ |
animationDuration | 设置旋转所需的时间(以刻为单位) | ✅ |
pitchPreRotation | 在动画开始前对俯仰角(pitch)施加一个初始旋转 | ❌ |
yawPreRotation | 在动画开始前对偏航角(yaw)施加一个初始旋转 | ❌ |
pitchRotation | 设置动画的俯仰角旋转量 | ❌ |
yawRotation | 设置动画的偏航角旋转量 | ❌ |
ignoresSolidBlocks | 设置射线是否会穿透固体方块。默认为 true | ❌ |
pointRadius | 设置射线的粗细。默认为 0.5 格。 | ❌ |
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: ROTATING_RAY
animationDuration: 100
pitchPrerotation: 0
yawPrerotation: 0
pitchRotation: 0
yawRotation: 360
ignoresSolidBlocks: true
Target:
targetType: SELF
offset: 0,1,0
Target2:
targetType: DIRECT_TARGET
offset: 0,1,0
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 1
times: 100

此脚本展示了使用云粒子的旋转射线的效果。
首先,它用云粒子创建一条从 Boss 指向伤害它的玩家的射线。然后,它用 offset 把两端位置略微上移一格。
接着,它让射线围绕被锁定的玩家转一整圈。这次旋转以被锁定的玩家为中心,需要 5 秒(100 刻)才能完成。
TRANSLATING_RAY
| 键 | 详情 | 必填 |
|---|---|---|
shape | 设置区域的形状。应为 TRANSLATING_RAY | ✅ |
filter | 设置哪些类型的实体会被作为目标 | ❌ |
animationDuration | 设置平移所需的时间(以刻为单位) | ✅ |
target | 设置线段第一个端点的位置 | ✅ |
finalTarget | 设置线段第一个端点的终点位置 | ✅ |
target2 | 设置线段第二个端点的位置 | ✅ |
finalTarget2 | 设置线段第二个端点的终点位置 | ✅ |
ignoresSolidBlocks | 设置射线是否会穿透固体方块。默认为 true | ❌ |
pointRadius | 设置射线的粗细。默认为 0.5 格。 | ❌ |
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: TRANSLATING_RAY
Target:
targetType: SELF
FinalTarget:
targetType: SELF
offset: 0,10,0
Target2:
targetType: DIRECT_TARGET
FinalTarget2:
targetType: DIRECT_TARGET
offset: 0,10,0
animationDuration: 100
ignoresSolidBlocks: true
Actions:
- action: SPAWN_PARTICLE
particles:
- particle: CLOUD
Target:
targetType: ZONE_FULL
repeatEvery: 1
times: 100

此脚本展示了使用云粒子的移动射线的效果。
首先,它用云粒子创建一条从 Boss 指向伤害它的玩家的射线。
然后,它通过 FinalTarget1 和 FinalTarget2 上的 offset,让射线从两个目标位置向上平移 10 格。
该动画需要 5 秒(100 刻)才能完成。
我们只需把 Z 方向的 offset 调整为类似 offset: 0,0,10 的值,就能轻松让射线横向移动:

这一行为可能会随你在游戏中的朝向而变化。
如果我们修改 GIF 图中所示脚本里的 X 方向 offset,从我们的视角看,射线会显得沿直线朝远离我们的方向移动。
filter
filter 属性可用于只把区域内特定的实体作为目标。这些实体可以是:
| 值 | 详情 |
|---|---|
PLAYER | 仅目标区域内的玩家(默认) |
ELITE | 仅目标区域内的精英 |
LIVING | 目标区域内的所有生物实体 |
示例
eliteScript:
FilterExample:
Events:
- PlayerDamagedByEliteMobEvent
Zone:
shape: SPHERE
radius: 12
borderRadius: 11
filter: ELITE
Target:
targetType: SELF
track: false
这个示例脚本展示了如何使用 filter 让区域只把精英作为目标。