光遇一键任务
声明:本文仅供学习参考,请勿用于任何游戏修改,切记切记切记
原理
目前,光遇有337个任务。我们只需修改这些任务的任务量,就能完成任务,所以,我们要知道任务列表在内存里的排列
一、任务列表排列
任务列表在内存中的排列如下:
1 2 3 4 5 6 7
| 1 -- 第一个任务 166 -- 第一个任务的任务量 2 -- 第二个任务 166 -- 第二个任务的任务量 .... 337 -- 第三百三十七个任务 166 -- 第三百三十七个任务的任务量
|
这166是我随便打的,所有号的任务量不同
附上内存图一张
我们只需要修改这337个任务的任务量,在原来的基础上增加60
比如原来是166,修改成166+60=226
以此类推,修改每一个任务量
1 2 3 4 5 6 7
| 1 -- 第一个任务 226 -- 第一个任务的任务量 2 -- 第二个任务 226 -- 第二个任务的任务量 .... 337 -- 第三百三十七个任务 226 -- 第三百三十七个任务的任务量
|
二、确认任务
接下来是确认任务,在337任务的任务量下面,从1开始递增到337,即:
1 2 3 4 5 6 7 8 9 10 11 12
| 1 -- 第一个任务 226 -- 第一个任务的任务量 2 -- 第二个任务 226 -- 第二个任务的任务量 .... 337 -- 第三百三十七个任务 226 -- 第三百三十七个任务的任务量 1 --第一个确定任务 2 3 ... 337
|
内存图
三、提交任务
在确认任务的末尾间隔三行再添加四行337,即
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| 1 -- 第一个任务 226 -- 第一个任务的任务量 2 -- 第二个任务 226 -- 第二个任务的任务量 .... 337 -- 第三百三十七个任务 226 -- 第三百三十七个任务的任务量 1 --第一个确定任务 2 3 ... 337 --确定任务的最后一个 0 0 0 --隔开三行 337 --提交任务 337 --提交任务 337 --提交任务 337 --提交任务
|
内存图
代码
以下是js代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| function addrjump(addr){ return Number(h5gg.getValue(addr,"I64")); }
var mk=Number(h5gg.getRangesList(0)[0].start);
sjdz=addrjump(mk+0x396FF98);
yjrw=addrjump(sjdz+0x2B8)+0x20;
for(i=0;i<337;i++){
a=(Number(yjrw+4)+8*i).toString();
let rwsl=Number(h5gg.getValue(a,'F32'));
h5gg.setValue(a,rwsl+60.0,'F32');
}
for(j=0;j<337;j++){
b=(Number(yjrw+0xA88)+4*j).toString();
h5gg.setValue(b,j+1,'I32');
}
h5gg.setValue(yjrw+0xFD8,337,'I32'); h5gg.setValue(yjrw+0xFD8+0x4,337,'I32'); h5gg.setValue(yjrw+0xFD8+0x8,337,'I32'); h5gg.setValue(yjrw+0xFD8+0xC,337,'I32'); }
|
0xFD8(十进制4056)就是第一个任务,加上4056偏移,这个4056从何而来?
首先337个任务,加上337个对应的任务量,再加上337个确定任务,再加上间隔三行(需要乘以4就是偏移数量,等于
337+337+337=1011,这个1011是行数,需要乘以4才是偏移量,也就是1011x4=4044,算上间隔的三行,就是4044+3x4=4056
那么为什么要再+0x4,0x8,0xC?
也就是4056,+上0x4的十进制,即为4056+4=4060,以此类推,每次增加4
到此
一键任务就完成了,再次提示,本文教学仅供学习参考和代码共享,请勿转载本文,请勿用于游戏内存修改,切记切记切记
调侃
看了眼我写的,我自己都看不懂,真是滑天下之大稽,各位大佬看个乐即可