跳至主要内容

Elite 腳本區域

區域是由形狀定義的位置,腳本編寫者可以將其作為目標來執行任何類型的動作。

每個腳本只能設定一個區域。

要定位區域,可以使用目標類型 ZONE_FULLZONE_BORDER

區域本身也使用腳本目標來定義區域將出現的位置。

shape

設定區域的形狀。有效形狀:

形狀類型詳細資訊可動畫化邊界
CYLINDER圓柱形狀
SPHERE球形形狀
DOME圓頂形狀(半球)
CUBOID長方體形狀(立方體狀)
STATIC_RAY兩點之間的固定線條
ROTATING_RAY兩點之間的旋轉線條
TRANSLATING_RAY從兩個初始點移動到兩個最終點的線條
CONE圓錐形狀

可動畫化

具有動畫的區域在首次呼叫腳本時開始區域動畫。

這意味著如果動作有等待時間,當動作開始時,區域在動作等待期間已經在移動。

區域始終在每個刻度上進行動畫。這意味著如果您使用 SPAWN_PARTICLES 動作,您可以將其設定為每刻度執行一次,因為區域將在每個刻度上移動。如果您每秒執行一次,您將看到粒子跳躍,因為區域在未生成粒子的刻度上繼續移動。

如果您想製作一個旋轉區域動作,但希望在開始動作之前等待設定的刻度數,請將其設為不同的腳本,並透過 RUN_SCRIPT 呼叫該腳本。確保 RUN_SCRIPT 具有您想要的等待時間。

區域在完成動畫後將停留在最終位置。

所有可動畫化的區域都設定為不追蹤腳本目標,因為額外的移動會使腳本編寫者和玩家難以理解。這意味著這些區域不會跟隨首領或玩家,並且將始終相對於其初始生成點移動。


邊界

某些區域可以有邊界。邊界意味著 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

elitescript_zones_border.jpg

此腳本製作煙霧粒子,出現在區域邊界上,持續 5 秒(重複每 5 x 次數 20 = 100 刻度)。

如果您不使用 ZONE_BORDER 選項而是使用 ZONE_FULL 選項,那麼整個區域將被煙霧粒子覆蓋,如下所示:

elitescript_zones_borderfull.jpg


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

elitescript_zones_sphere.jpg

此腳本使用雲粒子展示球體的形狀。


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

elitescript_zones_dome.jpg

此腳本使用雲粒子展示圓頂的形狀。


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

elitescript_zones_cylinder.jpg

此腳本使用雲粒子展示圓柱的形狀。


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

elitescript_zones_cuboid.jpg

此腳本使用雲粒子展示長方體的形狀。


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

elitescript_zones_staticray.jpg

此腳本使用雲粒子展示靜態射線的形狀。

我們透過在區域兩端使用 offset 選項調整了區域的高度,使射線從玩家和首領的中間位置出現,否則射線會出現在他們的腳下。


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

elitescript_zones_rotatingray.gif

此腳本展示了使用雲粒子的旋轉射線外觀。

首先,它使用雲粒子創建一條從首領到傷害它的玩家的射線。然後,使用 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

elitescript_zones_translatingray.gif

此腳本展示了使用雲粒子的平移射線外觀。

首先,它使用雲粒子創建一條從首領到傷害它的玩家的射線。

然後,它使射線從兩個目標向上移動 10 個方塊,使用 FinalTarget1FinalTarget2 上的 offset

動畫需要 5 秒(100 刻度)才能完成。

我們可以透過將 Z offset 調整為類似 offset: 0,0,10 來輕鬆使射線橫向移動:

elitescript_zones_translatingray2.gif

此行為可能會根據您在遊戲中面對的方向而改變。
如果我們修改 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

此範例腳本展示如何使用過濾器使區域僅定位精英。