九条可怜 发表于 2023-6-24 00:44

【新手向】使用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



注意:该脚本无法在战斗后锁定属性值,每次进战斗都需要运行一次修改

纸上谈兵丶无异 发表于 2023-6-30 04:46

sigma066 发表于 2023-6-28 09:09
哪一种算世界boss

就是抢柱子那种有世界血条

youcis 发表于 2023-12-13 02:53

本帖最后由 youcis 于 2023-12-14 19:27 编辑

修改了一下,mumu模拟器,测试后扫描速度快很多,直接改3个角色的攻击力为50万(atk = 改成需要的攻击力),分别替换string.format里的数值就行,虽然不懂lua,但看代码里是取得唯一结果,有时候游戏会卡出几个同样的数组,修改了也没用,还必须全都改了防止下次扫描再次出现,不知道怎么设置如果出现多个结果全都一起修改。
发现个问题,有时候CE会很蠢的扫不出其中一个角色,然后因为其中一个没有数值导致整段不能再运行,于是后面加了简单的判断语句防止CE抽风,但有时候还是会出现手动扫描明明能扫出来的角色,脚本运行N次却都扫不出来,不知道怎么解决。
---------------

找了半天才找到Scan.firstScan括号里的含义,中文网都没人说的,还是放到git上CE的main.lua里才有,修改了下扫描范围、舍入默认、区块对齐4、关掉16进制输入,因为手动扫描从来没出过问题,所以都按照默认手动扫描的设置,应该没问题了。感觉研究这些东西我都快学会lua了。

openProcess ("MuMuVMMHeadless.exe")

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()

atk = 500000

if a == nil
then

else
    writeInteger(a+0x4, atk)
end


if b == nil
then

else
    writeInteger(b+0x4, atk)
end


if c == nil
then

else
    writeInteger(c+0x4, atk)
end
print("修改完成")


然后扩大搜索范围后应该不用判断nil的那些了,后面应该可以直接改成,因为有一个角色搜不到就会出错,也能防止改好后多点了一次让CE卡住太久。
writeInteger(a+0x4, atk)
writeInteger(b+0x4, atk)
writeInteger(c+0x4, atk)
print("修改完成")


其他还能在abc变量前,比如a=Scan.getOnlyResult()前加local 变成本地变量,最后也能修改,虽然不知道有什么影响,也不知道代码运行流程什么样的。

赴雅 发表于 2023-6-24 02:19

谢谢大佬,每次手动改血量和攻击力的麻烦死了,有了这个lua就方便很多了,感谢感谢

纸上谈兵丶无异 发表于 2023-6-24 02:26

谢谢大佬 不过现在都是用端了

Gelaozidi 发表于 2023-6-24 02:43

比手动修改方便的多,谢谢大佬!!

fldslkxs 发表于 2023-6-24 07:31

网游也行?

等到烟火也清凉 发表于 2023-6-24 08:47

这是单机游戏吗

环境保护 发表于 2023-6-24 09:34

以前用CE改地下城人物面板数据,刷图贼快

YeeYue 发表于 2023-6-24 12:42

好家伙,我点进来的时候还好奇是不是我想的那个FGO,结果一看,月厨+1

wuai4444 发表于 2023-6-24 19:23

感谢分享。

我的小鱼干 发表于 2023-6-24 20:31

第七史诗是不是也可以这样做
页: [1] 2 3 4 5 6
查看完整版本: 【新手向】使用CE脚本修改FGO属性