创建虫洞
什么是虫洞?
虫洞是一种高效的传送门对传送门的传送系统。这些传送门会以视觉特效标记出来。
虫洞机制
虫洞可以实现以下功能:
- 穿过一个传送门抵达目标传送门,再从目标传送门返回最初的传送门。
- 玩家穿过时播放音效
- 玩家穿过时短暂致盲以平滑过渡
- 将玩家推出,避免陷入传送循环
- 传送后锁定玩家 5 秒禁止再次传送,避免陷入传送循环
- 玩家传送时自动禁用飞行模式
- 播放精美的视觉特效
- 要求拥有权限才能使用虫洞
- 要求使用货币才能使用虫洞
- 当目标传送门不可用时通知玩家和管理员
创建虫洞
虫洞以配置文件的形式添加到 wormholes 文件夹中。可以创建子文件夹,如果你要为特定副本添加虫洞,建议这样做,采用 ` ~/plugins/EliteMobs/wormholes/dungeonName/dungeonName_identifier.yml` 的格式。
弹出方向
location1 和 location2 中的偏航角(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
设定虫洞是否启用。
| Key | Values | Default |
|---|---|---|
isEnabled | Boolean | true |
示例
isEnabled: true
location1
指定虫洞的第一个位置。
| Key | Values | Default |
|---|---|---|
location1 | String | none |
示例
location1: world_one,50,100,50,0,0
location2
指定虫洞的第二个位置。
| Key | Values | Default |
|---|---|---|
location2 | String | none |
示例
location2: world_two,100,33,100,0,0
location1Text
设定第一个位置的显示文本。
| Key | Values | Default |
|---|---|---|
location1Text | String | none |
示例
location1Text: Awesome Wormhole In World One

location2Text
设定第二个位置的显示文本。
| Key | Values | Default |
|---|---|---|
location2Text | String | none |
示例
location2Text: Awesome Wormhole In World Two

permission
设定使用虫洞所需的权限。
| Key | Values | Default |
|---|---|---|
permission | String | none |
示例
permission: elitemobs.mypermission
coinCost
设定使用虫洞所需花费的精英金币(elite coins)数量。
| Key | Values | Default |
|---|---|---|
coinCost | Double | 0 |
示例
coinCost: 2.5
style
设定虫洞的视觉形状。
构成这些形状的粒子在某些客户端上可能造成卡顿。要关闭粒子,请进入 Wormholes.yml 并将 noParticlesMode 设为 true。
| Key | Values | Default |
|---|---|---|
style | NONE / CRYSTAL / ICOSAHEDRON / CUBE | CUBE |
示例
style: CRYSTAL

particleColor
设定 style 设置中所用粒子的颜色。
| Key | Values | Default |
|---|---|---|
particleColor | 0x 后跟一个十六进制代码 | 0 |
示例
particleColor: 0x9f5cdd

blindPlayer
设定传送门是否致盲玩家以使传送更平滑。
| Key | Values | Default |
|---|---|---|
blindPlayer | Boolean | false |
示例
blindPlayer: true

sizeMultiplier
将传送门以及由 style 设定的形状的大小成倍放大。sizeMultiplier 还会影响激活半径——玩家必须处于虫洞 1.5 × sizeMultiplier 个方块范围内才能触发传送。
| Key | Values | Default |
|---|---|---|
sizeMultiplier | Multiplier | 1 |
示例
sizeMultiplier: 3
请记住,应用大小倍率后,你需要相应调整虫洞的 Y 坐标。

customModel1
设定在第一个位置用于显示虫洞的自定义模型。使用一个模型标识符字符串。这会覆盖位置 1 中由 style 定义的形状。
| Key | Values | Default |
|---|---|---|
customModel1 | String | none |
示例
customModel1: my_custom_wormhole_model
customModel2
设定在第二个位置用于显示虫洞的自定义模型。使用一个模型标识符字符串。这会覆盖位置 2 中由 style 定义的形状。
| Key | Values | Default |
|---|---|---|
customModel2 | String | none |
示例
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 个方块范围内的玩家渲染。
