跳到主要内容

Elite Script 动作

动作是脚本的核心。它们确定脚本的行为并允许你设置自定义间隔。

动作总是以你将要执行的动作类型开头。不同的动作类型承担不同的功能。此外,所有动作都有一个或多个目标。动作还可以有一个等待计时器,以确保事件按可自定义的延迟发生。最后,动作还可以拥有若干个特定于该动作类型的其他字段。

共享属性

详情特殊
Target更多信息见此处
wait设定在运行动作前等待的时间量(刻)
repeatEvery设定动作每隔设定的刻数重复一次。任何设置了此项但未使用 times 的脚本会在怪物死亡时被终止,以避免卡顿。你可以使用 ~ 将此值随机化,例如:1~5
times设定动作将发生的次数。你可以使用 ~ 将此值随机化,例如:1~5需要 repeatEvery
scripts设定将在动作结束时运行的脚本
onlyRunOneScriptscripts 中随机挑选一个并只运行那一个。
offset此选项放在 Target 之下。允许你偏移目标位置。offset 对以 ZONE_FULLZONE_BORDER 为目标的动作不起作用。
debug此选项放在脚本的动作部分之下。设为 true 时,它会在动作所在区域显示屏障图标。

动作类型

ACTION_BAR_MESSAGE

为目标设定动作栏消息。

注意: 此动作支持占位符。完整列表见 占位符

详情必填特殊
Target更多信息见此处
sValue消息可使用带 &颜色代码
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: ACTION_BAR_MESSAGE
Target:
targetType: NEARBY_PLAYERS
range: 10
sValue: "&2Hello World!"

elitescript_actions_actionbar.jpg

会将动作栏设为向 Boss 10 个方块范围内的任何玩家显示 Hello World。


BOSS_BAR_MESSAGE

为目标添加一条 Boss 血条。

注意: 此动作支持占位符。完整列表见 占位符

详情必填特殊
Target更多信息见此处
sValue消息可使用带 &颜色代码
durationBoss 血条的持续时间(刻)
barColor设定 Boss 血条的颜色。有效值见此处默认为 WHITE
barStyle设定 Boss 血条的样式。有效值见此处默认为 SOLID
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: BOSS_BAR_MESSAGE
Target:
targetType: NEARBY_PLAYERS
range: 10
duration: 120
sValue: "&2Hello World!"
barColor: GREEN
barStyle: SEGMENTED_10

elitescript_actions_bossbar.jpg

会向 Boss 10 个方块范围内的任何玩家显示一条写着 Hello World 的 Boss 血条,持续 6 秒(120 刻)。


DAMAGE

这是你让实体以其他实体的身份去伤害实体的方式。

注意:这原生使用 EliteMobs 伤害系统!这意味着你会看到攻击时正常的精英护甲减免。更多内容见倍率一节。

详情必填
Target更多信息见此处
multiplier伤害倍率

关于递归的注意事项: 为防止无限循环,伤害动作的最大递归深度为 3。如果一个伤害脚本调用另一个伤害脚本,该链条会在深入 3 层后停止。

示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: DAMAGE
Target:
targetType: NEARBY_PLAYERS
range: 10
multiplier: 0.5

将伤害设为 Boss 对玩家所造成基础伤害的一半,并考虑伤害减免。

multiplier

为该效果设定 Boss 的伤害倍率。

重要:为了让技能能够轻松自动地缩放,伤害是通过让 Boss 命中玩家一次,再将 Boss 的基础伤害乘以该倍率来施加的。

这意味着倍率 1.0 等同于 Boss 的一次普通命中。2.0 是普通强度 2 倍的一击,而 0.5 则是 50% 的强度。


HEAL

这是你治疗包括玩家在内的实体的方式。

注意:这原生使用 EliteMobs 治疗系统!这意味着你会在实体附近看到 EliteMobs 的提示消息,显示它们被治疗了多少点!

详情必填
Target更多信息见此处
amount治疗多少点。(2 点为一颗心)
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: HEAL
Target:
targetType: NEARBY_MOBS
range: 15
amount: 20

当 Boss 被击中时,它会为 15 个方块范围内的所有怪物治疗 20 点(10 颗心)。


MAKE_INVULNERABLE

使目标无敌。

详情必填
Target更多信息见此处
invulnerable设定 Boss 是否无敌
duration设定无敌的持续时间(刻)
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: MAKE_INVULNERABLE
Target:
targetType: SELF
invulnerable: true
duration: 60

使 Boss 无敌 60 刻(3 秒)。


MODIFY_DAMAGE

