吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 47686|回复: 260
收起左侧

[Android 原创] 用CE脚本进行FGO一键修改局内属性

    [复制链接]
loneprison 发表于 2019-7-24 23:04
本帖最后由 loneprison 于 2020-8-10 16:57 编辑

最开始,首先,附上最初链接,这个贴吧帖子作者也是我
https://tieba.baidu.com/p/6167397059?pn=2


前言,给点彩蛋
给你们看看最初版本的代码,这段代码的雏形,修改自一个叫梦游电玩的网站的帖子,经过我修改过之后,因为“反正能用”就一直没管过优化过
IZ]$BC_PQK]]K@]U_8}W~BU.png X8`1X4]K9PP11RPV6Y~5C)0.png


因为前几天吾爱开放注册才弄到的账号来着。
今天突然想到,因此便搜了一下FGO相关的帖子,于是便找到了这个
https://www.52pojie.cn/thread-985807-1-1.html

这个帖子的回答引申出的方案,解决了我所遇到的最后的一个难题:锁定np为100%需要每次固定,打完一局后解锁,极其麻烦

画就不多说了,直接上成品图和附件吧
NQUE[Q5F4RPO$YORQ_@DVBD.png
FGO (脚本)20-4-18更新.txt (1.7 KB, 下载次数: 616)   --下方有网盘链接,非吾爱会员可去网盘下载
--这个txt里的文字是用来复制粘贴到CE的CT表里的(快捷键Ctrl+Art+L)。。。有个同学搞了半天没搞好结果发现他是直接改后戳导入,希望不会再有类似错误了。。
--于19/7/25 凌晨一点前下载了的6位同学注意下,我自己用了之后稍微另外添加两行关键代码,分别是自动找进程,解决报错的和显示完成的,虽说没用也不影响运行就是了
这三行分别是
openProcess ("NoxVMHandle.exe")           --添加在开头,默认夜神模拟器,如果你是雷电mumu模拟器的话,进程名更改成对应的,或者选择注释掉这行然后手动选择进程

if a==nil then print("未能搜寻到值,请确认第一二行填写是否正确或稍后再试") return end        --添加在原代码的第14行下方,“while”代码上方,如果不添加的话就是报错英文说“a”是空值不可运算

print(“修改完成”)     --结尾处添加以显示修改成功了,不过其实这三行都不影响实际运行就是了


--19/7/28 更新,加了一行代码和一些文字注释
之前下载的同学可以在第20行左右,writeInteger代码处加下面这句即可

writeInteger(a-n+0x4,0)            --此项可使路人助战也可使用宝具





FGO每次进入战斗以后,运行一下,弹出修改完成的窗口就算完成了,不过打下一局依然需要在运行一次
不过使用之前需要自己确定好需要填的值
要点一:最上方三个数值,需要改几个从者(min的值),以及第一个从者的攻击力和血量(注意只需要输入第一个从者面板即可),请自行输入(理论上如果你不改第一个从者只改第二第三个从者的话也可以选择输入第二个从者的面板)
要点二:第18到第22行请自行修改想要的值
要点三:很多平时其实用不到的值,比如血量啊宝具等级啥的,可以在这一行的前面打一个“--”,这样就可以注释掉这行,不运行这行了,而第24行至第28行(最新版是27至35行),一般用不上,可以再这一小段的开头加“--[[”,结尾加"--]]",或者逐行加"--"来进行注释即可(比如说我已经主动注释掉了修改血量的和锁定血量部分的代码,如果你需要用的话再删除“--”或"--[[""--]]"组合即可)
要点四:(划重点):因未知原因,打输一局以后(如果再输一局可能恢复),下一局的地址就会固定(注意是地址不是数值),并且两个从者之间的地址偏移可能会变动(也可能不会),在此情况下修改多个从者的方案不一定还适用,但是反过来也可以利用这点,特意打输一局(最好是高难,省体力),然后手动搜到地址并锁定。(其实也可以依靠我上方的脚本只修改一个从者的值,然后根据锁定了的HP地址,查看附近内存,然后找到那些关键的地址加入到列表锁定)这样只要你不去商店啊领任务啥的就可以一直爽了,配合模拟器的按键脚本用在无限池超爽的
要点五:你使用了锁定血量的代码,通关一局,进入下一局之前,一定要记得把锁定值的地址给解锁,不然快则下一局,慢则过了几局之后,会出现游戏闪退的现象
要点六:由于0np放宝具原理是修改np上限为0 。。。故np永远不会增加,所以需要用np的技能放不出)))


19/7/26 今日大封禁没有我的名单,目前依然安全





19/8/30 CBA沉了,心态炸了退游,附上最后的礼物
FGO CE脚本(长时间使用版本)20-4-18更新.txt (1.47 KB, 下载次数: 454) (已失效)
使用方式是先去特意打输一局,下一局进入后修改,然后不去商店不去领取任务一般就不会失效,为了以防万一最好还是把光炮作为主力放在第一位并长期使用比较好


19/11/25
这边出了很多自身问题导致虽然口头答应马上更新但是一直没动身。。比如模拟器打不开fgo,固态坏盘导致换固态重装电脑等。。还有忘记了这个事(划掉),今天弄了下发现是更新版本导致宝具等级的偏移值更改,而原宝具等级地址被更改后会导致无法运行的情况,此外还有更改多个从者的偏移值也发生了变化。其实如果有的人注释掉或者不用宝具等级的话以及只更改一个从者的话,即使不更新脚本也不受影响就是了))


PS:以后更新版本也有可能会出现偏移值更改的情况这种情况可以自己排查下问题,注释掉对应的更改,毕竟我也有可能像这次一样咕很久(划掉)(一般来说两个从者之间的间隔更改的情况会多,,所以推荐劲量单核)

由于贴吧帖子被新上任的骗子sm吧主删除了,因此本日开始此贴开放对路人权限(此前是仅限吾爱已注册用户看帖)

百度网盘链接:https://pan.baidu.com/s/1s3zpsBxiNwztFjDbV2iYgw
提取码:5zcm


20/4/18
更新了偏移值,此次接到评论区反馈后去重新试了下,单个人的修改照常没问题,但多个人的修改问题就很大了,本来1号位2号位3号位4号位...之间的偏移应该是相同的,这次更新后不知为何2号位和3号位之间会相差一个很大的无规律的偏移,因此还是和之前说的一样,推荐劲量使用只修改一个人的方案来保证此脚本正常使用


20/8/10
经过验证,通过游戏失败来保证地址固定的方法已失效,虽然改一局的方法仍然成立但效率极低,如有需求请另外寻找本帖今日后不再更新脚本




干货/原理

只是为了游戏爽一爽的用户可以无视下面的信息了,这些是说给想自己研究lua脚本等用户的

最初,我是在一个梦游电玩的网站上找到了用CE的lua脚本进行修改的方法(那个网站未知原因进去很慢很慢所以我早就没去了)
当时我也爽了好一整子没有改过代码

当初的代码原理是,利用脚本自动搜索字节组来定位到地址,再根据地址进行计算,来达到获取其他地址,以达到修改的效果
但是由于其原理寻找地址的方法并非通过偏移去寻找,而是通过计算地址的方法去寻找,因此版本一更新,地址就要重新手动寻找一次,或者是打输过以后,地址也不同了。因此我一直在考虑是否能找到一个通用的方案。
[Lua] 纯文本查看 复制代码
--最初版本方案
local s1_atk = string.format("%X",MyAobScan("D5 2C 00 00 00 00 00 00 00 00 00 00 6B 2D 00 00 6B 2D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E8 03 00 00"))
local v = string.sub(s1_atk,1,5) --找到的地址只取前五位,比如说假设找到一个地址是6EFB3EA0,v的值便只取前五位数,变成了0006EFB3
--然后再根据下一行代码,在尾部插入“ECE”,最终得到的地址便是6EFB3ECE
local s1_Hp=v.."ECE” 


后来有一次,我试着提问了下我的C#老师,老师告诉了我一个思路,既然我可以确认一个地址的所在,那么其他的地址皆可以通过偏移得到
所以才有了以下代码
[Lua] 纯文本查看 复制代码
writeInteger(a-n,95423)            --修改攻击力
writeInteger(a-n+0x0C,15115)       --修改当前血量(一般不用)
writeInteger(a-n+0x10,15115)       --修改最大血量(一般不用)
writeInteger(a-n+0x28,0)           --0np释放宝具
writeInteger(a-n+0xD0,5)           --修改宝具等级

命名为a啊n啊什么的其实并不规范,但是反正已经写完了,能用,也就懒得改了

攻击力为基准进行偏移,各个重要地址的偏移如下
+0x4        是否好友,这个会影响到助战能不能使用宝具,默认填成“0”的话就可以使用宝具了
+0x0C        当前生命值
+0x10        最大生命值
+0x20        当前np值
+0x28        最大np值
+0xD0 (更新后为+0xD4)      宝具等级
- 0x248  (更新后为+0x330)  下一个从者的攻击力地址(仅限本次开启游戏没翻车的前提)

而地址偏移的计算啊什么的,就是有点基础的数学逻辑就行了
不过地址偏移倒是好求,问题是应该怎么自动搜索,这一点我搜索相关资料花了很长一段时间
最后我在wiki上成功找到了相关的信息与代码
原文我将放到第二页(有点多),有兴趣的可以参考一下
最终我所根据梦玩原贴修改后的代码则如下(为表谢意,该方法的命名依然是与原贴一致)
[Lua] 纯文本查看 复制代码
function MyAobScan(Bytes)
local Scan = createMemScan();
Scan.OnlyOneResult=true;
Scan.firstScan(soExactValue, vtGrouped, rtTruncated, Bytes, "", 0, 0x00000001ffffffff, "", fsmNotAligned, "", true, false, false, false);
Scan.waitTillDone();
return Scan.getOnlyResult();
end


而意思的话则是,创建一个名为MyAobScan的方法,传入一个字符串自动进行搜索,并返回地址(其实严格来说这个字符串就是你平时普通使用CE时,在如下图所示的地方所填入的数字啊群组啊什么的)
Y5_39H]{0~ZWMHC4)3N3684.png


搜索值得问题就算是解决了,而剩下的就都好办了
[Asm] 纯文本查看 复制代码
writeInteger(Address,Value)

将整数Value(或者说4字节的Value),填入地址Address处,而地址其实是可以当场运算偏移的,所以就有了例如
writeInteger(a-n+0x0C,15115)      
writeInteger(a-n+0x10,15115)  
这样的变体


[Lua] 纯文本查看 复制代码
local addressList = getAddressList()
local a1 = addressList.createMemoryRecord()
a1.setDescription(“命名”)
a1.Address = Address
a1.Active  = true

这段在代码结构其实没变过,还是梦玩的原贴代码,相关意思是
第四行:将Address加入到列表中(如下图)

]LCN]OQD@V1XU10JQO$)B3O.png
第三行:将描述改为“命名”(其实也可以自行修改成其他的名字,但是记得要打字符串)
第五行:是否锁定该值(true为锁定,false为不锁定)

这样就可以自动将想要锁定的值进行锁定了

应该就到这里没了还有啥的话我会后续更新
(完)

PS:
编写脚本所参考的资料与网站
https://www.runoob.com/lua/lua-tutorial.html
https://wiki.cheatengine.org/index.php?title=Lua
(下一页是MemScan类的相关资料搬运)

免费评分

参与人数 37威望 +1 吾爱币 +42 热心值 +35 收起 理由
君颜 + 1 + 1 热心回复!
dhrd + 1 + 1 用心讨论,共获提升!
酒梨丶 + 1 + 1 等待更新中
南君 + 1 + 1 谢谢@Thanks!
普鲁露特 + 1 + 1 我很赞同!
chenyinshan + 1 + 1 谢谢@Thanks!
qwsa007 + 1 + 1 我很赞同!
卧波桥 + 1 + 1 谢谢@Thanks!
间桐Sakura + 1 + 1 谢谢@Thanks!
silasa + 1 + 1 我很赞同!
ming174 + 1 + 1 我很赞同!
boyulin + 3 + 1 我很赞同!
xxxx6644 + 1 + 1 用心讨论,共获提升!
爱逍遥的逍遥 + 1 + 1 热心回复!
motianmingwdh + 1 + 1 谢谢@Thanks!
pyt250 + 1 + 1 谢谢@Thanks!
y20106998 + 1 + 1 我很赞同!
丨一方通行丨 + 1 + 1 热心回复!
kokpin + 1 + 1 谢谢@Thanks!
XjokerX + 1 + 1 谢谢@Thanks!
bfbee + 1 + 1 谢谢@Thanks!
wab6234033 + 1 + 1 谢谢@Thanks!
偷税.改 + 1 + 1 谢谢@Thanks!
无丶限加载 + 1 + 1 谢谢@Thanks!
极真武魂 + 1 用心讨论,共获提升!
qwe30245868913 + 1 热心回复!
土土土土 + 1 + 1 谢谢@Thanks!
QB56 + 1 + 1 热心回复!
宝宝哒277 + 1 写得好
Hmily + 1 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
asq56747277 + 1 + 1 谢谢@Thanks!
898522783 + 1 + 1 大佬能不能改改看明日方舟的。顶!
北栀怨寒 + 1 我很赞同!
shangpengpeng + 1 + 1 可以的,就是不知道fgo是个啥
Ouyang520 + 1 + 1 谢谢@Thanks!
风轻然雨朦胧 + 1 可以
蔚蓝枫叶 + 1 + 1 等待更新

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

风轻然雨朦胧 发表于 2019-7-25 20:04
win7ce无法修改数据解决方法

1.PNG

2.PNG


3.PNG

麻烦楼主帮忙置顶一下

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
QB56 + 1 + 1 热心回复!

查看全部评分

winer 发表于 2019-7-25 09:45
然而其实改封包的方法还活着......只不过是fgo后来一次更新检测了xp框架,用不了当时论坛大佬发的东西了
并且因为盗版收费过于严重,大佬也没再研究......如果用特殊的fgo版本,稍微调整一下代码其实封包实现每局自动改攻防礼装之类的方法还是可以用的
但是尊重论坛大佬的想法,就不细说了(毕竟源码和方法不是我想出来的.....)

并且因为我懒....早就开始在手机上拿GG用自己写的lua改了....起码相对长的时间不用担心什么版本更新0v0
总之楼主辛苦啦,谢谢分享
 楼主| loneprison 发表于 2020-7-7 11:13
年年岁岁复年年 发表于 2020-7-4 19:23
以前我用的GG脚本,最近FGO更新了之后就会崩溃了。过不了检测,一动内存就崩溃,我用的雷电模拟器,大佬有 ...

我很久没碰废狗了,过段时间我看看..
wab6234033 发表于 2019-8-19 10:13
脚本很好用
 楼主| loneprison 发表于 2020-3-14 13:23
wab6234033 发表于 2020-3-13 19:25
大佬,长时间锁定的脚本搜不到数值了啊

具体情况是怎样,一次性和长时间锁定的搜索是通用的,前者能用后者不能用那就是你写错了数值什么的
 楼主| loneprison 发表于 2019-11-12 09:46
wab6234033 发表于 2019-11-7 18:28
大——佬——!
fgo更新了,现在锁0NP上限宝具放不出来了,选完宝具卡,攻击的时候,卡在释放宝具前的动 ...

我这边模拟器出了问题连废狗都打不开。。搞定再说
svvhifhi 发表于 2019-7-24 23:11
FGO是什么游戏
龙骑士尹志平 发表于 2019-7-24 23:11
沙发,厉害了楼主
 楼主| loneprison 发表于 2019-7-24 23:13

命运冠位指定,半过气骗氪严重的游戏(不),但是老婆和剧情是真的不错)))
狐尼克 发表于 2019-7-24 23:43
虽然不玩了  但是老婆依然在心中   大佬牛批
小调丶 发表于 2019-7-24 23:49
顶 一 个
 楼主| loneprison 发表于 2019-7-24 23:50
xieying996 发表于 2019-7-24 23:42
封账号吗o(=·ω·=)m

我大概已经用了大半年时间了并没封,上次大封禁所封的是封包外挂,就是那种游戏都不进都能刷图的那种或者进图结算的那种。不过就算如此,是挂三分险,开挂就得做好觉悟,建议还是不要修改的太过分,比如几十万几百万ATK这种的
gc95918 发表于 2019-7-25 00:11
所以果然当年的一炮三面还是不能再现了吗
 楼主| loneprison 发表于 2019-7-25 00:13
gc95918 发表于 2019-7-25 00:11
所以果然当年的一炮三面还是不能再现了吗

很抱歉本人并没有这个技术==
而且这个官方会查,不管怎么说也要劲量在不封的前提下搞所以
qianyus 发表于 2019-7-25 00:21
支持顶一个
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 17:10

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表