1.新新魔塔存档文件解析

既然找到了存档文件那么直接尝试用notepad++打开试试。

sol文件

并不用一看到乱码就头大,仔细观察以后我们可以看到savefloor1f0的字样,猜测一下就是保存了0层的地图的变量了,看看后面的字符串:89$89$89。。。这么多符号,可以猜出符号是为了分割数字而产生的分割符号,那么写个python程序处理一下str字符串,看看能不能找到什么规律?

# saveofloor1f5  ofloor代表隐藏层,魔塔
# savebfloor1f12 bfloor代表地下层
# savefloor1f16  floor代表地上层


def proc_text(text):
    lentext = len(text)
    if lentext == 2:
        new_text = " " + text
    elif lentext == 1:
        new_text = " " + text + " "
    else:
        new_text = text
    return new_text


new_list = sol_str_b15f.split("$")
print(len(new_list))
new_new_list = enumerate(new_list, 1)
temp_list = []
v = 0

for index, text in new_new_list:
    text = proc_text(text)
    if index % 11 == 0:
        v += 1
        temp_list.append(text)
        print(temp_list)
        temp_list = []
    else:
        temp_list.append(text)
        v += 1
print(str(v))

处理后试着将输出信息做成图片并且PS处理下,和0层的地图图片叠一起看看。不过我手头暂时没有0层的图片了,那就用1层的字符串和图片来对比看一下:


1F

很明显的能看出89数字代表了普通墙体,32、33代表了红绿史莱姆,等等一系列地图元素都是由数字存储的,那么探究明白存储机制过后我们就可以通过程序来修改存档了。只要修改数字,就等于修改了地图元素。
甚至理论上我们可以造自己的塔,不过RM系列已经能非常轻松的造塔了,倒是没有太大必要这样做。
那么我们来写一个程序来处理修改字符串。下一节涉及到PySide6(GUI)的高级应用,想学习的小伙伴一定要看哦。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容