安装了1.16.5的旷野之塔(Towers Of The Wild)mod开服并已游玩一段时间后发现该mod有严重问题,想删除。但在mc百科上已经有人表示该mod直接删除会导致存档中已经生成该结构体的区块引发崩溃。
以下是百科的原话。
之前玩低版本从未碰到过删mod还能持续性毁档的问题,顶多消失方块。(可能低版本的地形生成是写入客户端的,高版本开始变成写入存档导致的)
并不了解1.16的mod机制,我推测是高版本改了存档内的生成机制导致删除mod后仍一直尝试生成该mod结构体导致的。
有没有什么办法,能够通过修改存档内某个文件来修复这个问题?安全的移除这个mod?
(比如修改存档内负责生成结构体的文件之类的)
以下是百科的原话。
警告:使用前三思
本mod有个特点:在不同群系的塔基座部分会有不同装饰(雪原结冰之类的,还原游戏)
但是这个装饰的生成机制有问题,所以在生成塔/再次加载塔的时候有概率(不高)崩溃
与此同时,此mod会添加大量的结构生成(疯狂尝试生成塔),所以删除mod之后会在日志里疯狂报错“缺失对应结构”,导致StackOverFlow。
只要带着这个模组进了世界,那就和毁档差不多了。。。一旦你删了这个mod,再去那些之前没去过的区域,只要是原本会生成塔的地方,去了游戏就会崩溃。
并不了解1.16的mod机制,我推测是高版本改了存档内的生成机制导致删除mod后仍一直尝试生成该mod结构体导致的。
有没有什么办法,能够通过修改存档内某个文件来修复这个问题?安全的移除这个mod?
(比如修改存档内负责生成结构体的文件之类的)
用纯原版的 1.16.5 客户端进入一遍这个存档,注意在这之前先用 WorldEdit 将你所需要的建筑导出为 .schematic 文件,便于在存档重置后再次导入。
名副其实 发表于 2023-10-12 09:42
用纯原版的 1.16.5 客户端进入一遍这个存档,注意在这之前先用 WorldEdit 将你所需要的建筑导出为 .schemat ...
可以试试,但是有疑问。因为我现在的客户端有很多其他mod,重新生成不会造成存档内的方块/物品ID混乱吗?
1.7.10时代我研究过存档结构,发现存档的ID表在level.dat这个文件内。动mod重新生成存档后,在导入原来存档的地形文件(region/DIM1)等,都会因为新存档的level.dat内ID表变动导致地图被严重毁坏,方块ID错乱。
你的level.dat发出来看看
2403 发表于 2023-10-12 10:02
可以试试,但是有疑问。因为我现在的客户端有很多其他mod,重新生成不会造成存档内的方块/物品ID混乱吗? ...
1.13 以后的扁平化更新你是一个字都没看进去。
名副其实 发表于 2023-10-12 11:16
1.13 以后的扁平化更新你是一个字都没看进去。
我也是最近才接触高版本,跨度很大,不了解很多东西。
换个问法,1.16的结构体的设置在存档的哪个文件里。
你说的重新生成地图方法我刚刚测试是可行的,但是出现新的问题:并不止需要移动地形数据那么简单,旧存档许多mod数据不包含在地形文件里。
目前完美的解决方法就是找到存档文件中哪个文件是负责世界生成时生成结构体的,我去把那个文件修改或替换掉才行。
2403 发表于 2023-10-12 11:24
我也是最近才接触高版本,跨度很大,不了解很多东西。
换个问法,1.16的结构体的设置在存档的哪个文件里 ...
生成结构的机制一般包含在模组本身,除非哪个模组想不开把它改成了数据包。
名副其实 发表于 2023-10-12 11:25
生成结构的机制一般包含在模组本身,除非哪个模组想不开把它改成了数据包。 ...
模组已经删除了,但是存档依然在不断尝试生成该mod结构体
服务器后台疯狂报错Unknown structure start: towers_of_the_wild:derelict_tower
很显然这个mod在创建存档时把什么东西写入存档的生成设置里了,我目前尝试替换掉了无mod重建存档的level.dat,没有用,说明结构体设置写在存档的其他地方。您知道还要哪边可能会被写入吗?datapacks文件夹里也是空的。
2403 发表于 2023-10-12 11:29
模组已经删除了,但是存档依然在不断尝试生成该mod结构体
服务器后台疯狂报错Unknown structure start: t ...
别的不知道。你可以试试看用 everything 搜搜看这些建筑的名称。
以及我忽然想到,用纯原版客户端转化客户端以后,你可以使用 WorldEdit 的 //regen 命令通过按种子重生成区域,使区域内重新出现模组方块。