跳至主要內容

停用爆炸傷害

方法比較​

應根據破壞路徑選擇控制方式。原生實體或投射物爆炸使用 EntityExplodeEvent;EliteMobs 的 WorldGuard 方塊破壞旗標會清空受追蹤菁英或投射物事件的方塊清單。模擬爆炸和腳本可以直接修改方塊。再生僅修復已記錄的破壞,不是通用方塊保護。

停用方塊傷害​

使用 gamerule​

/gamerule mobGriefing false 控制原版生物破壞環境的行為,不攔截外掛或腳本直接修改方塊。

使用 WorldGuard​

安裝 EliteMobs 和 WorldGuard 後,將區域的 elitemobs-explosion-block-damage 設為 deny。它保護上述受追蹤的原生爆炸事件路徑,不攔截任意 Lua/EliteScript 方塊編輯,也不涵蓋所有模擬爆炸呼叫。請在受保護區域檢查實際使用的能力。

阻止 EliteMobs 火球破壞方塊​

內建能力是 plugins/EliteMobs/powers/ 下的 Lua 腳本。找到自訂能力後,內建能力的註冊項目會重新套用,因此加入含 isEnabled: false 的 YAML 中繼資料檔案並不能停用內建能力。請從 BOSS 定義和 EliteMobPowers.yml 的自然生成能力池中移除不需要的能力。對自訂 Lua 能力而言,同名 YAML 中繼資料可以停用其載入;參見獨立 Lua 能力。如需保留爆炸能力並保護地形,應依它使用受追蹤的原生投射物爆炸還是直接修改方塊來選擇控制方式。

設定 EliteMobs 爆炸復原​

編輯 plugins/EliteMobs/config.yml。再生預設啟用,已記錄的方塊約一分鐘後開始修復;排除項及區域再生旗標仍然生效。

當處理器接手來自菁英、受追蹤投射物或模擬爆炸的爆炸時,EliteMobs 會自行移除方塊並清空原生爆炸的方塊清單,因此只有它記錄下來的方塊會被破壞。若有外掛取消 EliteExplosionEvent,整場爆炸的方塊破壞都會被取消。

修復時每 tick 還原一個方塊,由最低處的方塊開始。站在待還原方塊內的實體會被抬到該方塊上方;若這條路徑受阻,修復會等待並在下一 tick 再試。世界卸載時,EliteMobs 會先一次還原所有待修復的方塊;若仍有方塊無法放置,就會取消卸載。正在刪除的實例地城世界會略過這個步驟。

  • doExplosionRegen: 設為 false 會停用此再生處理。原生爆炸仍可能破壞方塊而不進行修復。使用此處理的模擬或腳本爆炸會在直接移除方塊前返回。
  • doRegenerateContainers: 設為 false 可讓處理器接手的爆炸略過容器,使容器既不會被破壞,也不會被還原。當處理器被略過時,例如設定 doExplosionRegen: false 或將 elitemobs-explosion-regen 旗標設為 deny,原生爆炸仍可能破壞容器。

其他爆炸/火焰能力​

EliteMobs 提供了數個會造成爆炸或火焰的其他能力。這些是位於 plugins/EliteMobs/powers/ 資料夾中的 Lua 腳本:

終界龍能力:

  • ender_dragon_aimed_fireball.lua
  • ender_dragon_disco_fireballs.lua
  • ender_dragon_fireball_bombardment.lua
  • ender_dragon_ender_fireball_bombardment.lua

其他爆炸能力:

  • gold_explosion.lua
  • arrow_fireworks.lua
  • fireworks_barrage.lua

火焰類能力:

  • firestorm.lua
  • flame_pyre.lua
  • flamethrower.lua
  • attack_fire.lua

選擇保護規則前,請檢查每個能力的腳本。啟用再生不會阻止最初的方塊破壞;修改一個能力也不會改變其他產生類似效果的腳本。

區域性爆炸控制(需要 WorldGuard)​

安裝兩個外掛,並建立涵蓋目標區域的 WorldGuard 區域。對受追蹤的原生爆炸執行:

/region flag <region-name> elitemobs-explosion-block-damage deny

疑難排解​

檢查實際能力使用原生事件還是直接修改方塊。對於原生事件,確認區域涵蓋爆炸位置、旗標為 deny,且兩個外掛已載入。未修復時,檢查 doExplosionRegen、再生旗標及容器排除項。修復成功不能證明方塊破壞被阻止。