跳至主要內容

建立蟲洞

webapp_banner.jpg

什麼是蟲洞?

蟲洞是一種高效率的傳送門對傳送門傳送系統。傳送門會以視覺效果標示出來。

蟲洞機制

蟲洞可以做到以下事項:

  • 穿過一個傳送門抵達目的地傳送門,再從目的地傳送門回到第一個傳送門。
  • 在玩家穿過時播放音效
  • 在玩家穿過時暫時使其失明,以平順過渡
  • 將玩家鎖定在傳送之外,直到至少經過 5 秒他們已退出目的地傳送門的啟動半徑為止,以避免陷入傳送迴圈
  • 在玩家傳送時自動停用飛行模式
  • 播放精緻的視覺效果
  • 要求權限才能使用蟲洞
  • 要求使用貨幣才能使用蟲洞
  • 在目的地傳送門無法使用時通知玩家與管理員

玩家每 5 tick(四分之一秒)才會被對蟲洞檢查一次,且只有在他們位於蟲洞 30 格範圍內時才會檢查。

建立蟲洞

蟲洞以設定檔的形式加入到 wormholes 資料夾中。你可以建立子資料夾,而且如果你要為特定地城新增蟲洞,建議這麼做,格式為 ` ~/plugins/EliteMobs/wormholes/dungeonName/dungeonName_identifier.yml`。

在遊戲中放置蟲洞

你不必手寫座標,可以站在你希望傳送門所在的位置並執行:

/em place wormhole <filename> <1/2>

1 設定 location12 設定 location2。此指令需要 elitemobs.place.admin 權限、必須由玩家執行,並會把新座標直接寫入該蟲洞的設定檔。傳送門會被錨定在你站立處上方一格(乘以 sizeMultiplier)的位置,因此經由它抵達的玩家會落在你原本站的那一格上。

抵達方向

location1location2 中的 Yaw 與 Pitch(座標中的最後兩個數字)會設定玩家抵達蟲洞該一側時所面向的方向。讓我們看看這個範例:

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

由於 Yaw 設定為 180,玩家抵達時會面向北方。Pitch 遵循 Minecraft 的慣例,正值代表往看、負值代表往上看,因此 Pitch 為 20 表示玩家抵達時會稍微向下看。

請注意蟲洞並不會把玩家推往任何地方;抵達位置就只是另一側的座標,包含其 yaw 與 pitch。

蟲洞設定

以下是一個有效的蟲洞設定範例:

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

isEnabled

設定蟲洞是否啟用。

KeyValuesDefault
isEnabled布林值true
範例
isEnabled: true

location1

指定蟲洞的第一個位置。

KeyValuesDefault
location1字串
範例
location1: world_one,50,100,50,0,0

location2

指定蟲洞的第二個位置。

KeyValuesDefault
location2字串
範例
location2: world_two,100,33,100,0,0

location1Text

設定第一個位置的顯示文字。

KeyValuesDefault
location1Text字串
範例
location1Text: Awesome Wormhole In World One

create_wormhole_location1text.jpg


location2Text

設定第二個位置的顯示文字。

KeyValuesDefault
location2Text字串
範例
location2Text: Awesome Wormhole In World Two

create_wormhole_location2text.jpg


permission

設定使用蟲洞所需的權限。

KeyValuesDefault
permission字串
範例
permission: elitemobs.mypermission

coinCost

設定使用蟲洞的費用,以菁英金幣計。

KeyValuesDefault
coinCost雙精度浮點數0
範例
coinCost: 2.5

style

設定蟲洞的視覺形狀。

此形狀是以方塊顯示實體繪製成旋轉的線框,並每 5 tick 在其上加上少量粒子點綴。把 style 設為 NONE 會完全略過該形狀。

組成這些形狀的效果在某些用戶端中可能會造成延遲。若要關閉它們,請進入 Wormholes.yml 並將 noParticlesMode 設定為 true

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

create_wormhole_style.jpg


particleColor

設定 style 設定中所使用的粒子顏色。線框方塊並不會使用完全相同的顏色;EliteMobs 會挑選顏色最接近你所設定值的混凝土方塊。

預設值 0 是黑色,因此值得為你製作的每個蟲洞都設定此項。

KeyValuesDefault
particleColor0x 後接一個十六進位碼0
範例
particleColor: 0x9f5cdd

create_wormhole_particlecolor.jpg


blindPlayer

設定傳送門是否會使玩家失明,以達成更平順的傳送。

KeyValuesDefault
blindPlayer布林值false
範例
blindPlayer: true

create_wormhole_blind.jpg


sizeMultiplier

倍增傳送門的大小以及 style 所設定的形狀。sizeMultiplier 也會影響觸發半徑 —— 玩家必須位於蟲洞的 1.5 × sizeMultiplier 格範圍內才能觸發傳送。

KeyValuesDefault
sizeMultiplier倍率1
範例
sizeMultiplier: 3

請記住,在套用大小倍率後,你必須調整蟲洞的 Y 座標。

create_wormhole_size.jpg


customModel1

設定一個自訂模型,用於第一個位置的蟲洞顯示。使用模型識別字串。這會覆寫位置 1 在 style 中所定義的形狀。

蟲洞上的自訂模型只在搭配 FreeMinecraftModels 時才有效;該模型必須存在,否則蟲洞會退回使用 style 線框。模型純粹是裝飾性的,無法被點擊——傳送仍是基於鄰近度判定。

KeyValuesDefault
customModel1字串
範例
customModel1: my_custom_wormhole_model

customModel2

設定一個自訂模型,用於第二個位置的蟲洞顯示。使用模型識別字串。這會覆寫位置 2 在 style 中所定義的形狀。與 customModel1 相同的 FreeMinecraftModels 需求同樣適用。

KeyValuesDefault
customModel2字串
範例
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 格範圍內的玩家算繪,而且只有在這些玩家中至少有一位能看見該傳送門時才會算繪。