Elite Script 区域
区域是由形状定义的位置,脚本编写者可以将其用作目标来运行任何类型的操作。
每个脚本只能设置一个区域。
要定位区域,可以使用目标类型 ZONE_FULL 或 ZONE_BORDER。
区域本身也使用 脚本目标 来定义区域将出现的位置。
shape
设置区域的形状。有效的形状:
| 形状类型 | 详情 | 可动画化 | 边界 |
|---|---|---|---|
CYLINDER | 圆柱形 | ❌ | ✅ |
SPHERE | 球形 | ❌ | ✅ |
DOME | 圆顶形(半球) | ❌ | ✅ |
CUBOID | 长方体形(类似立方体) | ❌ | ✅ |
STATIC_RAY | 两点之间的固定线 | ❌ | ❌ |
ROTATING_RAY | 两点之间的旋转线 | ✅ | ❌ |
TRANSLATING_RAY | 从两个初始点移动到两个最终点的线 | ✅ | ❌ |
CONE | 圆锥形 | ❌ | ❌ |
可动画化
带有动画的区域会在脚本首次调用时开始区域动画。
这意味着如果一个操作有等待时间,当操作开始时,区域在操作等待期间已经在移动了。
区域总是在每个刻(tick)上进行动画。这意味着如果你使用 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 秒(重复间隔 5 x 次数 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 | 圆锥第二个目标的半径 | ✅ |
示例
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
这个脚本使用云粒子演示了圆柱体的形状。请记住,这个区域是圆锥形状,意味着它是一个 3D 体积,如果你想创建扫掠效果,这一点很重要。
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 | 设置射线是否会穿过固体方块 | ❌ |
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 | 在动画之前对俯仰应用初始旋转 | ❌ |
yawPreRotation | 在动画之前对偏航应用初始旋转 | ❌ |
pitchRotation | 设置动画的俯仰旋转 | ❌ |
yawRotation | 设置动画的偏航旋转 | ❌ |
ignoresSolidBlocks | 设置射线是否会穿过固体方块 | ❌ |
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 | 设置射线是否会穿过固体方块 | ❌ |
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
过滤器属性可用于仅定位区域内的特定实体。这些实体可以是:
| 值 | 详情 |
|---|---|
PLAYER | 仅定位区域内的玩家(默认) |
ELITE | 仅定位区域内的精英 |
LIVING | 定位区域内的所有生物实体 |
示例
eliteScript:
FilterExample:
Events:
- PlayerDamagedByEliteMobEvent
Zone:
shape: SPHERE
radius: 12
borderRadius: 11
filter: ELITE
Target:
targetType: SELF
track: false
这个示例脚本展示了如何使用过滤器使区域仅定位精英。