【新手向】使用CE脚本修改FGO属性
本帖最后由 九条可怜 于 2023-6-24 00:58 编辑本帖基于论坛里的几位大佬的修改教程进行整合:@风轻然雨朦胧@loneprison
先附上两位大佬的帖子
用CE修改FGO属性
用CE脚本进行FGO一键修改局内属性
lua文件在文章末尾放出
https://static.52pojie.cn/static/image/hrline/1.gif
准备工作:设置CE
找到后缀为Headless.exe的进程,将进程名填入脚本中(或者直接在ce中选中进程打开,就不用在脚本中填写进程名)
脚本中修改从者对应的等级lv值及攻击力atk值,点击运行
演示例:
https://static.52pojie.cn/static/image/hrline/4.gif
原理解释:
通过群组扫描得到对应从者的等级属性地址,根据得到的地址通过偏移值定位其他属性并修改
举例几个常用偏移值(以等级为基址)
未来若是因版本更新导致各属性间地址的偏移量发生改变,也可通过该方法自行修改偏移量
+0x4 --攻击力
+0x8 --好友标识(0为好友,可使非好友使用宝具)
+0x30 --释放宝具最低需求np
+0x110 --宝具等级
+0x14 --最大血量
+0x10 --当前血量
https://static.52pojie.cn/static/image/hrline/2.gif
lua文件下载:
https://amiya.lanzoup.com/iaYPK0zvvp2f 密码:2333
注意:该脚本无法在战斗后锁定属性值,每次进战斗都需要运行一次修改
本帖最后由 youcis 于 2024-8-7 21:23 编辑
修改了一下,mumu模拟器,测试后扫描速度快很多,直接改3个角色的攻击力为50万(atk = 改成需要的攻击力),分别替换string.format里的数值就行,虽然不懂lua,但看代码里是取得唯一结果,有时候游戏会卡出几个同样的数组,修改了也没用,还必须全都改了防止下次扫描再次出现,不知道怎么设置如果出现多个结果全都一起修改。
发现个问题,有时候CE会很蠢的扫不出其中一个角色,然后因为其中一个没有数值导致整段不能再运行,于是后面加了简单的判断语句防止CE抽风,但有时候还是会出现手动扫描明明能扫出来的角色,脚本运行N次却都扫不出来,不知道怎么解决。
---------------
找了半天才找到Scan.firstScan括号里的含义,中文网都没人说的,还是放到git上CE的main.lua里才有,修改了下扫描范围、舍入默认、区块对齐4、关掉16进制输入,因为手动扫描从来没出过问题,所以都按照默认手动扫描的设置,应该没问题了。感觉研究这些东西我都快学会lua了。
-----
增加了改血量和血量上限和无NP宝具 ,应对某些很恶心的高难图。用了很久没问题,就是每次进图都得改一次,速度不定,有时候卡2分钟,有时候几秒就好。因为脚本窗口运行后是未响应状态,可以运行后多点击此直到窗口卡白,拖一边,因为改好后窗口就恢复正常,能知道什么时候改好。local atk = 后改自定义攻击,local hp = 后改自定义血量。加上local只是可能没全局数据那么卡,虽然感觉没啥用。
openProcess ("MuMuVMMHeadless.exe")
local atk = 500000
local np = 0
local hp = 500000
local search_num = string.format("4:等级 4:攻击")
local Scan = createMemScan();
Scan.OnlyOneResult=true;
Scan.firstScan(soExactValue, vtGrouped, rtRounded, search_num, "", 0, 0x00007fffffffffff, "", fsmAligned, "4", false, false, false, false);
Scan.waitTillDone();
a=Scan.getOnlyResult()
local search_num = string.format("4:等级 4:攻击")
local Scan = createMemScan();
Scan.OnlyOneResult=true;
Scan.firstScan(soExactValue, vtGrouped, rtRounded, search_num, "", 0, 0x00007fffffffffff, "", fsmAligned, "4", false, false, false, false);
Scan.waitTillDone();
b=Scan.getOnlyResult()
local search_num = string.format("4:等级 4:攻击")
local Scan = createMemScan();
Scan.OnlyOneResult=true;
Scan.firstScan(soExactValue, vtGrouped, rtRounded, search_num, "", 0, 0x00007fffffffffff, "", fsmAligned, "4", false, false, false, false);
Scan.waitTillDone();
c=Scan.getOnlyResult()
if a == nil
then
else
writeInteger(a+0x4, atk)
writeInteger(a+0x30, np)
writeInteger(a+0x10, hp)
writeInteger(a+0x14, hp)
end
if b == nil
then
else
writeInteger(b+0x4, atk)
writeInteger(b+0x30, np)
writeInteger(b+0x10, hp)
writeInteger(b+0x14, hp)
end
if c == nil
then
else
writeInteger(c+0x4, atk)
writeInteger(c+0x30, np)
writeInteger(c+0x10, hp)
writeInteger(c+0x14, hp)
end
print("修改完成")
sigma066 发表于 2023-6-28 09:09
哪一种算世界boss
就是抢柱子那种有世界血条 谢谢大佬,每次手动改血量和攻击力的麻烦死了,有了这个lua就方便很多了,感谢感谢 谢谢大佬 不过现在都是用端了 比手动修改方便的多,谢谢大佬!! 网游也行? 这是单机游戏吗 以前用CE改地下城人物面板数据,刷图贼快 好家伙,我点进来的时候还好奇是不是我想的那个FGO,结果一看,月厨+1 感谢分享。 第七史诗是不是也可以这样做