修改对某个 Boss 造成的伤害,或该 Boss 对玩家造成的伤害。这是一个有若干特殊要求的特殊动作。

详情必填
multiplier伤害倍率。

此动作很特殊,必须位于一个有伤害事件监听器的脚本中。以下是有效的伤害事件:用于减少对 Boss 造成伤害的 EliteMobDamagedByEliteMobEventEliteMobDamagedByPlayerEventEliteMobDamagedEvent,以及用于减少对玩家造成伤害的 PlayerDamagedByEliteMobEvent

强烈建议你学习 hasTag 条件的工作原理,以便最好地使用此动作。正确使用时,可以让 Boss 暂时抵抗伤害或对伤害更脆弱,并且这可以与玩家增益、Boss 位置或许多其他因素关联起来。

示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: MODIFY_DAMAGE
multiplier: 2.0
Conditions:
hasTags:
- "CoolPlayer"
Target:
targetType: DIRECT_TARGET

将玩家对 Boss 造成的伤害提高 2 倍,但仅当玩家拥有名为 "CoolPlayer" 的标签时。


MESSAGE

向目标发送一条消息。

注意: 此动作支持占位符。完整列表见 占位符

详情必填特殊
Target更多信息见此处
sValue消息可使用带 &颜色代码
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: MESSAGE
Target:
targetType: NEARBY_PLAYERS
range: 10
sValue: "&2Hello World!"

elitescript_actions_message.jpg

会向 Boss 10 个方块范围内的所有玩家发送一条聊天消息。


使 Boss 导航(行走)到指定目标。

详情必填特殊
Target更多信息见此处
FinalTarget更多信息见此处
velocity设定 Boss 的导航速度。1.0 为配置中设定的 Boss 数值。
bValue设定若导航失败,是否应将 Boss 强制传送到 FinalTarget
durationBoss 在放弃前应尝试导航多久。以刻设定。默认为 100 刻。
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: NAVIGATE
Target:
targetType: SELF
FinalTarget:
targetType: NEARBY_PLAYERS
range: 50
velocity: 1.0
bValue: true
duration: 100

会使 Boss 导航到玩家击中 Boss 时所站立的位置。


PLACE_BLOCK

在目标位置放置一个方块,持续指定时间。

详情必填
Target更多信息见此处
material方块的材质(Material)完整列表见此处
duration效果持续时间(刻)
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: DOME
radius: 3
Target:
targetType: SELF
Actions:
- action: PLACE_BLOCK
Target:
targetType: ZONE_FULL
duration: 120
material: GLASS

elitescript_actions_placeblock.jpg

在 Boss 周围放置一个玻璃穹顶,持续 6 秒。

注意:如果没有定义 duration,方块放置将是永久性的。


PLAY_ANIMATION

使用 Model Engine 为自定义模型播放指定动画。需要 Model Engine,并且运行该动画的目标上需有一个有效的自定义模型。

详情必填
Target更多信息见此处
sValue设定动画的名称
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: PLAY_ANIMATION
Target:
targetType: SELF
sValue: "fortnite_dance"

设定 Boss 播放 fortnite_dance 动画。需要服务器安装 Model Engine、Boss 拥有一个自定义伪装,且该自定义伪装拥有一个名为 "fortnite_dance" 的动画。


PLAY_SOUND

播放一个游戏内音效。

详情必填
Target更多信息见此处
sValue设定要播放的音效的名称
pitch设定要播放的音效的音高
volume设定要播放的音效的音量

这里有一份方便的全部 Minecraft 音效列表! 请记住,这也可以播放资源包中的自定义音效。 当动作以一个区域为目标时,该动作会为该区域中的每个方块都播放一次音效。这会使音效比正常情况响得多,所以若以区域为目标,请考虑降低音量。

示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: PLAY_SOUND
Target:
targetType: SELF
sValue: minecraft:block.bell.resonate

在 Boss 位置播放来自 Minecraft 钟的共鸣音效。


POTION_EFFECT

为目标施加一个特定的药水效果。

详情必填
Target更多信息见此处
potionEffectType效果类型,有效列表见此处
amplifier药水效果等级(从 0 开始)
duration效果的持续时间(刻)
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: POTION_EFFECT
Target:
targetType: NEARBY_PLAYERS
range: 10
potionEffectType: LEVITATION
amplifier: 1
duration: 40

elitescript_actions_potioneffect.jpg

这会使 Boss 10 个方块范围内的任何玩家飘浮 2 秒(40 刻)。


PUSH

按设定的向量推动目标。

详情必填
Target更多信息见此处
vValue设定将施加的速度向量
bValue若设为 true,将该速度叠加到目标当前的速度上,而非替换它。

