创建虫洞
什么是虫洞?
虫洞是一种高效的传送门对传送门的传送系统。这些传送门会以视觉特效标记出来。
虫洞机制
虫洞可以实现以下功能:
- 穿过一个传送门抵达目标传送门,再从目标传送门返回最初的传送门。
- 玩家穿过时播放音效
- 玩家穿过时短暂致盲以平滑过渡
- 锁定玩家的传送,直到至少经过 5 秒并且他们已经走出目标传送门的激活半径,以避免陷入传送循环
- 玩家传送时自动禁用飞行模式
- 播放精美的视觉特效
- 要求拥有权限才能使用虫洞
- 要求使用货币才能使用虫洞
- 当目标传送门不可用时通知玩家和管理员
玩家每 5 刻(四分之一秒)才会针对某个虫洞检查一次,而且仅在其处于该虫洞 30 格范围内时才检查。
创建虫洞
虫洞以配置文件的形式添加到 wormholes 文件夹中。可以创建子文件夹,如果你要为特定副本添加虫洞,建议这样做,采用 ` ~/plugins/EliteMobs/wormholes/dungeonName/dungeonName_identifier.yml` 的格式。
在游戏内放置虫洞
你可以不必手写坐标,而是站在你希望传送门所在的位置并运行:
/em place wormhole <filename> <1/2>
1 设置 location1,2 设置 location2。该命令需要 elitemobs.place.admin 权限,必须由玩家执行,并会把新坐标直接写入该虫洞的配置文件。传送门被锚定在你站立位置上方一格(乘以 sizeMultiplier)处,因此通过它抵达的玩家会落到你原本所站的方块上。
抵达朝向
location1 和 location2 中的偏航角(Yaw)和俯仰角(Pitch)(坐标中的最后两个数字)设定玩家抵达虫洞该侧时所面朝的方向。来看这个例子:
location1: my_world,20,10,20,180,20
偏航角设为 180 时,玩家抵达时面朝北方。俯仰角遵循 Minecraft 的约定,正值表示向下看,负值表示向上看,因此俯仰角 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
设定虫洞的视觉形状。
该形状被绘制为由方块显示实体构成的旋转线框,并每 5 刻在其上叠加少量粒子点缀。把 style 设为 NONE 会完全跳过该形状。
构成这些形状的特效在某些客户端上可能造成卡顿。要关闭它们,请进入 Wormholes.yml 并将 noParticlesMode 设为 true。
| Key | Values | Default |
|---|---|---|
style | NONE / CRYSTAL / ICOSAHEDRON / CUBE | CUBE |
示例
style: CRYSTAL

particleColor
设定 style 设置中所用粒子的颜色。线框方块不会使用精确的颜色;EliteMobs 会挑选颜色最接近你所设定值的具体方块。
默认值 0 是黑色,因此值得为你创建的每一个虫洞都设置这一项。
| 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 定义的形状。
虫洞上的自定义模型仅在配合 FreeMinecraftModels 时可用;该模型必须存在,否则虫洞会回退到 style 线框。该模型纯属装饰,无法被点击 —— 传送仍然基于接近程度判定。
| Key | Values | Default |
|---|---|---|
customModel1 | String | none |
示例
customModel1: my_custom_wormhole_model
customModel2
设定在第二个位置用于显示虫洞的自定义模型。使用一个模型标识符字符串。这会覆盖位置 2 中由 style 定义的形状。与 customModel1 相同的 FreeMinecraftModels 要求同样适用。
| 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(默认)—— 将沿形状描绘的点数减半,以获得更好的性能noParticlesMode: false(默认)—— 将其设为true会完全禁用虫洞形状和粒子
只要上述两项中的任意一项被启用,通过 Geyser/Floodgate 连接的基岩版玩家还会在形状的位置额外看到一个简单的标记实体,其大小按 sizeMultiplier 缩放,并以 particleColor 着色。Java 版玩家永远看不到它。
注意:虫洞仅对 30 个方块范围内的玩家渲染,并且只在这些玩家中至少有一人能直视该传送门时才渲染。
