From 066541dab39b39a9bcdb5109612aea73aca19b51 Mon Sep 17 00:00:00 2001 From: UCPr <2032385471@qq.com> Date: Sat, 16 Nov 2024 23:19:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E6=97=B6=E5=B0=9D=E8=AF=95=E9=87=8D=E5=90=AF=E6=B8=B8?= =?UTF-8?q?=E6=88=8F=EF=BC=8C=E5=8F=AF=E6=9F=A5=E7=9C=8B=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 +- utils/Panel.ahk | 2 +- ...6\345\217\267\344\270\232\347\273\251.ahk" | 64 ++++++++++++++----- 3 files changed, 52 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index c66981c..610aa12 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,7 @@ - 针对 **旧都列车·前线**、 **拿命验收** 关卡设计 - 基于 [**AutoHotKey v2**](https://www.autohotkey.com) 实现的 **零号业绩** 、 **零号空洞银行存款** 、 **丁尼** 自动刷取 > 业绩约2分钟一把,可获得20业绩+银行存款,2小时不到就能刷满一周900业绩上限并拿满周任务奖励 - > 丁尼约30秒一把,可获得80丁尼,每小时可获取约1w丁尼 - > 丁尼约30秒一把,可获得80丁尼,每小时可获取约1w丁尼 + > 丁尼约30秒一把,可获得80丁尼,每小时可获取约7k丁尼 - 支持多比例 **全屏** 或 **窗口** 运行 - 简单轻量易用,对于不同 **分辨率、帧率、缩放、HDR、字体等** 具有良好的适应性 @@ -23,7 +22,6 @@ - 2. 默认编队首位必须为 **比利** ,其他随意 - 3. 请在副本内调整 **视角转动值** 以确保对齐NPC -## 下载方法 ## 下载方法 > PS: 程序报毒系正常现象,担心的话可以跑源码或者自行编译,怕别用用别怕 @@ -43,7 +41,7 @@ - Alt+P :暂停/恢复刷取,快捷指令,也可通过控制面板修改 - Alt+C :打开/关闭[控制面板](./控制面板.jpg),相关信息: > **休眠系数**:调整脚本在加载动画时的等待时长倍率 - >
**异常重试次数**:允许总的异常时重试的次数 + >
**异常重试次数**:允许异常后尝试重试/重启的总次数,发生异常后值减一,双击可查看历史异常 >
**颜色搜索允许RGB容差**:过大可能误点,过小可能匹配失败,按需调整 >
**视角转动值**:丁尼模式下进入副本后的视角转动值,首次运行时请调整该值以确保对齐NPC:转动幅度过大则需减小,反之则需增大 >
**使用炸弹**:修改走格子邦布插件快捷使用方式,请保持和游戏内一致:长按/点击 diff --git a/utils/Panel.ahk b/utils/Panel.ahk index 9d135c5..c1e52df 100644 --- a/utils/Panel.ahk +++ b/utils/Panel.ahk @@ -38,7 +38,7 @@ class Panel { EG.OnEvent('Change', changeSleepCoefficient) this.CP.AddUpDown('-2', setting.sleepCoefficient).OnEvent('Change', UpDownChange) - this.CP.AddText('X30', '异常重试次数:') + this.CP.AddText('X30', '异常重试次数:').OnEvent('DoubleClick', (*) => MsgBox(retry(), '历史异常', '0x40000')) this.CP.AddEdit('X+10 w60 h25 Limit3 Number').OnEvent('Change', changeRetryTimes) this.CP.AddUpDown('Range0-999', setting.retryTimes).OnEvent('Change', changeRetryTimes) diff --git "a/\351\233\266\345\217\267\344\270\232\347\273\251.ahk" "b/\351\233\266\345\217\267\344\270\232\347\273\251.ahk" index ba92439..c74e754 100644 --- "a/\351\233\266\345\217\267\344\270\232\347\273\251.ahk" +++ "b/\351\233\266\345\217\267\344\270\232\347\273\251.ahk" @@ -3,7 +3,7 @@ * @file 零号业绩.ahk * @author UCPr * @date 2024/11/16 - * @version v2.0.0.2 + * @version v2.1.0 * @link https://github.com/UCPr251/zzzAuto * @warning 请勿用于任何商业用途,仅供学习交流使用 ***********************************************************************/ @@ -42,7 +42,7 @@ SetMouseDelay(-1) #Include getDenny.ahk #Include enterHDD.ahk -global Version := "v2.0.0" +global Version := "v2.1.0" global ZZZ := "ahk_exe ZenlessZoneZero.exe" init() @@ -170,29 +170,32 @@ main() { } /** 出现异常后重试 */ -retry(reason) { - isYeJi := setting.mode = 'YeJi' - if (!setting.errHandler || ((isYeJi ? setting.statistics : setting.statisticsDenny).Length = 0)) { - throw Error(reason) - } +retry(reason?) { static errReasons := [] - errReasons.Push(reason) - getErrorMsg() { - errMsg := "" + static getErrorMsg() { + errMsg := "历史异常:" loop (errReasons.Length) { - errMsg .= "`n异常" A_Index ":" errReasons[A_Index] + err := errReasons[A_Index] + errMsg .= "`n异常" A_Index ":[" err.time "] " err.reason } - errReasons := [] return errMsg } + if (!IsSet(reason) || !reason) { + return getErrorMsg() + } + isYeJi := setting.mode = 'YeJi' + if (!setting.errHandler || ((isYeJi ? setting.statistics : setting.statisticsDenny).Length = 0)) { + throw Error(reason) + } + errReasons.Push({ time: FormatTime(A_Now, "HH:mm:ss"), reason: reason }) setting.retryTimes-- if (setting.retryTimes < 0) { Ctrl.stop() errReasons := [] setting.retryTimes := setting.oriSetting.retryTimes - return MsgBox("【错误】异常重试次数过多,脚本结束" getErrorMsg(), "错误", "Iconx 0x40000") + return MsgBox("【错误】异常重试次数过多,脚本结束`n" getErrorMsg(), "错误", "Iconx 0x40000") } - MsgBox("【错误】连续刷取过程中出现异常:`n" reason "`n`n将在6s后重试", "错误", "Iconx T6 0x40000") + MsgBox("【错误】连续刷取过程中出现异常:`n" reason "`n`n将在3s后重试", "错误", "Iconx T3 0x40000") RandomSleep() page := 0 ; 卡在空洞走格子、交互、确认界面,子界面 @@ -269,7 +272,38 @@ retry(reason) { } return runAutoZZZ() } - return MsgBox("【重试失败】未找到零号空洞关卡选择界面,脚本结束`n重试原因:" reason "`n异常次数:" errReasons.Length "`n历史异常:" getErrorMsg(), "错误", "Iconx 0x40000") + try { + GamePath := WinGetProcessPath(ZZZ) + if (GamePath) { + MsgBox("【重启】返回主界面失败,将在3s后重启游戏", "执行重启", "Icon! T3 0x40000") + WinClose(ZZZ) + Sleep(1000) + while (WinExist(ZZZ)) { + Sleep(251) + } + Sleep(1000) + Run(GamePath) + Sleep(8000) + while (!WinExist(ZZZ)) { + Sleep(251) + } + Sleep(1000) + c.reset() + loop (3) { + while (recogLocation(10) != 1) { + SimulateClick(c.width // 2, c.height // 2) + Sleep(1000) + } + Sleep(1000) + if (recogLocation(10) = 1) { + return runAutoZZZ() + } + } + } + } catch Error as e { + MsgBox("【重启失败】重启游戏失败,脚本结束`n重启失败原因" e.Message "`n重启原因:" reason "`n异常总次数:" errReasons.Length "`n" getErrorMsg(), "错误", "Iconx 0x40000") + errReasons := [] + } } /** 运行刷取脚本 */