All in Abyss: Judge the Fake

All in Abyss: Judge the Fake

Not enough ratings
扑克大逃杀99连战脚本
By 马里奥神操作
本指南给出了扑克大逃杀99连战的AutoHotKey的脚本, 仅能在WIndows系统上使用.
   
Award
Favorite
Favorited
Unfavorite
无法使用CE(Cheat Engine)去跳到最后连战
首先需要说明, 无法使用CE(Cheat Engine)[www.cheatengine.org]去跳到第99连战.

CE确实能找到当前连战的连战数所在的地址, 也能修改. 但是游戏的机制是, 一共打完X-1场比赛, 第X场比赛才能给第X场比赛应该给的东西(其中1 ≤ X ≤ 需要打的连战总数), 这意味着即使用CE将比赛跳到第Y场, 你也只能获得第Z场比赛的奖励, (其中Y为扑克大逃杀当前连战数, Z为你用CE跳连战前一共打过的连战数量).
举个例子, 以50连战为例, 且下文中X满足1 ≤ X ≤ 49, 如果你在第X场连战使用CE跳到第50场连战, 那么在第50场连战获胜后, 游戏会给你打过第X场连战后的奖励, 由于一共没有打完50场连战, 因此游戏不会给秘籍, 但是又由于完成了第50场连战, 因此扑克大逃杀会直接结束.
但是99连战不给秘籍, 那么如果此时用CE跳到第99场连战, 再打完后, 会跳成就吗? 实践可知, 并不会. 我猜是我再上面总结出的机理仍然有问题.
如果你真用CE去尝试修改当前所在连战数了, 你会发现, 屏幕正中央的绿色菱形上仍然显示你用CE跳连战前的连战数, 且无论是打完连战后刷新, 还是重新读档刷新, 绿色菱形上依然显示你用CE跳连战前的连战数, 我猜问题就出现在这里.
无法通过修改存档快速到达最后连战
Windows系统的这个游戏的存档位于
C:\Users\你的用户名\AppData\LocalLow\AllianceArts\All in Abyss\SaveData\steamID序列\GameData
且扑克大逃杀的中断存档名为
GameSaveData_Sus2.sav
那能不能直接修改存档呢?
这个游戏的制作引擎应该是Unity, 但是存档解析网站[www.saveeditonline.com]无法解析出这个存档. 我直接用文本格式打开, 全是乱码. 虽然用日本地区的系统自带的字库打开存档, 可能不是乱码, 但我没试. 我觉得这条路走不通.
用Autohotkey模拟鼠标点击与键盘输入自动打到最后连战
在CE和改存档这两种方式都行不通后, 最后只能使用模拟输入的脚本了.
这里使用的Autohotkey[www.autohotkey.com]是Windows系统的模拟点击的脚本语言. 并且由于我使用了鼠标模拟点击与库FindText[www.autoahk.com], 因此脚本需要屏幕分辨率为2560×1440. 如果你的屏幕改不到这个分辨率, 你需要用FindText.ahk重新去查找图片, 并修改FindText函数的查找范围. 通过等比例缩放脚本中的坐标是不会让脚本正常工作的.

在使用脚本前, 你需要修改这两项
存档目录 := "C:\Users\T\AppData\LocalLow\AllianceArts\All in Abyss\SaveData\76561198359408147\GameData\" 备份目录 := "F:\AutoHotKey脚本\备份存档文件夹"
要将存档目录改为你的电脑里的本游戏的存档目录, 并将备份目录改为任意一个你喜欢的文件夹.

本脚本的处理逻辑是:
1. 在连战中直接把倍率拉满(或 All in), 此时对手必然All in , 然后用FindText函数查找明日叶胜利的照片.
2. 如果找到了, 那就终止游戏, 并将存档目录中的GameSaveData_Sus2.sav复制到备份目录中.
3. 如果没有找到, 那说明明日叶失败了, 此时脚本强制终止游戏, 并将备份目录中的存档复制到存档目录中.
4. 如果明日叶使用「鸿运当头头̇改」的技能, 那么游戏会有较高的机率在开局提供一个对子或是一个A, 但是此时拉满倍率(或 All in)的话, 仍然有很大的可能性失败. 综合来看, 平均每2分钟, 脚本才能赢得一场连战.
5. 本脚本不仅能在99连战中使用, 只要是扑克大逃杀的连战, 就能使用. 但是本脚本没有检测扑克大逃杀的连战完全胜利的情况, 因此要自己掐好时间, 手动按「Shift+M」停止脚本.
6. 本脚本的开启方式是, 通过Steam打开游戏, 此时注意不要关闭Steam的页面, 然后在游戏中进入扑克大逃杀, 任选一个进入后, 按下「Shift+M」开启脚本, 然后立马用鼠标点击屏幕中间的绿色菱形按钮, 然后观察脚本打一轮连战, 确定没有问题后, 就可以让脚本自动挂机了.

脚本与存档
明日叶胜利的字符串占了七万多个字节, Steam处理不了这么多的字节, 到网盘下载吧.
你要是实在看不懂脚本要怎么开启, 就用链接里给的存档吧, 但是这个存档没有完成第3章的隐藏成就, 慎用.
使用的是蓝奏云网盘, 也许要用魔曰解密, 记得删掉文件后缀名. 话说萌研社的与熊论道竟然关闭了, 我好多分享链接用的都是这个, 我有的头疼了, 该死的破甲弹. 没有你我怎么活呀, 牢熊!
外链:https://lolisix.lanzouq.com/b0ra66tnc 密码:9rl6 非可看也。后鸢问之而不旅之、亦使瀚梦而复行彩鸢也。鹂以聪,非绸也,虽无鲤褔之笑,亦需以少谈盈夏。非应现也,俊春之鹂,游之裳而航之鸢也。此雁有舒岩新琴,速心新春。驿同文度,虽无璃火之登,亦写以遥留坚路。况当快者怡,欲灯者清,今选叶以筑秀雁。虽报筑益北,短和不同。非应见也,非雁也。

