cloud73512 发表于 2020-2-23 07:33

简易教学:如何把故事模式打不好的评价(主要是击破数)修改到S评价

本帖最后由 cloud73512 于 2020-2-23 07:36 编辑

事先说明
個人才疏學淺

目前为止只能作到「修改已经打出来的评价」
没有办法作到「还没有打过的关卡难度直接无中生有改出难度过关评价」
也作不到「直接改出限制过关纪录让关卡上星星」

目前猜测是有一个甚至是两个区块专门记忆每个关卡的每个难度是否过关过以及是否自我限制过关上星
但我找不到{:3_93:}

(否则空虚存档就不需要全关卡每个难度手打一次了.......{:3_92:})

static/image/hrline/1.gif



简单的跟各位分享我遇到的资料储存状况


故事模式的关卡成绩排序要点如下

基本一章到五章不含支线的为一区
EX:第二章最后关之后的数据是第三章第一关

基本一到五章支线关卡为一区
EX:第二章最后一个支线关卡(关卡框框带浅绿色)后面的数据是第三章第一个支线关卡

DLC关卡一区
终极板新增关卡为一区

每一关纪录按照难度从最简单排到混沌

特殊重点:时间跟击破数是分开区块储存的



static/image/hrline/5.gif


记忆体内的击破数位元概况

UU UU 00 00 WW WW 00 00 XX XX 00 00 YY YY 00 00 ZZ ZZ 00 00.....
UU部分为某关卡最简单难度击破数
ZZ部分为某关卡混沌难度击破数
依此类推
因为击破数关卡内会卡9999
所以正常情况下00的部分是不会变动的
但是如果你编辑记忆体把00的部分改成其他数字
关卡纪录的击破数会瞬间超过65535
纪录就会变得很难看(会破框)
还请留意



static/image/hrline/5.gif




记忆体内的过关时间概况
基本排序方式跟击破数相仿
也是按照难度排列
但是需要先换算成一个数字来搜寻

EX:
我第一章第一关速攻成绩在风大修改器加速赶路协助之下
可以打出1:56:26
用文字叙述就是一分五十六秒二六的成绩
那这个成绩在记忆体里面就约是
1*3600+56*60+26=6986→4A 1B 00 00的样子

上面用了一个很重要的约字请各位要留意
因为我目前还没有找到(也有点懒得找)造成误差的原因{:3_95:}
每一关每一个难度我试着去计算记忆体位元换算出来的数据跟实际上的时间成绩
约略会有十几到几十点的误差
个人猜测可能跟战场中用过几次合体神术或者有出现CUTIN的无双有关
但没有实证

所幸我自己验算的结果通常误差不会超过256
以上面的数据来说就是4A可能会是错的
但是1B会是正确的

所以特别有需要改过关时间不想重打一次的人
可以先找到对应关卡难度的击破数
然后往下翻找类似的储存区块来作修改

我试验的结果是每次重开游戏之后
击破数区块跟时间区块离的位置不一定{:3_91:}
所以这部份只能稍微花点时间找
也是因为有这个不确定性
所以后来我就直接常驻风大的高速移动{:3_97:}

来确保时间评价可以拿S
避免事后修改太麻烦{:3_126:}


static/image/hrline/1.gif

讲到这边应该会改的人都懂了
因为击破数是稳定正确的
所以只要搜寻击破数既有的数字就可以稳稳的把已经打出来的数据改掉


但是无双系列你要破既有的纪录让数字变动
必须过关时间跟击破数两个同时刷新纪录才盖的过去
加上这等同于必须重打一次
如果为了省时间去打特简单的关卡刷纪录就会没办法准确的找到原本要改的关卡纪录
所以下面提供各位一个相对简单便利的搜寻方式

第一步
确认一下你要改的击破数数字
这边假设是256
以下简称A

第二步
确认一下你要改的击破数数字的下一个击破术数数字
这边假设是999
以下简称B

第三步
打开你的CHEATENGINE
进程选择无双游戏
搜寻的数值类型改成8 BYTES

第四步
拿出计算机
计算出A+B*4294967296的答案
以这边提供的范例就是
256+999*4294967296=4290672328960

避免有人担心计算机按错
这边提供一个已经拉好格式的EXCEL档
只要填入连续两个击破数就可以自动帮你算出该搜寻怎样的数字



第五步
把这个数字填进去搜寻
个人经验搜寻出来的结果都在10个以下
甚至有过一发命中的经验
之后只要进记忆体编辑划面简单尝试错误的修改看看
就能确定哪一个是要找的位置
进而开始修改击破数提昇评价

阿对了
进行这修改的时候别忘了改视窗模式


Casser 发表于 2020-2-23 10:40

不如弄个限制模式修改吧

3dm438 发表于 2020-2-23 18:31

。。。。。。。。。。。。。。。

14167sss 发表于 2020-3-16 13:05

6666666666666666666

zzpong 发表于 2022-1-8 17:44

刚好在修改存档,我来帮楼主解惑了~
时间之所以出现误差,是因为存储格式时间数据只占了一个字的长度,10ms的计数精度会造成时间溢出。为了解决这个问题,程序对时间数据进行了压缩,将100ms压缩成了60ms,公式为hex(round(mstime*60/100))。
比如你的例子:
1:56:26
对应计算为
hex(round((1 * 60 * 100 + 56 * 100 + 26) * 60/100)) = hex(round(6975.6)) = hex(6976) = 40 1B 00 00。
页: [1]
查看完整版本: 简易教学:如何把故事模式打不好的评价(主要是击破数)修改到S评价