注意:此动作也接受相对向量。在此处了解更多关于如何使用它们的信息。

示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: PUSH
wait: 3
Target:
targetType: NEARBY_PLAYERS
range: 10
vValue: 0,0.3,0
times: 10
repeatEvery: 10

elitescript_actions_push.jpg

这会用 0.3 的力将 Boss 10 个方块范围内的所有玩家推向空中。此动作每 0.5 秒(10 刻)重复一次,共重复 10 次。换句话说,这会让该效果持续 5 秒(10 次 x 10 刻 = 100 刻)。

这会让玩家看起来像是在跳跃。

vector(向量)

向量由 vValue: x,y,z 定义。举例来说,如果你想让目标被向上推,你可以写 vValue: 0,0.3,0


REMOVE_ELITE

此动作会移除任何被以其为目标的精英怪。可以与条件和标签结合,从而只移除特定的精英怪。

详情必填
Target更多信息见此处
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: REMOVE_ELITE
Target:
targetType: NEARBY_ELITES
range: 10

这会移除 10 个方块半径范围内的任何附近精英怪。

eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: REMOVE_ELITE
Target:
targetType: NEARBY_ELITES
range: 3
Conditions:
conditionType: FILTERING
hasTags:
- remove_me
Target:
targetType: ACTION_TARGET

这会移除 3 个方块半径范围内的任何附近精英怪,但仅当它们拥有标签 remove_me 时。


RUN_COMMAND_AS_CONSOLE

以控制台身份运行一条命令。

详情必填
Target更多信息见此处
sValue将要运行的命令

注意: 此动作支持占位符。完整列表见 占位符

示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: RUN_COMMAND_AS_CONSOLE
Target:
targetType: NEARBY_PLAYERS
range: 10
sValue: say Hello $bossName my name is $playerName. What is your level? $bossName my level is $bossLevel.

elitescript_actions_commandconsole.jpg

使控制台广播消息 "Hello $bossName my name is $playerName. What is your level? $bossName my level is $bossLevel"


RUN_COMMAND_AS_PLAYER

以玩家身份运行一条命令。要求目标为玩家。

详情必填
target更多信息见此处
sValue将要运行的命令

Placeholders

RUN_COMMAND_AS_PLAYER、RUN_COMMAND_AS_CONSOLE、MESSAGE、TITLE_MESSAGE、ACTION_BAR_MESSAGE 和 BOSS_BAR_MESSAGE 都支持以下占位符:

占位符详情特殊
$playerName玩家的显示名称目标必须是玩家
$playerX玩家的 X 位置目标必须是玩家
$playerY玩家的 Y 位置目标必须是玩家
$playerZ玩家的 Z 位置目标必须是玩家
$targetName被以其为目标的玩家的显示名称。仅在 RUN_COMMAND_AS_PLAYER 中可用,会按每个目标分别替换。目标必须是玩家
$bossNameBoss 的显示名称
$bossXBoss 的 X 位置
$bossYBoss 的 Y 位置
$bossZBoss 的 Z 位置
$bossLevelBoss 的等级
$bossWorldNameBoss 所在世界的名称
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: RUN_COMMAND_AS_PLAYER
Target:
targetType: NEARBY_PLAYERS
range: 10
sValue: say Hello $bossName my name is $playerName.

elitescript_actions_commandplayer.jpg

使玩家用 Hello $bossName my name is $playerName. 运行 say 命令,也就是说他们只是说出 "Hello $bossName my name is $playerName."


RUN_SCRIPT

这只是运行 scripts 中定义的脚本。任何动作都能做到这一点,此动作的存在只是为了在你正好想这么做时提供便利。

详情必填
Target更多信息见此处
scripts将要运行的脚本
onlyRunOneScript只从列表中运行一个脚本。
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: RUN_SCRIPT
onlyRunOneScript: false
scripts:
- Example1
- Example2
Example1:
Actions:
- action: DAMAGE
Target:
targetType: NEARBY_PLAYERS
range: 10
multiplier: 0.5
Example2:
Actions:
- action: MESSAGE
Target:
targetType: NEARBY_PLAYERS
range: 10
sValue: "&cCool boss!: &fGotcha back!"

elitescript_actions_runscript.jpg

当一个精英怪受到伤害时,运行 RUN_SCRIPT,它会运行 Example1 和 Example2 脚本。

Example1 脚本会伤害 Boss 10 个方块范围内的所有玩家。
Example2 脚本会向 Boss 10 个方块范围内的所有玩家发送消息 "&cCool boss!: &fGotcha back!"。


SCALE

