跳到主要内容

创建虫洞

webapp_banner.jpg

什么是虫洞?

虫洞是一种高效的传送门对传送门的传送系统。这些传送门会以视觉特效标记出来。

虫洞机制

虫洞可以实现以下功能:

  • 穿过一个传送门抵达目标传送门,再从目标传送门返回最初的传送门。
  • 玩家穿过时播放音效
  • 玩家穿过时短暂致盲以平滑过渡
  • 将玩家推出,避免陷入传送循环
  • 传送后锁定玩家 5 秒禁止再次传送,避免陷入传送循环
  • 玩家传送时自动禁用飞行模式
  • 播放精美的视觉特效
  • 要求拥有权限才能使用虫洞
  • 要求使用货币才能使用虫洞
  • 当目标传送门不可用时通知玩家和管理员

创建虫洞

虫洞以配置文件的形式添加到 wormholes 文件夹中。可以创建子文件夹,如果你要为特定副本添加虫洞,建议这样做,采用 ` ~/plugins/EliteMobs/wormholes/dungeonName/dungeonName_identifier.yml` 的格式。

弹出方向

location1location2 中的偏航角(Yaw)和俯仰角(Pitch)(坐标中的最后两位数字)将设定玩家穿越虫洞时从虫洞被弹出的朝向。来看这个例子:

location1: my_world,20,10,20,180,20

偏航角设为 180 时,玩家会面朝北方被弹出;俯仰角设为 20 时,玩家还会略微朝上被弹出。如果你希望玩家被弹出时停留在与虫洞相同的方块内,那么最好将俯仰角设为负值,以确保玩家不会从方块上滑落。

虫洞配置

以下是一个有效虫洞配置的示例:

isEnabled: true
location1: em_primis,1288.5,19,452.5,135,-23
location2: em_primis,1288.5,-39,451.5,180,-1

isEnabled

设定虫洞是否启用。

KeyValuesDefault
isEnabledBooleantrue
示例
isEnabled: true

location1

指定虫洞的第一个位置。

KeyValuesDefault
location1Stringnone
示例
location1: world_one,50,100,50,0,0

location2

指定虫洞的第二个位置。

KeyValuesDefault
location2Stringnone
示例
location2: world_two,100,33,100,0,0

location1Text

设定第一个位置的显示文本。

KeyValuesDefault
location1TextStringnone
示例
location1Text: Awesome Wormhole In World One

create_wormhole_location1text.jpg


location2Text

设定第二个位置的显示文本。

KeyValuesDefault
location2TextStringnone
示例
location2Text: Awesome Wormhole In World Two

create_wormhole_location2text.jpg


permission

设定使用虫洞所需的权限。

KeyValuesDefault
permissionStringnone
示例
permission: elitemobs.mypermission

coinCost

设定使用虫洞所需花费的精英金币(elite coins)数量。

KeyValuesDefault
coinCostDouble0
示例
coinCost: 2.5

style

设定虫洞的视觉形状。

构成这些形状的粒子在某些客户端上可能造成卡顿。要关闭粒子,请进入 Wormholes.yml 并将 noParticlesMode 设为 true

KeyValuesDefault
styleNONE / CRYSTAL / ICOSAHEDRON / CUBECUBE
示例
style: CRYSTAL

create_wormhole_style.jpg


particleColor

设定 style 设置中所用粒子的颜色。

KeyValuesDefault
particleColor0x 后跟一个十六进制代码0
示例
particleColor: 0x9f5cdd

create_wormhole_particlecolor.jpg


blindPlayer

设定传送门是否致盲玩家以使传送更平滑。

KeyValuesDefault
blindPlayerBooleanfalse
示例
blindPlayer: true

create_wormhole_blind.jpg


sizeMultiplier

将传送门以及由 style 设定的形状的大小成倍放大。sizeMultiplier 还会影响激活半径——玩家必须处于虫洞 1.5 × sizeMultiplier 个方块范围内才能触发传送。

KeyValuesDefault
sizeMultiplierMultiplier1
示例
sizeMultiplier: 3

请记住,应用大小倍率后,你需要相应调整虫洞的 Y 坐标。

create_wormhole_size.jpg


customModel1

设定在第一个位置用于显示虫洞的自定义模型。使用一个模型标识符字符串。这会覆盖位置 1 中由 style 定义的形状。

KeyValuesDefault
customModel1Stringnone
示例
customModel1: my_custom_wormhole_model

customModel2

设定在第二个位置用于显示虫洞的自定义模型。使用一个模型标识符字符串。这会覆盖位置 2 中由 style 定义的形状。

KeyValuesDefault
customModel2Stringnone
示例
customModel2: my_custom_wormhole_model

虫洞配置示例

在这个示例中,我们将创建一个简单的虫洞,将我们从一个世界带到另一个世界。别忘了虫洞也可以只是将玩家传送到同一世界中的不同位置。

isEnabled: true #我们通过将此值设为 true 来启用虫洞
location1: my_world,1.5,11.0,1.5,108.0,5.0 #这是虫洞在 my_world 中出现的位置
location2: my_other_world,766.5,29.0,517.5,-136.0,5.0 #这是虫洞在 my_other_world 中出现的位置
location1Text: "&aGo to My World" #在虫洞 location1 上方生成一段漂亮的显示文本
location2Text: "&aGo to My Other World" #在虫洞 location2 上方生成一段漂亮的显示文本
permission: eliteperm.coolplayers #只有拥有此权限的玩家才能使用虫洞,location1 和 location2 都是如此
coinCost: 2 #玩家需要支付 2 枚精英金币才能使用虫洞
style: CRYSTAL #这个虫洞将呈水晶形状
particleColor: 0x00ff00 #这会将虫洞粒子设为绿色
blindPlayer: true #虫洞传送会短暂致盲玩家,使过渡不那么突兀
sizeMultiplier: 1.0 #设定虫洞形状应有多大

性能问题

虫洞粒子可能给运行基岩版的玩家造成客户端性能问题。你可以在 ~plugins\EliteMobs\Wormholes.yml 中配置粒子性能:

  • reducedParticlesMode: true(默认)——将粒子密度降低 50% 以获得更好的性能,尤其推荐用于有基岩版客户端的服务器
  • noParticlesMode: true —— 完全禁用所有虫洞粒子

注意:为优化服务器性能,虫洞仅对 30 个方块范围内的玩家渲染。