您尚未登录,立即登录享受更好的浏览体验!
您需要 登录 才可以下载或查看,没有帐号?注册(register)
x
本帖最后由 10935336 于 2020-12-11 19:05 编辑
在模组服中,腐竹可能会遇到以下问题:
某个玩家无法进入服务器/玩家进入某个范围服务器就崩溃/玩家拿出某个物品服务器就崩溃
这些问题一直是许多腐竹的心头大患,今天我就来教大家缓解此问题。
解决这些问题的通常做法是回档,但是作为一个大型服务器,回档会导致很多问题。
更高级的办法是查看崩溃报告,检查该模组是否开源,报告问题,或是直接尝试修复。
今天我们要教的是一种简单粗暴的方式,直接删除地图文件中出问题的物品或方块。
打开 Forge 的自动移除错误功能
1.打开 Forge 配置文件
这个文件在 服务端/config/forge.cfg
1.15等高版本Forge配置文件在 服务端/存档文件夹/serverconfig/forge-server.toml
找到这两行
B:removeErroringEntities=false
B:removeErroringTileEntities=false
2.把 false 改成 true
B:removeErroringEntities=true
B:removeErroringTileEntities=true
这样 Forge 在遇到 Entities实体 或者 TileEntities 错误时能自动的把错误的物品移除,大大减少了蹦服几率。
这样做的代价是可能会导致某些物品凭空消失,不过我目前没遇到过。
但是这样也不是能100%解决的。
区块文件和玩家文件的位置
首先我们打开存档文件夹,通常能看到一下几个文件夹
x9XjQvuZ1Dig8tc3-image-1593773456602.png (31.38 KB, 下载次数: 7)
2020-7-3 19:56 上传
region 文件夹内储存的是主世界的区块文件,其他世界的区块文件存在对应世界编号文件夹里面的 region 文件夹
在控制台输入 forge tps 能看到对应编号的世界是哪一个
9QPerg48RmnqkJQ2-image-1593773768830.png (8.94 KB, 下载次数: 6)
2020-7-3 19:56 上传
playerdata 文件夹内储存的是玩家数据,包括背包,所在位置等。
当玩家使用某物品蹦服时
我们举一个栗子
某玩家报告说自己拿出某种物品时,客户端/服务端崩掉了,拿的是什么已经不记得了。
1.询问玩家的ID是多少
例如 10935336 的 UUID 是 2b09d9e5-0f4c-4949-b476-9d50acbe3b98
3.如果是盗版服务器,把 OfflinePlayer:玩家ID 进行 32 位 MD5 加密得到的就是玩家UUID
例如 OfflinePlayer:10935336 进行 32 位 MD5 加密得到的是AC4149B4A41DD357DA160254C5AB4314
对应的 UUID 是 ac4149b4-a41d-3357-9a16-0254c5ab4314
cBVm4zYr5IAzzSuc-image-1593774784857.png (6.74 KB, 下载次数: 6)
2020-7-3 19:57 上传
5.到 存档文件夹里面的 playerdata 内找到玩家对应的 UUID.dat 文件
6.使用 NBTexplorer 打开
JfP7ZCCpU4SvKkyo-image-1593775922958.png (10.25 KB, 下载次数: 9)
2020-7-3 19:57 上传
Inventory 里面就是玩家背包内的物品,点击+号就能看到物品名称等详细信息
7.查看崩溃报告找到是什么东西蹦服的,或是直接问玩家,再不济就全部删除吧
比如说是这本任务书导致的蹦服,我们选中这个 4 entries 按下键盘上的 Del 删除按键,然后按上面的保存按钮保存。
dID2W6Jz5N67WItb-image-1593776111194.png (4.12 KB, 下载次数: 5)
2020-7-3 19:57 上传
然后把修改后的文件放回服务端的存档文件夹原位,重启服务器。
Duang 玩家背包里的任务书不见了,崩溃也不复存在。
当某个区块导致蹦服时
我们举一个栗子
某玩家报告说自己在地上放了一个方块,然后自己客户端崩了。而且不记得坐标。
1.询问玩家的ID是多少,并问清楚在哪一个世界崩溃的
例如 10935336 的 UUID 是 2b09d9e5-0f4c-4949-b476-9d50acbe3b98
3.如果是盗版服务器,把 OfflinePlayer:玩家ID 进行 32 位 MD5 加密得到的就是玩家UUID
例如 OfflinePlayer:10935336 进行 32 位 MD5 加密得到的是AC4149B4A41DD357DA160254C5AB4314
对应的 UUID 是 ac4149b4-a41d-3357-9a16-0254c5ab4314
5.到 存档文件夹里面的 playerdata 内找到玩家对应的 UUID.dat 文件
6.使用 NBTexplorer 打开
W5SrFlRxXm8waYRQ-image-1593776460005.png (8.82 KB, 下载次数: 7)
2020-7-3 19:58 上传
Pos 里面就是玩家所在的坐标,图中的坐标就是 X:-208 Z:-777 Y:141 注意正负号
6.使用 Dinnerbone 的坐标工具来得到所在的区块文件。
在第一栏输入玩家所在的坐标,注意正负号
然后第三栏就会出现,对应的区块文件的名字
tQJ2wj3iR2zHbyAv-image-1593776781348.png (34.85 KB, 下载次数: 9)
2020-7-3 19:58 上传
如图所示,我们得到的区块文件是 r.-1.-2.mca
7.打开对应世界对应维度的 reign 文件夹,找到 r.-1.-2.mca ,使用 NBTexplorer 打开
8.查看 Dinnerbone 的坐标工具的第二行,我这里是 X:-13 Z:-49 ,Y不需要。
Wx3xNnbJxcTifX7q-image-1593776881101.png (48.03 KB, 下载次数: 9)
2020-7-3 19:58 上传
我们选中这个 Chunk 按下键盘上的 Del 删除按键,然后按上面的保存按钮保存。
然后把修改后的文件放回服务端的存档文件夹原位,重启服务器。
Duang 这个区块回到了最开始的状态,崩溃也不复存在。