允许你缩放实体。

详情必填
Target更多信息见此处
scale设定缩放大小
duration设定缩放效果应持续多久

缩放时,1.0 代表默认大小。要让实体变大,增大该值(例如 1.2)。要让实体变小,减小该值(例如 0.8)。

注意:这可以以玩家为目标,所以请谨慎使用!

注意:如果你已经用 Boss 配置中的 scale 设置缩放了 Boss,那么无论配置中初始的 scale 值是多少,duration 设置都会把 Boss 重置回 1.0 的默认大小。

示例
eliteScript:
Example:
Events:
- EliteMobDamagedEvent
Actions:
- action: SCALE
Target:
targetType: SELF
scale: 0.3
duration: 60

当怪物被击中时,它会缩到极小的尺寸。60 刻(3 秒)后,它会恢复到默认大小(1.0)。


SET_FACING

使 Boss 面向某个方向。多与动画一起使用。

详情必填
vValueBoss 应面向哪个方向。X,Y,Z
RelativeVector使用相对向量使 Boss 面向某个目标。
示例
eliteScript:
Example:
Events:
- EliteMobEnterCombatEvent
Actions:
- action: SET_FACING
vValue: 1,0,0

会使 Boss 面向东方。

eliteScript:
Example:
Events:
- EliteMobEnterCombatEvent
Actions:
- action: SET_FACING
RelativeVector:
SourceTarget:
targetType: SELF
DestinationTarget:
targetType: NEARBY_PLAYERS
range: 20

会使 Boss 面向 20 个方块范围内的一名玩家。


SET_MOB_AI

设定怪物是否拥有 AI。在 Minecraft 中,没有 AI 的怪物不会移动也不会攻击。它们仍然可以受到伤害,但伤害它们不会导致它们被击退。

详情必填
Target更多信息见此处
bValue设定 Boss 是否拥有 AI
duration设定所设值的持续时间(刻)
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_MOB_AI
Target:
targetType: SELF
bValue: false
duration: 40

设定 Boss 在 2 秒(40 刻)内没有 AI。


SET_MOB_AWARE

设定怪物是否有意识。在 Minecraft 中,没有意识的怪物不会移动到新位置,也不会攻击。它们仍然可以受到伤害,并且会被击退。

需要注意的是,如果怪物在失去意识时已经在向某个位置移动,它会在完全停止、不再移动之前先走完去往该位置的路。

这意味着你可以使用无意识的怪物移动到指定位置,这与没有 AI 的怪物不同。

详情必填
Target更多信息见此处
bValue设定是否有意识
duration设定所设值的持续时间(刻)
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_MOB_AWARE
Target:
targetType: SELF
bValue: false
duration: 40

设定 Boss 在 2 秒(40 刻)内没有意识。


SET_ON_FIRE

使一个实体着火,持续指定时间。

详情必填
Target更多信息见此处
duration效果持续时间(刻)
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_ON_FIRE
Target:
targetType: NEARBY_PLAYERS
range: 10
duration: 60

elitescript_actions_setonfire.jpg

使 Boss 10 个方块范围内的所有玩家着火 3 秒(60 刻)。


SET_TIME

设定目标所在世界的游戏内时间。

详情必填
Target更多信息见此处
time设定时间
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_TIME
Target:
targetType: SELF
time: 10000

elitescript_actions_settime.gif

当被击中时,Boss 会将其所在世界的时间设为 10000 刻。


SET_WEATHER

将目标所在世界的天气设定为一段时间内的某种天气。

详情必填
Target更多信息见此处
weather设定天气类型
duration设定天气模式的持续时间
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: PRECIPITATION
duration: 120

elitescript_actions_setweather.gif

将 Boss 所在世界的天气设为在接下来的一分钟内下雨/下雪。

注意:该效果需要一会儿才会触发。

weather(天气)

以下是有效的天气模式:

  • CLEAR - 将天气设为晴朗
  • PRECIPITATION - 将天气设为下雨/下雪,具体取决于生物群系、位置高度以及其他原版 Minecraft 因素。
  • THUNDER - 将天气设为雷暴

SPAWN_FIREWORKS

生成烟花。

