既然找到了存档文件那么直接尝试用notepad++打开试试。
sol文件
并不用一看到乱码就头大,仔细观察以后我们可以看到
savefloor1f0
的字样,猜测一下就是保存了0层的地图的变量了,看看后面的字符串:89$89$89
。。。这么多# 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)的高级应用,想学习的小伙伴一定要看哦。