作者softpak (喔喔喔)
看板Minecraft
标题[分享] 清除伺服器因BUG所产生的隐形实体
时间Sat Apr 22 00:58:17 2017
相信很多人应该都曾经被这件事所困扰着
不外乎是整个洗白或者那个区块的档案删掉
但在经过我3天的研究之後
有了突破性的解答
本来这篇我有发在巴哈
不过4个月之後文章就不见了
还好还有快取可以开网页
好了
=================以下正文(做了些许修改)=====================
这个问题可能很多开服的玩家都会遇到,
而这个问题你无论使用什麽TAG或是把空间填充
都无法消除这些隐形的实体(invisible entity),
於是我大概研究了一下地图存档的机制,
发现所有的资料都是以CHUNK为单位储存在各自的档案里,
上面是句废话,
不过我觉得我好像花了太多时间去理解这件事情了。
通常有几个方法可以解决这个问题:
1. 地图整个删除重新来过
2. 该区块档案删除重新来过
但是玩家的心血通常就这样子没了,
所以我发现透过WE(WorldEdit)这个插件简单的操作,
可以将损害降至最低,
首先需要将所有的告示牌、箱子、指令方块这些东西备份或暂时搬到别处,
站在该CHUNK内并依序执行以下指令:
//chunk (选取该区块)
//copy (复制该区块 此举可有可无)
//regen (重新生成该区块)
//undo (复原该区块)
这样那个CHUNK内所有无法删除的隐形实体都会消失,
注意该备份或要移动物品要先进行备份或移动,
我是比较推荐移动的方式,
较为保险。
至於为什麽会产生这些隐形实体,
我只能观察到这些ENTITY并没有完整的ID,
但其他资料都是完整的,
只能说游戏内部可能需要实作复原或者删除这些实体的办法,
避免产生无法选取的实体。
希望对大家有帮助
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.127.231.87
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Minecraft/M.1492793900.A.536.html
1F:推 haidai: 6666666 04/22 08:11
2F:推 bespace: 直接用TNT呢XD? 04/22 13:31
3F:推 cs8425: 用指令如何? /kill @e[r=32] 04/22 13:55
4F:推 tonylo2ooo: tnt不一定炸得死,有时候是一些什麽原地坐下插件 04/22 16:58
5F:→ tonylo2ooo: 当时坐下就用系统写一个无敌的矿车,直到使用者站起来 04/22 16:58
6F:→ tonylo2ooo: 才再用指令清掉,但是判定没写好或是伺服器整个大断线 04/22 16:58
7F:→ tonylo2ooo: 其实可以写一些简单的插件,进行entity purge 04/22 16:59
8F:→ tonylo2ooo: 例如清除所有无法被伤害的entity之类了 04/22 16:59
9F:→ tonylo2ooo: 我之前的restoreNature插件把回填方块改成上面的涵式 04/22 17:00
10F:→ tonylo2ooo: 应该就可以了 剩下purge的排程就照本来插件来弄 04/22 17:00
11F:→ softpak: kill杀不死 04/22 17:27
12F:推 mamaya3: 没遇过这状况 但opis的purge world不知道能不能用 04/22 17:39
13F:→ BUHUDAIN: 因为UUID重复造成系统无法处理,所以杀了第一只 04/24 22:54
14F:→ BUHUDAIN: 再来就喷找不到实体,但是实体依旧在,而且重新载入 04/24 22:55
15F:→ BUHUDAIN: 该区块那个实体又回来了 04/24 22:55
16F:→ BUHUDAIN: 我有试过一只一只抓出来改UUID 不过好像没有用.... 04/24 22:57
17F:→ softpak: 那个好像是初期症状 ID还是完整的 我们之後遇到的都是 04/25 00:24
18F:→ softpak: ID不完整的实体 04/25 00:24
19F:→ softpak: 所以我想regen chunk会有用应该就是把实体都给清除了 04/25 00:24