详情必填特殊
Target更多信息见此处
vValue设定烟花火箭的速度
flicker设定烟花粒子是否会闪烁默认:true
withTrail设定烟花火箭是否会留下轨迹默认:true
power设定烟花的威力
fireworkEffects设定烟花的效果,与它爆炸前需要多长时间有关
fireworkEffectType设定烟花的形状(来自此列表
fireworkEffectTypes设定烟花的多个形状(来自此列表)。这是一个形状列表——如果你想要一个形状列表,不要使用 fireworkEffectType![1]

[1] 当为烟花使用多个形状时,每个形状会使用颜色列表中相同位置的颜色。见下方示例。

示例
eliteScript:
fireworkShot1:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SPAWN_FIREWORKS
Target:
targetType: SELF
offset: 1,1.5,0
vValue: .5,-.35,1
flicker: false
withTrail: false
power: 2
fireworkEffects:
- [ORANGE, RED]
- [YELLOW, BLUE]
fireworkEffectTypes:
- BALL_LARGE
- STAR

elitescript_actions_fireworks.jpg

在 Boss 位置生成烟花,偏移量为 x= 1、y= 1.5、z = 0。赋予烟花 x=.5、y=-.35、z=1 的速度。烟花不会闪烁也不会有轨迹;power 设为 2,所以烟花爆炸会被延迟相应的量。

最后,有两个颜色列表的列表:列表 1 是橙色和红色,列表 2 是黄色和蓝色。烟花有两个形状:BALL_LARGE 和 STAR。这意味着 BALL_LARGE(元素 1)将使用橙色和红色(列表 1),而 STAR(元素 2)将使用黄色和蓝色(列表 2)。

fireworkEffects

这些是烟花火箭将展示的效果。至少需要一个效果。以下是有效的效果:

  • WHITE, SILVER, GRAY, BLACK, RED, MAROON, YELLOW, OLIVE, LIME, GREEN, AQUA, TEAL, BLUE, NAVY, FUCHSIA, PURPLE, ORANGE

STRIKE_LIGHTNING

降下闪电。这是一个视觉效果,如果你想要伤害,应该添加一个伤害动作。

详情必填
Target更多信息见此处
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: STRIKE_LIGHTNING
Target:
targetType: SELF
repeatEvery: 5
times: 5

elitescript_actions_strike.jpg

每 5 刻向 Boss 降下一次闪电,共 5 次。


SPAWN_FALLING_BLOCK

在目标处生成一个下落的方块。仅为视觉效果,不会放置方块。

详情必填
Target更多信息见此处
material设定下落方块的材质(Material)在此处查看有效类型,并确保它们是有效的方块材质。
landingScripts设定方块落地时将运行的脚本列表
vValue设定下落方块的速度和方向。

landingScripts 的工作方式与 RUN_SCRIPT 相同,但可以接受特殊目标类型 LANDING_LOCATION

LANDING_LOCATION 会被脚本运行器继承,使一个落地位置脚本也可以充当脚本运行器。你可以在调用脚本的动作上添加一个 wait,随后跟上后续的脚本调用。LANDING_LOCATION 始终会是目标的参数,即使在被继承时也是如此,因为它以一种特定的单一方式被赋值。

注意:此动作也接受相对向量。在此处了解更多关于如何使用它们的信息。

示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SPAWN_FALLING_BLOCK
Target:
targetType: SELF
offset: 3,10,0
material: STONE
vValue: 0,0,0
landingScripts:
- LandingScriptExample
LandingScriptExample:
Actions:
- action: PLACE_BLOCK
Target:
targetType: LANDING_LOCATION
duration: 200
material: STONE

elitescript_actions_block.gif

当 Boss 被击中时,此脚本会在 Boss 位置上方 10 个方块、旁边 3 个方块处生成一个下落的石头方块。

一旦方块落下,它会运行 LandingScriptExample 脚本,在方块落地的位置放置一个石头方块。 该方块会在那里停留 10 秒(200 刻)后消失。


SPAWN_PARTICLE

在目标处生成粒子。

注意:如果没有设置 coverage,那么 coverage 将默认设为 0.3!

详情必填
Target更多信息见此处
particles列出将要生成的粒子

particles(粒子)

粒子有自己的特殊设置,如下所示:

详情默认特殊
x设定 X 的偏移0.01(1)
y设定 Y 的偏移0.01(1)
z设定 Z 的偏移0.01(1)
amount设定生成的粒子数量1(1)
speed设定粒子的速度0.01
particle设定粒子类型FLAME有效粒子列于下方
red设定红色值255(2)
green设定绿色值255(2)
blue设定蓝色值255(2)
toRed设定最终红色值255(3)
toGreen设定最终绿色值255(3)
toBlue设定最终蓝色值255(3)
moveToTarget设定粒子是否应朝目标位置移动null(4)
relativeVector为粒子的方向设定一个相对向量。在此处了解更多关于相对向量的信息。none

(1) 如果 amount 设为 0,则 xyz 会改为设定粒子的速度。

(2) 仅适用于 DUSTDUST_COLOR_TRANSITIONWITCH 这几种 particle。旧名称 REDSTONE(→ DUST)、SPELL_MOBSPELL(→ WITCH)也被接受。

(3) 仅适用于 DUST_COLOR_TRANSITION 这种 particle

(4) 布尔值。设为 true 时,粒子会朝动作的目标位置定向。适用于创建从一点移动到另一点的视觉效果。

需要注意的是,一个 SPAWN_PARTICLE 脚本可以生成多种粒子。然后每种粒子都可以在 SPAWN_PARTICLE 动作内拥有自己的配置字段。下面是一个示例:

示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Zone:
shape: CYLINDER
radius: 4
borderRadius: 3
height: 30
Target:
targetType: DIRECT_TARGET
track: true
Actions:
- action: SPAWN_PARTICLE
Target:
targetType: ZONE_BORDER
particles:
- particle: FLAME
speed: 0.2
- particle: SMOKE_NORMAL
speed: 0.1
amount: 1
repeatEvery: 10

elitescript_actions_particle.jpg

这会在伤害了 Boss 的玩家周围生成一个由火焰和烟雾粒子组成的圆柱。

移动粒子:

可以为粒子设定特定速度,其工作方式与 Spigot API 相同。这允许脚本编写者设定粒子以特定速度朝特定方向移动。无法让粒子中途改变方向。此效果用于火焰喷射器附魔和 Boss 技能。

要移动粒子,请设 amount: 0。这会向 Minecraft 表明 xyz 值实际上是一个向量。该向量设定你的粒子将朝向的方向。

假设你想让一个 FLAME 粒子向上移动。为此,你需要一个正的 y 值,其他都不要。最后,你需要将速度设为你想要的速度。下面是一个完整示例:

示例
eliteScript:
Example:
Events:
- EliteMobEnterCombatEvent
Zone:
shape: CYLINDER
radius: 4
borderRadius: 3
height: 30
Target:
targetType: DIRECT_TARGET
track: true
Actions:
- action: SPAWN_PARTICLE
Target:
targetType: ZONE_BORDER
particles:
- particle: FLAME
amount: 0
x: 0
y: 1
z: 0
speed: 0.2
- particle: SMOKE_NORMAL
speed: 0.1
amount: 0
x: 0.5
y: 1
z: 0.5
amount: 3
repeatEvery: 10

这会在 Boss 位置生成一个会向上移动的火焰粒子。

Valid particles

EliteMobs 接受 Spigot Particle 枚举中的任何粒子。以下是最常用的粒子。旧的粒子名称(来自较旧的 Minecraft 版本)会被自动转换为其现代等价物。

简单粒子(无需额外数据——在任何地方都能用,包括 Boss 轨迹):

POOF, EXPLOSION, EXPLOSION_EMITTER, FIREWORK, BUBBLE, SPLASH, FISHING, UNDERWATER, CRIT, ENCHANTED_HIT, SMOKE, LARGE_SMOKE, WITCH, DRIPPING_WATER, DRIPPING_LAVA, ANGRY_VILLAGER, HAPPY_VILLAGER, MYCELIUM, NOTE, PORTAL, ENCHANT, FLAME, LAVA, CLOUD, ITEM_SNOWBALL, ITEM_SLIME, HEART, RAIN, ELDER_GUARDIAN, END_ROD, DAMAGE_INDICATOR, SWEEP_ATTACK, TOTEM_OF_UNDYING, SPIT, SQUID_INK, BUBBLE_POP, CURRENT_DOWN, BUBBLE_COLUMN_UP, NAUTILUS, DOLPHIN, SNEEZE, CAMPFIRE_COSY_SMOKE, CAMPFIRE_SIGNAL_SMOKE, COMPOSTER, FALLING_LAVA, LANDING_LAVA, FALLING_WATER, DRIPPING_HONEY, FALLING_HONEY, LANDING_HONEY, FALLING_NECTAR, SOUL_FIRE_FLAME, ASH, CRIMSON_SPORE, WARPED_SPORE, SOUL, DRIPPING_OBSIDIAN_TEAR, FALLING_OBSIDIAN_TEAR, LANDING_OBSIDIAN_TEAR, REVERSE_PORTAL, WHITE_ASH, FALLING_SPORE_BLOSSOM, SPORE_BLOSSOM_AIR, SMALL_FLAME, SNOWFLAKE, DRIPPING_DRIPSTONE_LAVA, FALLING_DRIPSTONE_LAVA, DRIPPING_DRIPSTONE_WATER, FALLING_DRIPSTONE_WATER, GLOW_SQUID_INK, GLOW, WAX_ON, WAX_OFF, ELECTRIC_SPARK, SCRAPE, SONIC_BOOM, SCULK_SOUL, SCULK_CHARGE_POP, CHERRY_LEAVES, PALE_OAK_LEAVES, EGG_CRACK, DUST_PLUME, WHITE_SMOKE, GUST, SMALL_GUST, GUST_EMITTER_LARGE, GUST_EMITTER_SMALL, TRIAL_SPAWNER_DETECTION, TRIAL_SPAWNER_DETECTION_OMINOUS, VAULT_CONNECTION, INFESTED, ITEM_COBWEB, OMINOUS_SPAWNING, RAID_OMEN, TRIAL_OMEN, FIREFLY, COPPER_FIRE_FLAME

特殊粒子(在 EliteScript 中需要额外的配置数据):

粒子说明
DUST使用 redgreenblue 值表示颜色。旧名称:REDSTONE
DUST_COLOR_TRANSITION使用 red/green/blue 表示起始颜色,toRed/toGreen/toBlue 表示结束颜色
WITCH使用 redgreenblue 表示颜色。旧名称:SPELL_MOBSPELL

需要方块/物品数据的粒子(在 EliteScript 或 Boss 轨迹中不可用):

BLOCK, FALLING_DUST, DUST_PILLAR, BLOCK_CRUMBLE, BLOCK_MARKER, ITEM

其他带有特殊数据类型的粒子(在 Boss 轨迹中不可用,但在 EliteScript 中可能在不带其数据的情况下可用):

EFFECT, INSTANT_EFFECT, ENTITY_EFFECT, FLASH, DRAGON_BREATH, SCULK_CHARGE, SHRIEK, VIBRATION, TRAIL, TINTED_LEAVES

旧名称转换(旧名称在配置文件中仍然有效):

旧名称现代名称
EXPLOSION_NORMALEXPLOSION
EXPLOSION_LARGEEXPLOSION
EXPLOSION_HUGEEXPLOSION
SMOKE_NORMALSMOKE
SMOKE_LARGELARGE_SMOKE
REDSTONEDUST
SLIMEITEM_SLIME
DRIP_LAVADRIPPING_WATER(注意:这是转换器中的一个已知 bug——请直接改用 DRIPPING_LAVA
DRIP_WATERDRIPPING_WATER
SNOWBALLSNOWFLAKE
SPELLWITCH
SPELL_MOBWITCH
VILLAGER_ANGRYANGRY_VILLAGER
VILLAGER_HAPPYHAPPY_VILLAGER
WATER_BUBBLEUNDERWATER
WATER_SPLASHSPLASH

SUMMON_REINFORCEMENT

从 EliteMobs 自定义 Boss 召唤增援。

详情必填
Target更多信息见此处
sValue设定自定义 Boss 增援的文件名
duration设定增援的持续时间(刻)
vValue设定所生成增援的速度

注意:此动作也接受相对向量。在此处了解更多关于如何使用它们的信息。

示例
eliteScript:
Example:
Events:
- EliteMobEnterCombatEvent
Actions:
- action: SUMMON_REINFORCEMENT
Target:
targetType: DIRECT_TARGET
sValue: your_boss_file.yml

在 Boss 位置生成文件名为 "your_boss_file.yml" 的增援。


SUMMON_ENTITY

在目标位置召唤一个实体。

详情必填
Target更多信息见此处
sValue设定要召唤的实体类型
vValue设定所召唤实体的速度
duration设定所召唤实体在被移除前会存在多久(刻)
landingScripts当实体落地或变为无效时要运行的脚本

注意:此动作也接受相对向量。在此处了解更多关于如何使用它们的信息。

示例
eliteScript:
Example:
Events:
- EliteMobEnterCombatEvent
Actions:
- action: SUMMON_ENTITY
sValue: ARROW
vValue: 0,1,0
Target:
targetType: SELF
track: false
RelativeVector:
SourceTarget:
targetType: SELF
DestinationTarget:
targetType: ZONE_FULL
normalize: true
multiplier: 8.0

在 Boss 的位置生成一支箭,并以归一化的速度将其朝一个区域发射。


TAG

为 Boss 或玩家添加标签。标签只是脚本编写者可以定义的字符串或词语。它们仅用于运行条件检查,除了在脚本中被用到的用途之外,没有直接的游戏玩法效果。

详情必填
Target更多信息见此处
tags设定标签
duration设定标签的持续时间(刻)
示例
eliteScript:
Example:
Events:
- EliteMobSpawnEvent
Actions:
- action: TAG
Target:
targetType: SELF
tags:
- fireworks
- action: SPAWN_FIREWORKS
Target:
targetType: SELF
wait: 20
offset: 0,3,0
vValue: 0,.1,0
flicker: true
withTrail: true
power: 1
fireworkEffects:
- [ORANGE, RED]
repeatEvery: 20
Conditions:
hasTags:
- fireworks

为 Boss 打上字符串标签 "fireworks",之后可以通过脚本条件来检查它。

重要: 只能为玩家和精英怪打标签。


TELEPORT

将目标传送到指定位置。

详情必填
Target设定_谁_将被传送。通用目标信息见此处!
FinalTarget设定他们将被传送到_何处_。通用目标信息见此处!
location传送位置

注意: FinalTargetlocation 是两种替代方案——使用其中之一,而不要同时使用两者。要么设置 FinalTarget 以使用基于目标的目的地,要么设置 location 以使用基于具体坐标的目的地。

示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: TELEPORT
Target:
targetType: NEARBY_PLAYERS
range: 10
FinalTarget:
targetType: SELF_SPAWN

elitescript_actions_teleport.gif

这会将 Boss 10 个方块范围内的所有玩家传送到 Boss 的生成位置。

location(位置)

设定玩家将被传送到的位置。格式是标准的 EliteMobs world_name,x,y,z,pitch,yaw

示例

location: world,0,64,0,0,0

它有几个特殊值:

  • 如果世界名设为 same_as_boss,它会将世界名替换为 Boss 当前所在世界的名称:
location: same_as_boss,0,64,0,0,0
  • 如果只有匹配 x、y 和 z 的三个值,则传送会相对于 Boss 位置进行。如果该 Boss 是区域 Boss,则该位置会相对于 Boss 的生成点。

TITLE_MESSAGE

为目标设定一条标题消息。

注意: 此动作支持占位符。完整列表见 占位符

详情必填特殊默认
Target更多信息见此处
title设定标题消息可使用带 &颜色代码
subtitle设定副标题消息可使用带 &颜色代码
duration设定消息的持续时间(刻)0
fadeIn设定淡入时间(刻)1
fadeOut设定淡出时间(刻)1
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: TITLE_MESSAGE
Target:
targetType: NEARBY_PLAYERS
range: 10
title: "&2Hello World!"
subtitle: "&2I am a subtitle!"
duration: 120
fadeIn: 20
fadeOut: 20

elitescript_actions_titlescreen.jpg

会向 Boss 10 个方块范围内的所有玩家设定标题消息,显示标题 "&2Hello World!" 以及副标题 "&2I am a subtitle!"。

该消息会在屏幕上停留 8 秒(120 + 20 + 20 = 160 刻),包括淡入和淡出动画。


UNTAG

从 Boss 移除标签。查看 TAG 以了解标签的工作原理。

详情必填
Target更多信息见此处
tags设定标签
duration设定移除标签的持续时间(刻)
示例
eliteScript:
Example:
Events:
- EliteMobSpawnEvent
Actions:
- action: TAG
Target:
targetType: SELF
tags:
- fireworks
- action: SPAWN_FIREWORKS
Target:
targetType: SELF
wait: 20
offset: 0,3,0
vValue: 0,.1,0
flicker: true
withTrail: true
power: 1
fireworkEffects:
- [ORANGE, RED]
repeatEvery: 20
Conditions:
hasTags:
- fireworks
Example2:
Events:
- EliteMobEnterCombatEvent
Actions:
- action: UNTAG
Target:
targetType: SELF
tags:
- fireworks

从 Boss 移除标签 "fireworks",之后可以通过脚本条件来检查它。


VISUAL_FREEZE

给玩家施加冰冻视觉效果并造成与之关联的伤害。如果你不想让效果立即消退,应将其与一个重复脚本结合使用。

详情必填
Target更多信息见此处
amount要为目标增加的冰冻刻数
示例
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: VISUAL_FREEZE
Target:
targetType: NEARBY_PLAYERS
range: 10
amount: 20
repeatEvery: 20
times: 3

给 Boss 10 个方块范围内的所有玩家施加冰冻视觉效果,持续 3 秒(60 刻)。


多个动作

有时你可能想在某个事件发生时一次性执行多个动作,比如发送多条消息或按顺序执行不同的动作。这很容易做到!让我们给示例添加一个药水效果动作:

示例
eliteScript:
MessagePlayers:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: MESSAGE
Target:
targetType: ALL_PLAYERS
sValue: I am messaging all online players!
- action: MESSAGE
Target:
targetType: DIRECT_TARGET
sValue: I am messaging the player that hit the boss!