[分享] 清除伺服器因BUG所產生的隱形實體

作者: softpak (喔喔喔)   2017-04-22 00:58:17
相信很多人應該都曾經被這件事所困擾著
不外乎是整個洗白或者那個區塊的檔案刪掉
但在經過我3天的研究之後
有了突破性的解答
本來這篇我有發在巴哈
不過4個月之後文章就不見了
還好還有快取可以開網頁
好了
=================以下正文(做了些許修改)=====================
這個問題可能很多開服的玩家都會遇到,
而這個問題你無論使用什麼TAG或是把空間填充
都無法消除這些隱形的實體(invisible entity),
於是我大概研究了一下地圖存檔的機制,
發現所有的資料都是以CHUNK為單位儲存在各自的檔案裡,
上面是句廢話,
不過我覺得我好像花了太多時間去理解這件事情了。
通常有幾個方法可以解決這個問題:
1. 地圖整個刪除重新來過
2. 該區塊檔案刪除重新來過
但是玩家的心血通常就這樣子沒了,
所以我發現透過WE(WorldEdit)這個插件簡單的操作,
可以將損害降至最低,
首先需要將所有的告示牌、箱子、指令方塊這些東西備份或暫時搬到別處,
站在該CHUNK內並依序執行以下指令:
//chunk (選取該區塊)
//copy (複製該區塊 此舉可有可無)
//regen (重新生成該區塊)
//undo (復原該區塊)
這樣那個CHUNK內所有無法刪除的隱形實體都會消失,
注意該備份或要移動物品要先進行備份或移動,
我是比較推薦移動的方式,
較為保險。
至於為什麼會產生這些隱形實體,
我只能觀察到這些ENTITY並沒有完整的ID,
但其他資料都是完整的,
只能說遊戲內部可能需要實作復原或者刪除這些實體的辦法,
避免產生無法選取的實體。
希望對大家有幫助
作者: haidai (haidai)   2017-04-22 08:11:00
6666666
作者: bespace (香草._.)   2017-04-22 13:31:00
直接用TNT呢XD?
作者: cs8425 (cs)   2017-04-22 13:55:00
用指令如何? /kill @e[r=32]
作者: tonylo2ooo (Logo)   2017-04-22 16:58:00
tnt不一定炸得死,有時候是一些什麼原地坐下插件當時坐下就用系統寫一個無敵的礦車,直到使用者站起來才再用指令清掉,但是判定沒寫好或是伺服器整個大斷線其實可以寫一些簡單的插件,進行entity purge例如清除所有無法被傷害的entity之類了我之前的restoreNature插件把回填方塊改成上面的涵式應該就可以了 剩下purge的排程就照本來插件來弄
作者: softpak (喔喔喔)   2017-04-22 17:27:00
kill殺不死
作者: mamaya3 (mamaya)   2017-04-22 17:39:00
沒遇過這狀況 但opis的purge world不知道能不能用
作者: BUHUDAIN (任性驕傲的貓)   2017-04-24 22:54:00
因為UUID重複造成系統無法處理,所以殺了第一隻再來就噴找不到實體,但是實體依舊在,而且重新載入該區塊那個實體又回來了我有試過一隻一隻抓出來改UUID 不過好像沒有用....
作者: softpak (喔喔喔)   2017-04-25 00:24:00
那個好像是初期症狀 ID還是完整的 我們之後遇到的都是ID不完整的實體所以我想regen chunk會有用應該就是把實體都給清除了

Links booklink

Contact Us: admin [ a t ] ucptt.com