这是将明日叶胜利的字符串视为空字符串的脚本, 没法正常使用, 能正常使用的脚本需要到网盘里下载, 下面只是简单让你看看这个脚本是怎么工作的.
#Requires AutoHotkey v2.0 #SingleInstance Force #Include <FindText> ;分辨率需要为2560×1440 global 判断 := 0 SetKeyDelay(300) 明日叶胜利图片:= "" Steam的开始游戏按钮:="|<>3EC139@0.85$129.zzzzzzzzzwTszzwT7zzyTzzzzzy000TXz7z7XszzzmT7zzzzU001wTlzwSTDy0y1sDzzzzsz7zXyQzllk1U3m70zzzzz7szk3XXzE20DySQM1zzzzsz7w08wTw03zzXnn03zzzz7szsl7lzswzwQS000Dzzzsz7z61wCD703XU0100Tzzz7szsk00sss0SAUTs00zzzsz7zCE3XXDzXsbnn003zzU001tnzwSM3sT0ySM00zzs0006ATzzzAS7w7lX007zzz7szlX01ztXlzly8s03zzzsz7yAE0DzA01yDl701zzzz7szs6DtyNU0Dkz1s0Tzzzsz7zUlzDnASTw7sT0DzzzzDszy6DtwFXnz4T7s7zzzzlz7zkFzDWASTslkw1zzzzyDszw0DtwnXnyCA7UzzzzzXz7z600DYQyTXz4Mzzzzzkzszly01sU7nszVn7zzzzwDz7wTlzD0UkTjsS1zzzzzXzwzryDts7w7zzjsA" 自动运行扑克大逃杀(){ While(判断 == 1){ ToolTip("开始大逃杀回车") SendEvent("{Enter Down}{Enter Up}{Enter Down}{Enter Up}") Sleep(1000*6) ToolTip("拉大倍率") SendEvent("{D Down}{D Up}{W Down}{W Up}{Enter Down}{Enter Up}") Sleep(1000*10) ToolTip("跳过第二回合") SendEvent("{Enter Down}{Enter Up}") ToolTip("等待打牌过场动画") Sleep(1000*25) ToolTip("判断是否胜利") if(判断 == 1){ if (ok:=FindText(&X, &Y, 6, 375, 795, 1332, 0.1, 0.1, 明日叶胜利图片)) { 大逃杀成功() }else{ 大逃杀失败() } } } } 大逃杀成功(){ ToolTip("执行胜利动画") SendEvent("{Enter Down}{Enter Up}") Sleep(1000*5) ToolTip("进入大逃杀页面") SendEvent("{Enter Down}{Enter Up}") Sleep(1000*4) ToolTip("中断游戏") SendEvent("{A Down}{A Up}{Enter Down}{Enter Up}{Enter Down}{Enter Up}") Sleep(1000*1) ToolTip("将存档目录的文件转移至备份目录") 将存档目录的文件转移至备份目录("F3") SendEvent("{W Down}{W Up}") ;进入存档 Sleep(1000*1) ToolTip("进入存档步骤2") SendEvent("{Enter Down}{Enter Up}{Enter Down}{Enter Up}") ;进入存档 ToolTip("进入大逃杀页面") Sleep(1000*4) } 大逃杀失败(){ ToolTip("强行中断游戏") Send("!{F4}") Sleep(1000*2) ToolTip("将备份目录的文件转移至存档目录") 将备份目录的文件转移至存档目录("F3") Sleep(1000*2) ToolTip("从steam进入游戏") WinActivate("ahk_exe steamwebhelper.exe") FindText(&X, &Y, 326, 98, 666, 1347, 0.1, 0.1, Steam的开始游戏按钮) Click(X,Y) Sleep(1000*25) ToolTip("进入存档步骤1") SendEvent("{Enter Down}{Enter Up}") ;进入存档 Sleep(1000*4) SendEvent("{W Down}{W Up}") ;进入存档 Sleep(1000*1) ToolTip("进入存档步骤2") SendEvent("{Enter Down}{Enter Up}{Enter Down}{Enter Up}") ;进入存档 ToolTip("进入大逃杀页面") Sleep(1000*4) } 存档目录 := "C:\Users\T\AppData\LocalLow\AllianceArts\All in Abyss\SaveData\76561198359408147\GameData\" 备份目录 := "F:\AutoHotKey脚本\备份存档文件夹" 备份文件名库 := ["GameSaveData_Sus2.sav"] if(SubStr(存档目录, -1) == "\"){ }else{ 存档目录 := 存档目录 . "\" } if(SubStr(备份目录, -1) == "\"){ }else{ 备份目录 := 备份目录 . "\" } 将存档目录的文件转移至备份目录(键名){ for(备份文件名 in 备份文件名库){ FileCopy( 存档目录 . 备份文件名, 备份目录 . 键名 . 备份文件名, 1) } } 将备份目录的文件转移至存档目录(键名){ for(备份文件名 in 备份文件名库){ FileCopy(备份目录 . 键名 . 备份文件名, 存档目录 . 备份文件名, 1) } } 关闭tooltip(){ tooltip("") } $+m:: { global 判断 if(判断 == 0){ 判断 := 1 SetTimer(自动运行扑克大逃杀, -1000) tooltip("已运行") SetTimer(关闭tooltip, -5000) }else{ 判断 := 0 SetTimer(自动运行扑克大逃杀, 0) SetTimer(关闭tooltip, -1) } }