跳到主要内容

创建虫洞

webapp_banner.jpg

什么是虫洞?​

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

虫洞机制

虫洞可以实现以下功能:

  • 穿过一个传送门抵达目标传送门,再从目标传送门返回最初的传送门。
  • 玩家穿过时播放音效
  • 玩家穿过时短暂致盲以平滑过渡
  • 为防止传送循环,必须经过超过 5 秒,并且玩家已离开目标传送门 1.5 × sizeMultiplier + 2 格以外,才能再次传送
  • 玩家传送时自动禁用飞行模式
  • 播放精美的视觉特效
  • 要求拥有权限才能使用虫洞
  • 要求使用货币才能使用虫洞
  • 当目标传送门不可用时通知玩家和管理员

玩家每 5 刻(四分之一秒)才会针对某个虫洞检查一次,而且仅在其处于该虫洞 30 格范围内时才检查。

切换世界视为已离开目标传送门的半径,因此切换世界后只剩下 5 秒的时间要求。重新连接服务器会清除冷却。

创建一个虫洞

将配置文件添加到 plugins/EliteMobs/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​

设定虫洞是否启用。

键值默认值
isEnabled布尔值true
示例
isEnabled: true

location1​

指定虫洞的第一个位置。两个位置字段都接受 world,x,y,z,yaw,pitch,也接受 adventurers_guild_hub.yml 这样的副本包文件名。包引用使用该包配置的传送位置。使用前请安装该包并加载其世界。传送处理检查解析后的位置和世界加载状态,不会单独强制检查包的安装标记。它不会创建新的副本实例。

键值默认值
location1字符串无
示例
location1: world_one,50,100,50,0,0

location2​

指定虫洞的第二个位置。

键值默认值
location2字符串无
示例
location2: world_two,100,33,100,0,0

location1Text​

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

键值默认值
location1Text字符串无
示例
location1Text: Awesome Wormhole In World One

create_wormhole_location1text.jpg


location2Text​

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

键值默认值
location2Text字符串无
示例
location2Text: Awesome Wormhole In World Two

create_wormhole_location2text.jpg


permission​

设定双向使用虫洞所需的权限。启用 /em quest bypass 的玩家跳过此权限检查,但仍需满足费用和冷却要求。

键值默认值
permission字符串无
示例
permission: elitemobs.mypermission

coinCost​

设定虫洞的使用费用。通常使用精英金币;启用 Vault 经济集成后,使用服务器货币。

只有在权限、冷却和目的地检查都通过后才会扣费,两个方向的费用相同。付不起费用的玩家会收到 Wormholes.yml 中的 insufficientCurrencyForWormholeMessage,且不会被传送。如果传送被取消或未能抵达,费用会被退还。

如果经济系统无法确认扣款或退款,EliteMobs 会告知玩家联系管理员,记录金额以便人工核对,并在服务器重启前禁止该玩家使用所有虫洞。负数或非有限值的 coinCost 会记录一条警告,该虫洞不会传送任何人。

键值默认值
coinCost双精度小数0
示例
coinCost: 0

style​

设定虫洞的视觉形状。

该形状被绘制为由方块显示实体构成的旋转线框,并每 5 刻在其上叠加少量粒子点缀。把 style 设为 NONE 会完全跳过该形状。

这些特效可能使部分客户端卡顿。在 Wormholes.yml 中设置 noParticlesMode: true 可关闭线框及其粒子。传送门文字、自定义模型和独立的基岩版标记会保留。

键值默认值
styleNONE / CRYSTAL / ICOSAHEDRON / CUBECUBE
示例
style: CRYSTAL

create_wormhole_style.jpg


particleColor​

设定 style 所用粒子的颜色。线框方块不会使用精确颜色,EliteMobs 会选择颜色最接近的混凝土方块。

默认值 0 是黑色,因此值得为你创建的每一个虫洞都设置这一项。

键值默认值
particleColor0x 后跟一个十六进制代码0
示例
particleColor: 0x9f5cdd

create_wormhole_particlecolor.jpg


blindPlayer​

设定传送时是否施加 40 刻、约 2 秒的失明效果。

键值默认值
blindPlayer布尔值false
示例
blindPlayer: true

create_wormhole_blind.jpg


sizeMultiplier​

缩放 style 定义的形状,并将激活半径设为 1.5 × sizeMultiplier 格。距离包括高度,独立的 30 格玩家搜索仍会限制激活范围。请使用有限正数。此设置还影响放置高度和文字高度,但不会缩放 FreeMinecraftModels 模型。

键值默认值
sizeMultiplier倍率1
示例
sizeMultiplier: 3

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

create_wormhole_size.jpg


customModel1​

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

虫洞自定义模型需要 FreeMinecraftModels。模型必须存在,否则使用 style 线框。模型仅用于装饰,不响应点击。传送仍按距离触发。

键值默认值
customModel1字符串无
示例
customModel1: my_custom_wormhole_model

customModel2​

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

键值默认值
customModel2字符串无
示例
customModel2: my_custom_wormhole_model

虫洞配置示例

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

isEnabled: true #We enable the worm by setting this value to true
location1: my_world,1.5,11.0,1.5,108.0,5.0 #this is where the wormhole will appear in my_world
location2: my_other_world,766.5,29.0,517.5,-136.0,5.0 #this is where the wormhole will appear in my_other_world
location1Text: "&aGo to My World" #makes a nice display text above wormhole location1
location2Text: "&aGo to My Other World" #makes a nice display text above wormhole location2
permission: eliteperm.coolplayers #only players with this permission will be able to use the wormhole, both for location1 and location2
coinCost: 0 #free to use; a positive value charges elite coins, or Vault currency when Vault is enabled
style: CRYSTAL #this wormhole will be in the shape of a crystal
particleColor: 0x00ff00 #this will set the wormhole particles to green
blindPlayer: true #the wormhole teleport will blind the player for a short duration to make the transition less jarring
sizeMultiplier: 1.0 #sets how big the shape of the wormhole should be

性能问题​

虫洞特效可能使基岩版客户端卡顿。可以在 plugins/EliteMobs/Wormholes.yml 中配置:

  • reducedParticlesMode: true(默认)减少沿形状生成的点数。
  • noParticlesMode: false(默认)设为 true 时完全禁用虫洞形状及其粒子。

启用任一选项后,如果服务器的基岩版自定义实体桥接可用,基岩版玩家还可以看到一个简单标记。它使用 particleColor,最小缩放倍率为 0.5。成功加载的自定义模型会替代该标记。Java 版玩家不会看到它。

只有 30 格范围内至少一名玩家能直视传送门时,线框才会更新。视线被遮挡约 5 秒后,或附近不再有玩家时,线框会被移除。这不会禁用靠近传送门触发的传送,也不影响独立显示的自定义模型。