精英腳本區域
區域是由形狀定義的位置,可以被腳本編寫者用作目標來執行任何類型的動作。
每個腳本只能設定一個區域。
要以區域為目標,可以使用目標類型 ZONE_FULL 或 ZONE_BORDER。
區域本身也會使用腳本目標來定義該區域會出現在哪裡。
shape
設定區域的形狀。有效形狀:
| Shape Type | Details | Animatable | Border |
|---|---|---|---|
CYLINDER | 圓柱形 | ❌ | ✅ |
SPHERE | 球形 | ❌ | ✅ |
DOME | 穹頂形(半球) | ❌ | ✅ |
CUBOID | 長方體形 | ❌ | ✅ |
STATIC_RAY | 兩點之間的固定線 | ❌ | ❌ |
ROTATING_RAY | 兩點之間的旋轉線 | ✅ | ❌ |
TRANSLATING_RAY | 從兩個起始點移動到兩個終點的線 | ✅ | ❌ |
CONE | 圓錐形 | ❌ | ✅ |
可動畫
帶動畫的區域在腳本首次被調用時開始區域動畫。
這表示如果某個動作有等待時間,當該動作開始時,區域在動作等待期間就已經在移動了。
區域一律在每個 tick 都會播放動畫。這表示如果你使用 SPAWN_PARTICLES 動作,你可以把它設為每個 tick 執行一次,因為區域每個 tick 都在移動。如果你設為每秒執行一次,你會看到粒子跳來跳去,因為即使在沒有生成粒子的那些 tick,區域仍持續在移動。
如果你想製作旋轉區域的動作,但希望等待一定數量的 tick 之後才開始該動作,請把它做成另一個腳本,並透過 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 tick 重複 x 20 次 = 100 tick)。
如果你沒有使用 ZONE_BORDER 選項,而是改用 ZONE_FULL 選項,那麼整個區域就會像這樣被煙霧粒子覆蓋:

SPHERE
| Key | Details | Mandatory |
|---|---|---|
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
| Key | Details | Mandatory |
|---|---|---|
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
| Key | Details | Mandatory |
|---|---|---|
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 形狀,也就是說它是一個 3D 體積,如果你想製作橫掃效果,這一點很重要。
CYLINDER
| Key | Details | Mandatory |
|---|---|---|
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
| Key | Details | Mandatory |
|---|---|---|
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
| Key | Details | Mandatory |
|---|---|---|
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
| Key | Details | Mandatory |
|---|---|---|
shape | 設定該區域的形狀。應為 ROTATING_RAY | ✅ |
filter | 設定哪些類型的實體會被鎖定 | ❌ |
target | 設定線段第一個點的位置 | ✅ |
target2 | 設定線段最後一個點的位置 | ✅ |
animationDuration | 以 tick 設定旋轉所需的時間 | ✅ |
pitchPreRotation | 在動畫開始前對 pitch 套用一個初始旋轉 | ❌ |
yawPreRotation | 在動畫開始前對 yaw 套用一個初始旋轉 | ❌ |
pitchRotation | 設定該動畫的 pitch 旋轉 | ❌ |
yawRotation | 設定該動畫的 yaw 旋轉 | ❌ |
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 tick)才會完成。
TRANSLATING_RAY
| Key | Details | Mandatory |
|---|---|---|
shape | 設定該區域的形狀。應為 TRANSLATING_RAY | ✅ |
filter | 設定哪些類型的實體會被鎖定 | ❌ |
animationDuration | 以 tick 設定平移所需的時間 | ✅ |
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 tick)才會完成。
我們只要把 Z 的 offset 調整成類似 offset: 0,0,10 的值,就能輕鬆讓射線橫向移動:

這個行為可能會依你在遊戲中的面向而改變。
如果我們修改 GIF 圖片中所示腳本裡的 X offset,從我們的視角看來,射線就會像是沿著直線遠離我們。
filter
filter 屬性可以用來只鎖定區域內的特定實體。這些實體可以是:
| Value | Details |
|---|---|
PLAYER | 僅目標區域內的玩家(預設) |
ELITE | 僅目標區域內的精英 |
LIVING | 目標區域內的所有生物實體 |
範例
eliteScript:
FilterExample:
Events:
- PlayerDamagedByEliteMobEvent
Zone:
shape: SPHERE
radius: 12
borderRadius: 11
filter: ELITE
Target:
targetType: SELF
track: false
這個範例腳本示範如何使用 filter 讓區域只鎖定精英怪。