├── .github └── workflows │ ├── check.yml.bak │ ├── install.yml │ ├── mirrorchyan.yml │ └── mirrorchyan_release_note.yml ├── .gitignore ├── .gitmodules ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── agent └── main.py ├── assets ├── interface.json └── resource │ ├── base │ ├── default_pipeline.json │ ├── image │ │ ├── 个人信息 │ │ │ └── 领取.png │ │ ├── 仓库 │ │ │ ├── 奇忆甄选信念.png │ │ │ ├── 奇忆甄选暗流.png │ │ │ ├── 奇忆甄选火线.png │ │ │ ├── 拆解按钮.png │ │ │ ├── 武器亮.png │ │ │ ├── 武器暗.png │ │ │ ├── 武器配件亮.png │ │ │ ├── 武器配件暗.png │ │ │ ├── 物资助力箱.png │ │ │ ├── 生长数据亮.png │ │ │ ├── 生长数据暗.png │ │ │ ├── 道具箱.png │ │ │ └── 顶级生长数据随机箱.png │ │ ├── 体力兑换 │ │ │ └── 体力兑换.png │ │ ├── 公用按钮组件 │ │ │ ├── 2倍速.png │ │ │ ├── 3倍速.png │ │ │ ├── 个人信息.png │ │ │ ├── 主页按钮_black.png │ │ │ ├── 主页按钮_gray.png │ │ │ ├── 关闭按钮_black.png │ │ │ ├── 关闭按钮_gray.png │ │ │ ├── 提醒.png │ │ │ ├── 提醒_v2.png │ │ │ ├── 智能导航光屏关闭按钮_gray.png │ │ │ ├── 滑动条值减少.png │ │ │ ├── 滑动条值增加.png │ │ │ ├── 自动战斗_off.png │ │ │ ├── 返回上一页_black.png │ │ │ ├── 返回上一页_black_v2.png │ │ │ ├── 返回上一页_gray.png │ │ │ ├── 返回上一页_gray_v2.png │ │ │ ├── 邮件_主页.png │ │ │ └── 邮件_主页_2.png │ │ ├── 其他 │ │ │ ├── 休息室.png │ │ │ ├── 好友班组动态.png │ │ │ ├── 子群已完成.png │ │ │ └── 巡录.png │ │ ├── 启动游戏 │ │ │ ├── SunbornGameLogo.png │ │ │ └── 适龄提示__1177_638_44_57__1127_588_144_132.png │ │ ├── 实兵演习 │ │ │ ├── 实兵演习.png │ │ │ ├── 实兵演习_green.png │ │ │ ├── 演习补给已领取.png │ │ │ └── 演习补给待领取.png │ │ ├── 心智勘测 │ │ │ ├── 01守望者.png │ │ │ ├── 02流浪的人.png │ │ │ ├── 03限时替身.png │ │ │ ├── 04最后的命令.png │ │ │ ├── 05乘于裙摆之上.png │ │ │ └── 06星点光芒闪耀时.png │ │ ├── 招募 │ │ │ ├── 常规采购标签_未选中.png │ │ │ └── 常规采购标签_选中.png │ │ ├── 整备室 │ │ │ ├── 休息室按钮.png │ │ │ └── 换装室按钮.png │ │ ├── 每日免费礼包 │ │ │ ├── 每周补给箱.png │ │ │ └── 每日补给箱.png │ │ ├── 活动 │ │ │ ├── 信息核.png │ │ │ ├── 模拟习练_未激活.png │ │ │ ├── 模拟习练_激活.png │ │ │ ├── 艾莫号许愿池提醒.png │ │ │ ├── 通信中.png │ │ │ ├── 险境挖掘格子.png │ │ │ └── 预演奖励已领取.png │ │ ├── 活动层 │ │ │ ├── 内存条.png │ │ │ ├── 存量条.png │ │ │ ├── 战场报告.png │ │ │ ├── 数据链路.png │ │ │ ├── 星标.png │ │ │ ├── 用餐效果.png │ │ │ ├── 茶歇一刻.png │ │ │ ├── 解析图纸.png │ │ │ ├── 转录导体.png │ │ │ ├── 退出.png │ │ │ ├── 逸趣导算.png │ │ │ └── 饮用效果.png │ │ ├── 版本活动 │ │ │ └── 歧路物资5.png │ │ ├── 班组 │ │ │ ├── 切换排序.png │ │ │ ├── 切换编队.png │ │ │ ├── 双生效.png │ │ │ ├── 奖励提醒1.png │ │ │ ├── 本期生效1.png │ │ │ └── 本期生效2.png │ │ └── 集中兑换 │ │ │ ├── 班组商店 │ │ │ ├── 战场报告.png │ │ │ ├── 波波沙心智存档.png │ │ │ ├── 火控校准芯片.png │ │ │ ├── 精密补给箱.png │ │ │ ├── 萨狄斯金.png │ │ │ ├── 解析图纸.png │ │ │ ├── 转录导体4.png │ │ │ ├── 转录导体5.png │ │ │ └── 转录导体6.png │ │ │ ├── 讯段交易 │ │ │ ├── 基原信息核.png │ │ │ ├── 塞布丽娜心智存档.png │ │ │ ├── 次世代内存条.png │ │ │ ├── 萨狄斯金.png │ │ │ ├── 访问许可.png │ │ │ └── 配件箱.png │ │ │ └── 调度商店 │ │ │ ├── 奇忆甄选信念.png │ │ │ ├── 奇忆甄选暗流.png │ │ │ ├── 奇忆甄选火线.png │ │ │ ├── 存量条T2.png │ │ │ ├── 存量条T3.png │ │ │ ├── 存量条T4.png │ │ │ ├── 心意礼盒.png │ │ │ ├── 战场报告.png │ │ │ ├── 萨狄斯金.png │ │ │ ├── 解析图纸.png │ │ │ └── 访问许可.png │ ├── model │ │ └── ocr │ │ │ ├── README.md │ │ │ ├── det.onnx │ │ │ ├── keys.txt │ │ │ └── rec.onnx │ └── pipeline │ │ ├── TimeLimitedTasks │ │ ├── claimIntelligenceSupplyStaminaTask.json │ │ └── claimSevenDayCheckInResourceTask.json │ │ ├── public │ │ ├── AutoSweepBattle │ │ │ ├── popup.json │ │ │ └── popupAccessories.json │ │ ├── BulkExchangeTasks │ │ │ ├── BossChallengeExchange.json │ │ │ ├── BulkExchangeGeneralTask │ │ │ │ └── bulkExchangeGeneralTask.json │ │ │ ├── dispatchCenterExchange.json │ │ │ └── guildExchange.json │ │ ├── ClaimRewardTasks │ │ │ ├── commission.json │ │ │ ├── dangerousExcavation.json │ │ │ ├── passSystem.json │ │ │ ├── supportDollRewards.json │ │ │ ├── trial.json │ │ │ ├── 动态招募祝福.json │ │ │ ├── 暗香赠礼.json │ │ │ ├── 模拟习练.json │ │ │ └── 艾莫号许愿池.json │ │ ├── MindSurveyTask │ │ │ └── mindSurvey.json │ │ ├── PlatoonTasks │ │ │ ├── gunsmokeFrontline.json │ │ │ ├── gunsmokeFrontlineLogic.json │ │ │ ├── platoonDailyCombat.json │ │ │ ├── platoonDailyCombatLogic.json │ │ │ └── platoonDailySupply.json │ │ ├── PrepareDailyTasks │ │ │ ├── BoundaryAdvance │ │ │ │ └── BoundaryAdvance.json │ │ │ ├── Email │ │ │ │ └── getNewEmails.json │ │ │ ├── Shop │ │ │ │ └── shop.json │ │ │ ├── StaminaReplenishments │ │ │ │ └── staminaReplenishment.json │ │ │ └── timeLimited │ │ │ │ └── timeLimitedTask.json │ │ ├── PublicAreaDailyTasks │ │ │ ├── dispatchCenter.json │ │ │ ├── lounge.json │ │ │ └── schedulingGains.json │ │ ├── SimulatedCombat │ │ │ ├── bossChallenge.json │ │ │ ├── liveDrill.json │ │ │ ├── peakValueAssessment.json │ │ │ ├── wargameSimulation.json │ │ │ └── 极限峰值.json │ │ ├── VersionActivity │ │ │ ├── enterVersionActivityItemExchange.json │ │ │ └── enterVersionActivityResourceSweep.json │ │ ├── controlButton.json │ │ ├── interrupt.json │ │ ├── organizeStoreroom │ │ │ ├── flower.json │ │ │ ├── itemBox.json │ │ │ ├── weapon.json │ │ │ └── weaponAttachments.json │ │ ├── stagePromotion.json │ │ ├── stopTask.json │ │ ├── 活动层 │ │ │ ├── 美味烹调.json │ │ │ ├── 茶歇一刻.json │ │ │ └── 逸趣导算.json │ │ └── 通用战斗.json │ │ └── tasks │ │ ├── AutoSweepBattle.json │ │ ├── BatchRedeemCode.json │ │ ├── BulkExchange.json │ │ ├── ClaimRewardTasks.json │ │ ├── ClickAssistant.json │ │ ├── CommunityDaillyHelper.json │ │ ├── MindSurveyTask.json │ │ ├── PlatoonTasks.json │ │ ├── PrepareDailyTasks.json │ │ ├── PublicAreaDailyTasks.json │ │ ├── SimulatedCombat.json │ │ ├── StartGame.json │ │ ├── StopGame.json │ │ ├── VersionActivityTask.json │ │ ├── organizeStoreroom.json │ │ └── 活动层.json │ ├── custom │ ├── BatchRedeemCode.cs │ └── CommunityDailyHelper.cs │ ├── resource_bilibili │ └── pipeline │ │ └── tasks │ │ ├── StartGame.json │ │ └── StopGame.json │ ├── resource_en │ ├── image │ │ ├── 仓库 │ │ │ └── 拆解界面.png │ │ └── 启动游戏 │ │ │ └── SunbornGameLogo.png │ └── pipeline │ │ ├── public │ │ ├── SimulatedCombat │ │ │ ├── liveDrill.json │ │ │ ├── wargameSimulation.json │ │ │ └── 极限峰值.json │ │ └── organizeStoreroom │ │ │ ├── flower.json │ │ │ ├── itemBox.json │ │ │ ├── weapon.json │ │ │ └── weaponAttachments.json │ │ └── tasks │ │ ├── CommunityDaillyHelper.json │ │ ├── PublicAreaDailyTasks.json │ │ ├── StartGame.json │ │ ├── StopGame.json │ │ ├── organizeStoreroom.json │ │ └── public │ │ ├── AutoSweepBattle │ │ └── popupAccessories.json │ │ ├── ClaimRewardTasks │ │ └── commission.json │ │ ├── PlatoonTasks │ │ └── platoonDailyCombatLogic.json │ │ ├── PrepareDailyTasks │ │ └── GameStore │ │ │ └── GameStore.json │ │ ├── PublicAreaDailyTasks │ │ ├── dispatchCenter.json │ │ └── lounge.json │ │ └── SimulatedCombat │ │ └── bossChallenge.json │ └── resource_glo │ ├── image │ └── 启动游戏 │ │ └── HaoPlayLogo.png │ └── pipeline │ └── tasks │ ├── StartGame.json │ └── StopGame.json ├── check_resource.py ├── config └── maa_option.json ├── configure.py ├── cspell.json ├── debug.bat ├── docs ├── Git提交前缀.md ├── Json文件说明.md ├── Pip协议心得.md ├── 常见问题.md └── 开发相关.md ├── imgs ├── 1.jpg ├── 2.jpg ├── 常见问题-1.png ├── 常见问题-2.png ├── 更换资源.png └── 界面图片.png ├── install.bat ├── install.py ├── pyproject.toml ├── requirements.txt ├── scripts ├── download_deps.py └── json_to_mermaid.py └── uv.lock /.github/workflows/check.yml.bak: -------------------------------------------------------------------------------- 1 | name: check 2 | 3 | on: 4 | push: 5 | branches: 6 | - "**" 7 | paths: 8 | - ".github/workflows/check.yml" 9 | - "assets/**" 10 | - "**.py" 11 | pull_request: 12 | branches: 13 | - "**" 14 | paths: 15 | - ".github/workflows/check.yml" 16 | - "assets/**" 17 | - "**.py" 18 | workflow_dispatch: 19 | 20 | jobs: 21 | resource: 22 | runs-on: windows-latest 23 | steps: 24 | - uses: actions/checkout@v4 25 | with: 26 | fetch-depth: 0 27 | 28 | # pip install maafw 29 | - name: Install maafw 30 | run: | 31 | python -m pip install --upgrade pip 32 | python -m pip install --upgrade maafw --pre 33 | 34 | - name: Check Resource 35 | run: | 36 | python ./check_resource.py ./assets/resource/ 37 | -------------------------------------------------------------------------------- /.github/workflows/mirrorchyan.yml: -------------------------------------------------------------------------------- 1 | name: mirrorchyan 2 | 3 | on: 4 | workflow_dispatch: 5 | 6 | jobs: 7 | mirrorchyan: 8 | if: ${{ github.repository_owner == 'DarkLingYun' }} 9 | runs-on: macos-latest 10 | strategy: 11 | fail-fast: false 12 | matrix: 13 | os: [win] 14 | arch: [x86_64] 15 | steps: 16 | - id: uploading 17 | uses: MirrorChyan/uploading-action@v1 18 | with: 19 | filetype: latest-release 20 | filename: "MaaGF2ExiliumGUI-${{ matrix.os }}-${{ matrix.arch }}-*.zip" 21 | mirrorchyan_rid: MaaGF2Exilium 22 | 23 | owner: DarkLingYun 24 | repo: MaaGF2Exilium 25 | github_token: ${{ secrets.GITHUB_TOKEN }} 26 | upload_token: ${{ secrets.MirrorChyanUploadToken }} 27 | os: ${{ matrix.os }} 28 | arch: ${{ matrix.arch }} 29 | 30 | mirrorchyan_res: 31 | runs-on: macos-latest 32 | if: ${{ github.repository_owner == 'DarkLingYun' }} 33 | steps: 34 | - id: uploading 35 | uses: MirrorChyan/uploading-action@v1 36 | with: 37 | filetype: latest-release 38 | filename: "MaaGF2ExiliumGUI-win-x86_64-*.zip" 39 | pick_files: '["resource", "interface.json"]' 40 | exclude_files: '["*model/ocr/**"]' 41 | mirrorchyan_rid: MaaGF2Exilium 42 | 43 | owner: DarkLingYun 44 | repo: MaaGF2Exilium 45 | github_token: ${{ secrets.GITHUB_TOKEN }} 46 | upload_token: ${{ secrets.MirrorChyanUploadToken }} 47 | -------------------------------------------------------------------------------- /.github/workflows/mirrorchyan_release_note.yml: -------------------------------------------------------------------------------- 1 | name: mirrorchyan_release_note 2 | 3 | on: 4 | workflow_dispatch: 5 | release: 6 | types: [edited] 7 | 8 | jobs: 9 | mirrorchyan: 10 | runs-on: macos-latest 11 | if: ${{ github.repository_owner == 'DarkLingYun' }} 12 | 13 | steps: 14 | - id: uploading 15 | uses: MirrorChyan/release-note-action@v1 16 | with: 17 | mirrorchyan_rid: MaaGF2Exilium 18 | 19 | upload_token: ${{ secrets.MirrorChyanUploadToken }} 20 | github_token: ${{ secrets.GITHUB_TOKEN }} 21 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "assets/MaaCommonAssets"] 2 | path = assets/MaaCommonAssets 3 | url = https://github.com/MaaXYZ/MaaCommonAssets 4 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "json.schemas": [ 3 | { 4 | "fileMatch": [ 5 | "/assets/resource/**/*.json", 6 | "/install/resource/**/*.json" 7 | ], 8 | "url": "/deps/tools/pipeline.schema.json" 9 | }, 10 | { 11 | "fileMatch": [ 12 | "/assets/interface.json", 13 | "/install/interface.json" 14 | ], 15 | "url": "/deps/tools/interface.schema.json" 16 | }, 17 | { 18 | "fileMatch": [ 19 | "/install/config/maa_pi_config.json" 20 | ], 21 | "url": "/deps/tools/interface_config.schema.json" 22 | } 23 | ], 24 | "[json]": { 25 | "editor.formatOnSave": true, 26 | "editor.insertSpaces": true, 27 | "editor.tabSize": 4, 28 | "editor.indentSize": "tabSize" 29 | }, 30 | "[python]": { 31 | "editor.defaultFormatter": "ms-python.black-formatter" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 MaaXYZ 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /agent/main.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | from maa.agent.agent_server import AgentServer 4 | from maa.toolkit import Toolkit 5 | 6 | 7 | def main(): 8 | Toolkit.init_option("./") 9 | 10 | socket_id = sys.argv[-1] 11 | 12 | AgentServer.start_up(socket_id) 13 | AgentServer.join() 14 | AgentServer.shut_down() 15 | 16 | 17 | if __name__ == "__main__": 18 | main() 19 | -------------------------------------------------------------------------------- /assets/resource/base/default_pipeline.json: -------------------------------------------------------------------------------- 1 | { 2 | "Default": {} 3 | } -------------------------------------------------------------------------------- /assets/resource/base/image/个人信息/领取.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/个人信息/领取.png -------------------------------------------------------------------------------- /assets/resource/base/image/仓库/奇忆甄选信念.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/仓库/奇忆甄选信念.png -------------------------------------------------------------------------------- /assets/resource/base/image/仓库/奇忆甄选暗流.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/仓库/奇忆甄选暗流.png -------------------------------------------------------------------------------- /assets/resource/base/image/仓库/奇忆甄选火线.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/仓库/奇忆甄选火线.png -------------------------------------------------------------------------------- /assets/resource/base/image/仓库/拆解按钮.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/仓库/拆解按钮.png -------------------------------------------------------------------------------- /assets/resource/base/image/仓库/武器亮.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/仓库/武器亮.png -------------------------------------------------------------------------------- /assets/resource/base/image/仓库/武器暗.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/仓库/武器暗.png -------------------------------------------------------------------------------- /assets/resource/base/image/仓库/武器配件亮.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/仓库/武器配件亮.png -------------------------------------------------------------------------------- /assets/resource/base/image/仓库/武器配件暗.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/仓库/武器配件暗.png -------------------------------------------------------------------------------- /assets/resource/base/image/仓库/物资助力箱.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/仓库/物资助力箱.png -------------------------------------------------------------------------------- /assets/resource/base/image/仓库/生长数据亮.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/仓库/生长数据亮.png -------------------------------------------------------------------------------- /assets/resource/base/image/仓库/生长数据暗.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/仓库/生长数据暗.png -------------------------------------------------------------------------------- /assets/resource/base/image/仓库/道具箱.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/仓库/道具箱.png -------------------------------------------------------------------------------- /assets/resource/base/image/仓库/顶级生长数据随机箱.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/仓库/顶级生长数据随机箱.png -------------------------------------------------------------------------------- /assets/resource/base/image/体力兑换/体力兑换.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/体力兑换/体力兑换.png -------------------------------------------------------------------------------- /assets/resource/base/image/公用按钮组件/2倍速.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/公用按钮组件/2倍速.png -------------------------------------------------------------------------------- /assets/resource/base/image/公用按钮组件/3倍速.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/公用按钮组件/3倍速.png -------------------------------------------------------------------------------- /assets/resource/base/image/公用按钮组件/个人信息.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/公用按钮组件/个人信息.png -------------------------------------------------------------------------------- /assets/resource/base/image/公用按钮组件/主页按钮_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/公用按钮组件/主页按钮_black.png -------------------------------------------------------------------------------- /assets/resource/base/image/公用按钮组件/主页按钮_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/公用按钮组件/主页按钮_gray.png -------------------------------------------------------------------------------- /assets/resource/base/image/公用按钮组件/关闭按钮_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/公用按钮组件/关闭按钮_black.png -------------------------------------------------------------------------------- /assets/resource/base/image/公用按钮组件/关闭按钮_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/公用按钮组件/关闭按钮_gray.png -------------------------------------------------------------------------------- /assets/resource/base/image/公用按钮组件/提醒.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/公用按钮组件/提醒.png -------------------------------------------------------------------------------- /assets/resource/base/image/公用按钮组件/提醒_v2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/公用按钮组件/提醒_v2.png -------------------------------------------------------------------------------- /assets/resource/base/image/公用按钮组件/智能导航光屏关闭按钮_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/公用按钮组件/智能导航光屏关闭按钮_gray.png -------------------------------------------------------------------------------- /assets/resource/base/image/公用按钮组件/滑动条值减少.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/公用按钮组件/滑动条值减少.png -------------------------------------------------------------------------------- /assets/resource/base/image/公用按钮组件/滑动条值增加.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/公用按钮组件/滑动条值增加.png -------------------------------------------------------------------------------- /assets/resource/base/image/公用按钮组件/自动战斗_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/公用按钮组件/自动战斗_off.png -------------------------------------------------------------------------------- /assets/resource/base/image/公用按钮组件/返回上一页_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/公用按钮组件/返回上一页_black.png -------------------------------------------------------------------------------- /assets/resource/base/image/公用按钮组件/返回上一页_black_v2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/公用按钮组件/返回上一页_black_v2.png -------------------------------------------------------------------------------- /assets/resource/base/image/公用按钮组件/返回上一页_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/公用按钮组件/返回上一页_gray.png -------------------------------------------------------------------------------- /assets/resource/base/image/公用按钮组件/返回上一页_gray_v2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/公用按钮组件/返回上一页_gray_v2.png -------------------------------------------------------------------------------- /assets/resource/base/image/公用按钮组件/邮件_主页.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/公用按钮组件/邮件_主页.png -------------------------------------------------------------------------------- /assets/resource/base/image/公用按钮组件/邮件_主页_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/公用按钮组件/邮件_主页_2.png -------------------------------------------------------------------------------- /assets/resource/base/image/其他/休息室.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/其他/休息室.png -------------------------------------------------------------------------------- /assets/resource/base/image/其他/好友班组动态.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/其他/好友班组动态.png -------------------------------------------------------------------------------- /assets/resource/base/image/其他/子群已完成.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/其他/子群已完成.png -------------------------------------------------------------------------------- /assets/resource/base/image/其他/巡录.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/其他/巡录.png -------------------------------------------------------------------------------- /assets/resource/base/image/启动游戏/SunbornGameLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/启动游戏/SunbornGameLogo.png -------------------------------------------------------------------------------- /assets/resource/base/image/启动游戏/适龄提示__1177_638_44_57__1127_588_144_132.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/启动游戏/适龄提示__1177_638_44_57__1127_588_144_132.png -------------------------------------------------------------------------------- /assets/resource/base/image/实兵演习/实兵演习.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/实兵演习/实兵演习.png -------------------------------------------------------------------------------- /assets/resource/base/image/实兵演习/实兵演习_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/实兵演习/实兵演习_green.png -------------------------------------------------------------------------------- /assets/resource/base/image/实兵演习/演习补给已领取.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/实兵演习/演习补给已领取.png -------------------------------------------------------------------------------- /assets/resource/base/image/实兵演习/演习补给待领取.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/实兵演习/演习补给待领取.png -------------------------------------------------------------------------------- /assets/resource/base/image/心智勘测/01守望者.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/心智勘测/01守望者.png -------------------------------------------------------------------------------- /assets/resource/base/image/心智勘测/02流浪的人.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/心智勘测/02流浪的人.png -------------------------------------------------------------------------------- /assets/resource/base/image/心智勘测/03限时替身.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/心智勘测/03限时替身.png -------------------------------------------------------------------------------- /assets/resource/base/image/心智勘测/04最后的命令.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/心智勘测/04最后的命令.png -------------------------------------------------------------------------------- /assets/resource/base/image/心智勘测/05乘于裙摆之上.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/心智勘测/05乘于裙摆之上.png -------------------------------------------------------------------------------- /assets/resource/base/image/心智勘测/06星点光芒闪耀时.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/心智勘测/06星点光芒闪耀时.png -------------------------------------------------------------------------------- /assets/resource/base/image/招募/常规采购标签_未选中.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/招募/常规采购标签_未选中.png -------------------------------------------------------------------------------- /assets/resource/base/image/招募/常规采购标签_选中.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/招募/常规采购标签_选中.png -------------------------------------------------------------------------------- /assets/resource/base/image/整备室/休息室按钮.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/整备室/休息室按钮.png -------------------------------------------------------------------------------- /assets/resource/base/image/整备室/换装室按钮.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/整备室/换装室按钮.png -------------------------------------------------------------------------------- /assets/resource/base/image/每日免费礼包/每周补给箱.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/每日免费礼包/每周补给箱.png -------------------------------------------------------------------------------- /assets/resource/base/image/每日免费礼包/每日补给箱.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/每日免费礼包/每日补给箱.png -------------------------------------------------------------------------------- /assets/resource/base/image/活动/信息核.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/活动/信息核.png -------------------------------------------------------------------------------- /assets/resource/base/image/活动/模拟习练_未激活.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/活动/模拟习练_未激活.png -------------------------------------------------------------------------------- /assets/resource/base/image/活动/模拟习练_激活.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/活动/模拟习练_激活.png -------------------------------------------------------------------------------- /assets/resource/base/image/活动/艾莫号许愿池提醒.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/活动/艾莫号许愿池提醒.png -------------------------------------------------------------------------------- /assets/resource/base/image/活动/通信中.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/活动/通信中.png -------------------------------------------------------------------------------- /assets/resource/base/image/活动/险境挖掘格子.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/活动/险境挖掘格子.png -------------------------------------------------------------------------------- /assets/resource/base/image/活动/预演奖励已领取.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/活动/预演奖励已领取.png -------------------------------------------------------------------------------- /assets/resource/base/image/活动层/内存条.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/活动层/内存条.png -------------------------------------------------------------------------------- /assets/resource/base/image/活动层/存量条.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/活动层/存量条.png -------------------------------------------------------------------------------- /assets/resource/base/image/活动层/战场报告.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/活动层/战场报告.png -------------------------------------------------------------------------------- /assets/resource/base/image/活动层/数据链路.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/活动层/数据链路.png -------------------------------------------------------------------------------- /assets/resource/base/image/活动层/星标.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/活动层/星标.png -------------------------------------------------------------------------------- /assets/resource/base/image/活动层/用餐效果.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/活动层/用餐效果.png -------------------------------------------------------------------------------- /assets/resource/base/image/活动层/茶歇一刻.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/活动层/茶歇一刻.png -------------------------------------------------------------------------------- /assets/resource/base/image/活动层/解析图纸.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/活动层/解析图纸.png -------------------------------------------------------------------------------- /assets/resource/base/image/活动层/转录导体.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/活动层/转录导体.png -------------------------------------------------------------------------------- /assets/resource/base/image/活动层/退出.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/活动层/退出.png -------------------------------------------------------------------------------- /assets/resource/base/image/活动层/逸趣导算.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/活动层/逸趣导算.png -------------------------------------------------------------------------------- /assets/resource/base/image/活动层/饮用效果.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/活动层/饮用效果.png -------------------------------------------------------------------------------- /assets/resource/base/image/版本活动/歧路物资5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/版本活动/歧路物资5.png -------------------------------------------------------------------------------- /assets/resource/base/image/班组/切换排序.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/班组/切换排序.png -------------------------------------------------------------------------------- /assets/resource/base/image/班组/切换编队.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/班组/切换编队.png -------------------------------------------------------------------------------- /assets/resource/base/image/班组/双生效.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/班组/双生效.png -------------------------------------------------------------------------------- /assets/resource/base/image/班组/奖励提醒1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/班组/奖励提醒1.png -------------------------------------------------------------------------------- /assets/resource/base/image/班组/本期生效1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/班组/本期生效1.png -------------------------------------------------------------------------------- /assets/resource/base/image/班组/本期生效2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/班组/本期生效2.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/班组商店/战场报告.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/班组商店/战场报告.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/班组商店/波波沙心智存档.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/班组商店/波波沙心智存档.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/班组商店/火控校准芯片.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/班组商店/火控校准芯片.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/班组商店/精密补给箱.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/班组商店/精密补给箱.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/班组商店/萨狄斯金.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/班组商店/萨狄斯金.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/班组商店/解析图纸.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/班组商店/解析图纸.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/班组商店/转录导体4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/班组商店/转录导体4.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/班组商店/转录导体5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/班组商店/转录导体5.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/班组商店/转录导体6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/班组商店/转录导体6.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/讯段交易/基原信息核.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/讯段交易/基原信息核.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/讯段交易/塞布丽娜心智存档.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/讯段交易/塞布丽娜心智存档.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/讯段交易/次世代内存条.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/讯段交易/次世代内存条.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/讯段交易/萨狄斯金.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/讯段交易/萨狄斯金.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/讯段交易/访问许可.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/讯段交易/访问许可.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/讯段交易/配件箱.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/讯段交易/配件箱.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/调度商店/奇忆甄选信念.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/调度商店/奇忆甄选信念.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/调度商店/奇忆甄选暗流.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/调度商店/奇忆甄选暗流.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/调度商店/奇忆甄选火线.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/调度商店/奇忆甄选火线.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/调度商店/存量条T2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/调度商店/存量条T2.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/调度商店/存量条T3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/调度商店/存量条T3.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/调度商店/存量条T4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/调度商店/存量条T4.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/调度商店/心意礼盒.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/调度商店/心意礼盒.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/调度商店/战场报告.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/调度商店/战场报告.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/调度商店/萨狄斯金.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/调度商店/萨狄斯金.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/调度商店/解析图纸.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/调度商店/解析图纸.png -------------------------------------------------------------------------------- /assets/resource/base/image/集中兑换/调度商店/访问许可.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/image/集中兑换/调度商店/访问许可.png -------------------------------------------------------------------------------- /assets/resource/base/model/ocr/README.md: -------------------------------------------------------------------------------- 1 | # PaddleOCR model 2 | 3 | 2025/05/31 4 | 5 | from and 6 | 7 | ## det model 8 | 9 | PP-OCRv5_mobile_det 10 | PP-OCRv5 的移动端文本检测模型,效率更高,适合在端侧设备部署 11 | 12 | 13 | 14 | ## rec model 15 | 16 | PP-OCRv5_mobile_rec 17 | PP-OCRv5_rec 是新一代文本识别模型。该模型致力于以单一模型高效、精准地支持简体中文、繁体中文、英文、日文四种主要语言,以及手写、竖版、拼音、生僻字等复杂文本场景的识别。在保持识别效果的同时,兼顾推理速度和模型鲁棒性,为各种场景下的文档理解提供高效、精准的技术支撑。 18 | 19 | 20 | 21 | ## rec label 22 | 23 | from `PP-OCRv5_mobile_rec_infer.tar/inference.yml` 24 | -------------------------------------------------------------------------------- /assets/resource/base/model/ocr/det.onnx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/model/ocr/det.onnx -------------------------------------------------------------------------------- /assets/resource/base/model/ocr/rec.onnx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/base/model/ocr/rec.onnx -------------------------------------------------------------------------------- /assets/resource/base/pipeline/TimeLimitedTasks/claimIntelligenceSupplyStaminaTask.json: -------------------------------------------------------------------------------- 1 | { 2 | "claimIntelligenceSupplyStaminaTaskTimed": { 3 | "doc": "限时任务次序:1 领取情报补给体力任务(限时)", 4 | "enabled": true, 5 | "recognition": "OCR", 6 | "expected": "^活动$", 7 | "action": "Click", 8 | "post_delay": 2500, 9 | "next": [ 10 | "intelligenceSupplyTabFound", 11 | "swipeToFindIntelligenceSupplyTab" 12 | ] 13 | }, 14 | "intelligenceSupplyTabFound": { 15 | "recognition": "OCR", 16 | "expected": "^情报补给$", 17 | "next": [ 18 | "clickIntelligenceSupplyTab" 19 | ] 20 | }, 21 | "swipeToFindIntelligenceSupplyTab": { 22 | "action": "Swipe", 23 | "begin": [164,533,49,33], 24 | "end": [181,129,34,28], 25 | "post_wait_freezes": 500, 26 | "next": [ 27 | "intelligenceSupplyTabFoundAfterSwipe", 28 | "exitIntelligenceSupply" 29 | ] 30 | }, 31 | "intelligenceSupplyTabFoundAfterSwipe": { 32 | "recognition": "OCR", 33 | "expected": "^情报补给$", 34 | "next": [ 35 | "clickIntelligenceSupplyTab" 36 | ] 37 | }, 38 | "clickIntelligenceSupplyTab": { 39 | "recognition": "OCR", 40 | "expected": "^情报补给$", 41 | "action": "Click", 42 | "post_delay": 2500, 43 | "next": [ 44 | "clickStaminaClaimButton", 45 | "exitIntelligenceSupply" 46 | ] 47 | }, 48 | "exitIntelligenceSupply": { 49 | "recognition": "TemplateMatch", 50 | "template": [ 51 | "公用按钮组件/关闭按钮_gray.png", 52 | "公用按钮组件/关闭按钮_black.png" 53 | ], 54 | "action": "Click", 55 | "post_wait_freezes": 500, 56 | "next": [ 57 | "intelligenceSupplyTaskEnd" 58 | ] 59 | }, 60 | "intelligenceSupplyTaskEnd": { 61 | "recognition": "OCR", 62 | "expected": "战役推进", 63 | "post_wait_freezes": 500, 64 | "next": [ 65 | "claimSevenDayCheckInResourceTaskTimed", 66 | "getNewEmails", 67 | "staminaReplenishment", 68 | "enterShop", 69 | "enterBoundaryAdvanceAction", 70 | "HomePage" 71 | ] 72 | }, 73 | "clickStaminaClaimButton": { 74 | "recognition": "OCR", 75 | "expected": "^领取$", 76 | "action": "Click", 77 | "post_delay": 2500, 78 | "next": [ 79 | "closeStaminaClaimResultPage" 80 | ] 81 | }, 82 | "closeStaminaClaimResultPage": { 83 | "recognition": "OCR", 84 | "expected": "空白", 85 | "action": "Click", 86 | "next": [ 87 | "closeStaminaClaimResultPage", 88 | "clickStaminaClaimButton", 89 | "exitIntelligenceSupply" 90 | ] 91 | } 92 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/TimeLimitedTasks/claimSevenDayCheckInResourceTask.json: -------------------------------------------------------------------------------- 1 | { 2 | "claimSevenDayCheckInResourceTaskTimed": { 3 | "doc": "限时任务次序:2 领取七日签到资源任务(限时)", 4 | "enabled": true, 5 | "recognition": "OCR", 6 | "expected": "^活动$", 7 | "action": "Click", 8 | "post_delay": 2500, 9 | "next": [ 10 | "clickSevenDayCheckInTab", 11 | "noSevenDayCheckInTab" 12 | ] 13 | }, 14 | "noSevenDayCheckInTab": { 15 | "inverse": true, 16 | "recognition": "OCR", 17 | "expected": "^战前补给$", 18 | "next": [ 19 | "noClaimButtonInSevenDayCheckIn" 20 | ] 21 | }, 22 | "clickSevenDayCheckInTab": { 23 | "recognition": "OCR", 24 | "expected": "^战前补给$", 25 | "action": "Click", 26 | "post_delay": 2500, 27 | "next": [ 28 | "clickSevenDayCheckInClaimButton", 29 | "noClaimButtonInSevenDayCheckIn" 30 | ] 31 | }, 32 | "noClaimButtonInSevenDayCheckIn": { 33 | "recognition": "TemplateMatch", 34 | "template": [ 35 | "公用按钮组件/关闭按钮_gray.png", 36 | "公用按钮组件/关闭按钮_black.png" 37 | ], 38 | "action": "Click", 39 | "post_delay": 2500, 40 | "next": [ 41 | "getNewEmails", 42 | "staminaReplenishment", 43 | "enterShop", 44 | "enterBoundaryAdvanceAction", 45 | "HomePage" 46 | ] 47 | }, 48 | "clickSevenDayCheckInClaimButton": { 49 | "recognition": "OCR", 50 | "expected": "^领取$", 51 | "action": "Click", 52 | "post_delay": 2500, 53 | "next": [ 54 | "closeSevenDayCheckInClaimResultPage" 55 | ] 56 | }, 57 | "closeSevenDayCheckInClaimResultPage": { 58 | "recognition": "OCR", 59 | "expected": "空白", 60 | "action": "Click", 61 | "next": [ 62 | "closeSevenDayCheckInClaimResultPage", 63 | "clickSevenDayCheckInClaimButton", 64 | "noClaimButtonInSevenDayCheckIn" 65 | ] 66 | } 67 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/AutoSweepBattle/popupAccessories.json: -------------------------------------------------------------------------------- 1 | { 2 | "sliderColorDetectionAccessories": { 3 | "doc": "滑动条颜色检测,检测到红色,值-1", 4 | "roi": [ 5 | 538, 6 | 444, 7 | 206, 8 | 109 9 | ], 10 | "upper": [ 11 | 255, 12 | 129, 13 | 113 14 | ], 15 | "lower": [ 16 | 200, 17 | 95, 18 | 64 19 | ], 20 | "recognition": "ColorMatch", 21 | "post_delay": 100, 22 | "next": [ 23 | "decreaseSliderAccessories" 24 | ] 25 | }, 26 | "increaseSliderAccessories": { 27 | "doc": "增加自律次数", 28 | "is_sub": true, 29 | "recognition": "TemplateMatch", 30 | "roi": [ 31 | 122, 32 | 88, 33 | 1037, 34 | 954 35 | ], 36 | "template": [ 37 | "公用按钮组件/滑动条值增加.png" 38 | ], 39 | "threshold": 0.9, 40 | "action": "Click", 41 | "post_delay": 100 42 | }, 43 | "decreaseSliderAccessories": { 44 | "doc": "减少自律次数", 45 | "recognition": "TemplateMatch", 46 | "roi": [ 47 | 122, 48 | 88, 49 | 1037, 50 | 954 51 | ], 52 | "template": [ 53 | "公用按钮组件/滑动条值减少.png" 54 | ], 55 | "threshold": 0.9, 56 | "action": "Click", 57 | "post_delay": 100, 58 | "next": [ 59 | "sliderColorDetectionAccessories", 60 | "scrollablePopupConfirmAccessories", 61 | "resultRecognitionAccessories" 62 | ] 63 | }, 64 | "resultRecognitionAccessories": { 65 | "recognition": "OCR", 66 | "expected": "点击空白处关闭", 67 | "post_delay": 1500, 68 | "next": [ 69 | "ClickResultRecognitionAccessories" 70 | ] 71 | }, 72 | "ClickResultRecognitionAccessories": { 73 | "target": [ 74 | 340, 75 | 430, 76 | 600, 77 | 260 78 | ], 79 | "action": "Click", 80 | "next": [ 81 | "exitAutoSweepBattleTask", 82 | "clickAutoSweepBattleSupplyOperationButton" 83 | ] 84 | }, 85 | "UserSetSliderValueAccessories": { 86 | "enabled": true, 87 | "recognition": "OCR", 88 | "roi": [ 89 | 607, 90 | 352, 91 | 70, 92 | 34 93 | ], 94 | "expected": "1", 95 | "next": [ 96 | "AutoSweepBattleSupplyOperationPrepareAccessoriesLimit", 97 | "scrollablePopupConfirmAccessories", 98 | "resultRecognitionAccessories" 99 | ] 100 | }, 101 | "increaseSliderMaxAccessories": { 102 | "doc": "检测滑动条是否最大值,配件精研不适用", 103 | "roi": [ 104 | 888, 105 | 431, 106 | 29, 107 | 28 108 | ], 109 | "upper": [ 110 | 130, 111 | 131, 112 | 135 113 | ], 114 | "lower": [ 115 | 129, 116 | 131, 117 | 135 118 | ], 119 | "recognition": "ColorMatch", 120 | "post_delay": 100, 121 | "next": [ 122 | "scrollablePopupConfirmAccessories", 123 | "resultRecognitionAccessories" 124 | ] 125 | }, 126 | "scrollablePopupConfirmAccessories": { 127 | "doc": "滑动条的弹窗用于自律,活动兑换物品的滑动弹窗不应该由脚本完成,因此点击确认后延迟3秒", 128 | "is_sub": true, 129 | "roi": [ 130 | 122, 131 | 88, 132 | 1037, 133 | 954 134 | ], 135 | "recognition": "OCR", 136 | "expected": "确认", 137 | "action": "Click", 138 | "post_delay": 4000 139 | }, 140 | "accessoriesPopupClose": { 141 | "doc": "当配件多次自律达到上限的时候,调用此方法关闭自律准备弹窗", 142 | "is_sub": true, 143 | "recognition": "TemplateMatch", 144 | "roi": [ 145 | 1092, 146 | 98, 147 | 48, 148 | 46 149 | ], 150 | "template": [ 151 | "公用按钮组件/关闭按钮_gray.png", 152 | "公用按钮组件/关闭按钮_black.png" 153 | ], 154 | "action": "Click" 155 | } 156 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/BulkExchangeTasks/BossChallengeExchange.json: -------------------------------------------------------------------------------- 1 | { 2 | "enterBossChallengeExchangeTask": { 3 | "doc": "进入讯段交易兑换任务", 4 | "enabled": true, 5 | "next": [ 6 | "clickBossChallengeExchangeTaskButton" 7 | ] 8 | }, 9 | "clickBossChallengeExchangeTaskButton": { 10 | "doc": "点击讯段交易兑换任务按钮", 11 | "recognition": "OCR", 12 | "expected": "^讯段交易$", 13 | "action": "Click", 14 | "roi": [ 15 | 242, 16 | 91, 17 | 1009, 18 | 623 19 | ], 20 | "post_wait_freezes": 1000, 21 | "next": [ 22 | "clickBossChallengeExchangeTaskButton", 23 | "selectBossChallengeItem", 24 | "BossChallengeBackToPreviousPage" 25 | ] 26 | }, 27 | "selectBossChallengeItem": { 28 | "doc": "选择讯段交易兑换商品", 29 | "recognition": "TemplateMatch", 30 | "template": [ 31 | "集中兑换/讯段交易/塞布丽娜心智存档.png", 32 | "集中兑换/讯段交易/访问许可.png", 33 | "集中兑换/讯段交易/基原信息核.png", 34 | "集中兑换/讯段交易/次世代内存条.png", 35 | "集中兑换/讯段交易/萨狄斯金.png" 36 | ], 37 | "threshold": 0.8, 38 | "roi": [ 39 | 234, 40 | 84, 41 | 1008, 42 | 299 43 | ], 44 | "order_by": "Horizontal", 45 | "action": "Click", 46 | "post_wait_freezes": 300, 47 | "next": [ 48 | "BossChallengeItemNotPurchasable", 49 | "BossChallengeSelectExchangeItemQuantity", 50 | "BossChallengeConfirmPurchaseItem", 51 | "selectBossChallengeItem", 52 | "BossChallengeBackToPreviousPage" 53 | ] 54 | }, 55 | "BossChallengeItemNotPurchasable": { 56 | "doc": "商品不可购买", 57 | "recognition": "ColorMatch", 58 | "roi": [ 59 | 550, 60 | 395, 61 | 178, 62 | 119 63 | ], 64 | "upper": [ 65 | 253, 66 | 114, 67 | 91 68 | ], 69 | "lower": [ 70 | 246, 71 | 101, 72 | 73 73 | ], 74 | "next": [ 75 | "BossChallengeExitItemExchange" 76 | ] 77 | }, 78 | "BossChallengeExitItemExchange": { 79 | "recognition": "OCR", 80 | "expected": "取消", 81 | "action": "Click", 82 | "post_delay": 2000, 83 | "next": [ 84 | "BossChallengeBackToPreviousPage" 85 | ] 86 | }, 87 | "BossChallengeBackToPreviousPage": { 88 | "recognition": "TemplateMatch", 89 | "roi": [ 90 | 0, 91 | 0, 92 | 200, 93 | 70 94 | ], 95 | "template": [ 96 | "公用按钮组件/返回上一页_gray.png", 97 | "公用按钮组件/返回上一页_black.png" 98 | ], 99 | "action": "Click", 100 | "post_delay": 1000, 101 | "next": [ 102 | "exitBossChallengeExchange" 103 | ] 104 | }, 105 | "BossChallengeSelectExchangeItemQuantity": { 106 | "doc": "选择商品兑换数量为最大", 107 | "recognition": "OCR", 108 | "expected": "最大", 109 | "action": "Click", 110 | "next": [ 111 | "BossChallengeConfirmPurchaseItem" 112 | ] 113 | }, 114 | "BossChallengeConfirmPurchaseItem": { 115 | "doc": "确认购买商品", 116 | "recognition": "OCR", 117 | "expected": "^(购买|确认)$", 118 | "action": "Click", 119 | "next": [ 120 | "BossChallengeCloseItemPurchaseResultPage" 121 | ] 122 | }, 123 | "BossChallengeCloseItemPurchaseResultPage": { 124 | "doc": "关闭商品购买结果页", 125 | "recognition": "OCR", 126 | "expected": "^点击", 127 | "action": "Click", 128 | "post_delay": 500, 129 | "next": [ 130 | "BossChallengeCloseItemPurchaseResultPage", 131 | "selectBossChallengeItem", 132 | "BossChallengeBackToPreviousPage" 133 | ] 134 | }, 135 | "exitBossChallengeExchange": { 136 | "doc": "结束任务,调用后续任务", 137 | "next": [ 138 | "returnToHomePage" 139 | ] 140 | } 141 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/BulkExchangeTasks/BulkExchangeGeneralTask/bulkExchangeGeneralTask.json: -------------------------------------------------------------------------------- 1 | { 2 | "bulkExchangeGeneralTask": { 3 | "doc": "批量兑换的通用逻辑任务(参考任务,不参与调用)", 4 | "next": [ 5 | "generalItemNotPurchasable", 6 | "generalSelectExchangeItemQuantity", 7 | "exitGeneralTask" 8 | ] 9 | }, 10 | "generalItemNotPurchasable": { 11 | "doc": "商品不可购买", 12 | "recognition": "ColorMatch", 13 | "roi": [ 14 | 550, 15 | 395, 16 | 178, 17 | 119 18 | ], 19 | "upper": [ 20 | 253, 21 | 114, 22 | 91 23 | ], 24 | "lower": [ 25 | 246, 26 | 101, 27 | 73 28 | ], 29 | "next": [ 30 | "generalExitItemExchange" 31 | ] 32 | }, 33 | "generalExitItemExchange": { 34 | "recognition": "OCR", 35 | "expected": "取消", 36 | "action": "Click", 37 | "post_delay": 2000, 38 | "next": [ 39 | "generalBackToPreviousPage" 40 | ] 41 | }, 42 | "generalBackToPreviousPage": { 43 | "recognition": "TemplateMatch", 44 | "roi": [ 45 | 0, 46 | 0, 47 | 200, 48 | 70 49 | ], 50 | "template": [ 51 | "公用按钮组件/返回上一页_gray.png", 52 | "公用按钮组件/返回上一页_black.png" 53 | ], 54 | "action": "Click", 55 | "post_delay": 1000, 56 | "next": [ 57 | "exitGeneralTask" 58 | ] 59 | }, 60 | "generalSelectExchangeItemQuantity": { 61 | "doc": "选择商品兑换数量为最大", 62 | "recognition": "OCR", 63 | "expected": "最大", 64 | "action": "Click", 65 | "next": [ 66 | "generalConfirmPurchaseItem" 67 | ] 68 | }, 69 | "generalConfirmPurchaseItem": { 70 | "doc": "确认购买商品", 71 | "recognition": "OCR", 72 | "expected": "^(购买|确认)$", 73 | "action": "Click", 74 | "next": [ 75 | "generalCloseItemPurchaseResultPage" 76 | ] 77 | }, 78 | "generalCloseItemPurchaseResultPage": { 79 | "doc": "关闭商品购买结果页", 80 | "recognition": "OCR", 81 | "expected": "^点击", 82 | "action": "Click", 83 | "post_delay": 1500, 84 | "next": [ 85 | "generalCloseItemPurchaseResultPage", 86 | "exitGeneralTask" 87 | ] 88 | }, 89 | "exitGeneralTask": { 90 | "doc": "结束任务" 91 | } 92 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/BulkExchangeTasks/dispatchCenterExchange.json: -------------------------------------------------------------------------------- 1 | { 2 | "enterdispatchCenterExchangeTask": { 3 | "doc": "进入调度商店兑换任务", 4 | "enabled": true, 5 | "next": [ 6 | "clickdispatchCenterExchangeTaskButton" 7 | ] 8 | }, 9 | "clickdispatchCenterExchangeTaskButton": { 10 | "doc": "点击调度商店兑换任务按钮", 11 | "recognition": "OCR", 12 | "expected": "^调度商店$", 13 | "action": "Click", 14 | "roi": [ 15 | 242, 16 | 91, 17 | 1009, 18 | 623 19 | ], 20 | "post_wait_freezes": 1000, 21 | "next": [ 22 | "clickdispatchCenterExchangeTaskButton", 23 | "selectdispatchCenterItem", 24 | "滑动寻找更多调度商店物品", 25 | "dispatchCenterBackToPreviousPage" 26 | ] 27 | }, 28 | "selectdispatchCenterItem": { 29 | "doc": "选择调度商店兑换商品", 30 | "recognition": "TemplateMatch", 31 | "template": [ 32 | "集中兑换/调度商店/访问许可.png", 33 | "集中兑换/调度商店/心意礼盒.png", 34 | "集中兑换/调度商店/存量条T2.png", 35 | "集中兑换/调度商店/存量条T3.png", 36 | "集中兑换/调度商店/存量条T4.png", 37 | "集中兑换/调度商店/战场报告.png", 38 | "集中兑换/调度商店/萨狄斯金.png", 39 | "集中兑换/调度商店/解析图纸.png", 40 | "集中兑换/调度商店/奇忆甄选暗流.png", 41 | "集中兑换/调度商店/奇忆甄选火线.png", 42 | "集中兑换/调度商店/奇忆甄选信念.png" 43 | ], 44 | "threshold": 0.87, 45 | "roi": [ 46 | 270, 47 | 108, 48 | 945, 49 | 611 50 | ], 51 | "action": "Click", 52 | "post_wait_freezes": 300, 53 | "next": [ 54 | "dispatchCenterItemNotPurchasable", 55 | "dispatchCenterSelectExchangeItemQuantity", 56 | "dispatchCenterConfirmPurchaseItem", 57 | "selectdispatchCenterItem", 58 | "dispatchCenterBackToPreviousPage" 59 | ] 60 | }, 61 | "滑动寻找更多调度商店物品": { 62 | "action": "Swipe", 63 | "begin": [ 64 | 767, 65 | 647, 66 | 26, 67 | 2 68 | ], 69 | "end": [ 70 | 767, 71 | 147, 72 | 26, 73 | 2 74 | ], 75 | "post_wait_freezes": 500, 76 | "next": [ 77 | "selectdispatchCenterItem", 78 | "dispatchCenterBackToPreviousPage" 79 | ] 80 | }, 81 | "dispatchCenterItemNotPurchasable": { 82 | "doc": "商品不可购买", 83 | "recognition": "ColorMatch", 84 | "roi": [ 85 | 550, 86 | 395, 87 | 178, 88 | 119 89 | ], 90 | "upper": [ 91 | 253, 92 | 114, 93 | 91 94 | ], 95 | "lower": [ 96 | 246, 97 | 101, 98 | 73 99 | ], 100 | "next": [ 101 | "dispatchCenterExitItemExchange" 102 | ] 103 | }, 104 | "dispatchCenterExitItemExchange": { 105 | "recognition": "OCR", 106 | "expected": "取消", 107 | "action": "Click", 108 | "post_delay": 2000, 109 | "next": [ 110 | "dispatchCenterBackToPreviousPage" 111 | ] 112 | }, 113 | "dispatchCenterBackToPreviousPage": { 114 | "recognition": "TemplateMatch", 115 | "roi": [ 116 | 0, 117 | 0, 118 | 200, 119 | 70 120 | ], 121 | "template": [ 122 | "公用按钮组件/返回上一页_gray.png", 123 | "公用按钮组件/返回上一页_black.png" 124 | ], 125 | "action": "Click", 126 | "post_delay": 1000, 127 | "next": [ 128 | "exitdispatchCenterExchange" 129 | ] 130 | }, 131 | "dispatchCenterSelectExchangeItemQuantity": { 132 | "doc": "选择商品兑换数量为最大", 133 | "recognition": "OCR", 134 | "expected": "最大", 135 | "action": "Click", 136 | "next": [ 137 | "dispatchCenterConfirmPurchaseItem" 138 | ] 139 | }, 140 | "dispatchCenterConfirmPurchaseItem": { 141 | "doc": "确认购买商品", 142 | "recognition": "OCR", 143 | "expected": "^(购买|确认)$", 144 | "action": "Click", 145 | "next": [ 146 | "dispatchCenterCloseItemPurchaseResultPage" 147 | ] 148 | }, 149 | "dispatchCenterCloseItemPurchaseResultPage": { 150 | "doc": "关闭商品购买结果页", 151 | "recognition": "OCR", 152 | "expected": "^点击", 153 | "action": "Click", 154 | "post_delay": 500, 155 | "next": [ 156 | "dispatchCenterCloseItemPurchaseResultPage", 157 | "selectdispatchCenterItem", 158 | "滑动寻找更多调度商店物品", 159 | "dispatchCenterBackToPreviousPage" 160 | ] 161 | }, 162 | "exitdispatchCenterExchange": { 163 | "doc": "结束任务,调用后续任务", 164 | "next": [ 165 | "enterBossChallengeExchangeTask", 166 | "returnToHomePage" 167 | ] 168 | } 169 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/BulkExchangeTasks/guildExchange.json: -------------------------------------------------------------------------------- 1 | { 2 | "enterPlatoonExchangeTask": { 3 | "doc": "进入公会兑换任务", 4 | "enabled": false, 5 | "next": [ 6 | "clickPlatoonExchangeTaskButton" 7 | ] 8 | }, 9 | "clickPlatoonExchangeTaskButton": { 10 | "doc": "点击公会兑换任务按钮", 11 | "recognition": "OCR", 12 | "expected": "^班组商店$", 13 | "action": "Click", 14 | "roi": [ 15 | 242, 16 | 91, 17 | 1009, 18 | 623 19 | ], 20 | "post_wait_freezes": 1000, 21 | "next": [ 22 | "clickPlatoonExchangeTaskButton", 23 | "selectPlatoonItem", 24 | "PlatoonBackToPreviousPage" 25 | ] 26 | }, 27 | "selectPlatoonItem": { 28 | "doc": "选择公会兑换商品", 29 | "recognition": "TemplateMatch", 30 | "template": [ 31 | "集中兑换/班组商店/波波沙心智存档.png", 32 | "集中兑换/班组商店/火控校准芯片.png" 33 | ], 34 | "threshold": 0.87, 35 | "roi": [ 36 | 270, 37 | 108, 38 | 945, 39 | 611 40 | ], 41 | "action": "Click", 42 | "post_wait_freezes": 300, 43 | "next": [ 44 | "PlatoonItemNotPurchasable", 45 | "PlatoonSelectExchangeItemQuantity", 46 | "PlatoonConfirmPurchaseItem", 47 | "selectPlatoonItem", 48 | "PlatoonBackToPreviousPage" 49 | ] 50 | }, 51 | "PlatoonItemNotPurchasable": { 52 | "doc": "商品不可购买", 53 | "recognition": "ColorMatch", 54 | "roi": [ 55 | 550, 56 | 395, 57 | 178, 58 | 119 59 | ], 60 | "upper": [ 61 | 253, 62 | 114, 63 | 91 64 | ], 65 | "lower": [ 66 | 246, 67 | 101, 68 | 73 69 | ], 70 | "next": [ 71 | "PlatoonExitItemExchange" 72 | ] 73 | }, 74 | "PlatoonExitItemExchange": { 75 | "recognition": "OCR", 76 | "expected": "取消", 77 | "action": "Click", 78 | "post_delay": 2000, 79 | "next": [ 80 | "PlatoonBackToPreviousPage" 81 | ] 82 | }, 83 | "PlatoonBackToPreviousPage": { 84 | "recognition": "TemplateMatch", 85 | "roi": [ 86 | 0, 87 | 0, 88 | 200, 89 | 70 90 | ], 91 | "template": [ 92 | "公用按钮组件/返回上一页_gray.png", 93 | "公用按钮组件/返回上一页_black.png" 94 | ], 95 | "action": "Click", 96 | "post_delay": 1000, 97 | "next": [ 98 | "exitPlatoonExchange" 99 | ] 100 | }, 101 | "PlatoonSelectExchangeItemQuantity": { 102 | "doc": "选择商品兑换数量为最大", 103 | "recognition": "OCR", 104 | "expected": "最大", 105 | "action": "Click", 106 | "next": [ 107 | "PlatoonConfirmPurchaseItem" 108 | ] 109 | }, 110 | "PlatoonConfirmPurchaseItem": { 111 | "doc": "确认购买商品", 112 | "recognition": "OCR", 113 | "expected": "^(购买|确认)$", 114 | "action": "Click", 115 | "next": [ 116 | "PlatoonCloseItemPurchaseResultPage" 117 | ] 118 | }, 119 | "PlatoonCloseItemPurchaseResultPage": { 120 | "doc": "关闭商品购买结果页", 121 | "recognition": "OCR", 122 | "expected": "^点击", 123 | "action": "Click", 124 | "post_delay": 500, 125 | "next": [ 126 | "PlatoonCloseItemPurchaseResultPage", 127 | "selectPlatoonItem", 128 | "PlatoonBackToPreviousPage" 129 | ] 130 | }, 131 | "exitPlatoonExchange": { 132 | "doc": "结束任务,调用后续任务", 133 | "next": [ 134 | "enterdispatchCenterExchangeTask", 135 | "enterBossChallengeExchangeTask", 136 | "returnToHomePage" 137 | ] 138 | } 139 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/ClaimRewardTasks/commission.json: -------------------------------------------------------------------------------- 1 | { 2 | "enterCommissionToClaimTask": { 3 | "doc": "进入委托领取任务", 4 | "enabled": true, 5 | "recognition": "OCR", 6 | "expected": "^委托", // 有时候会识别成"委托、" 7 | "roi": [ 8 | 370, 9 | 582, 10 | 909, 11 | 137 12 | ], 13 | "action": "Click", 14 | "post_wait_freezes": 500, 15 | "next": [ 16 | "confirmEntrustedClaimPage" 17 | ] 18 | }, 19 | "confirmEntrustedClaimPage": { 20 | "doc": "确认进入委托领取页面", 21 | "recognition": "OCR", 22 | "expected": [ 23 | "日活跃", 24 | "每日订单" 25 | ], 26 | "post_wait_freezes": 500, 27 | "next": [ 28 | "oneKeyClaimCommissionReward", 29 | "claimDailyActiveCommissionReward", 30 | "enterJourneyWitnessTab" 31 | ] 32 | }, 33 | "oneKeyClaimCommissionReward": { 34 | "doc": "一键领取委托奖励", 35 | "recognition": "OCR", 36 | "expected": "键领取", 37 | "action": "Click", 38 | "post_wait_freezes": 1500, 39 | "next": [ 40 | "oneKeyClaimCommissionReward", 41 | "claimDailyActiveCommissionReward", 42 | "enterJourneyWitnessTab" 43 | ] 44 | }, 45 | "claimDailyActiveCommissionReward": { 46 | "doc": "领取委托日活跃报酬", 47 | "recognition": "OCR", 48 | "expected": "领取全部", 49 | "action": "Click", 50 | "post_wait_freezes": 500, 51 | "next": [ 52 | "closeCommissionRewardResultPage", 53 | "oneKeyClaimCommissionReward" 54 | ] 55 | }, 56 | "closeCommissionRewardResultPage": { 57 | "doc": "关闭领取委托奖励结果页", 58 | "recognition": "OCR", 59 | "expected": "点击空白处关闭", 60 | "action": "Click", 61 | "post_wait_freezes": 500, 62 | "next": [ 63 | "closeCommissionRewardResultPage", 64 | "enterJourneyWitnessTab" 65 | ] 66 | }, 67 | "enterJourneyWitnessTab": { 68 | "doc": "进入危途见证", 69 | "recognition": "OCR", 70 | "roi": [ 71 | 516, 72 | 16, 73 | 748, 74 | 62 75 | ], 76 | "expected": "危途见证", 77 | "action": "Click", 78 | "post_wait_freezes": 500, 79 | "next": [ 80 | "claimJourneyWitnessReward", 81 | "enterJourneyMileStoneTab" 82 | ] 83 | }, 84 | "claimJourneyWitnessReward": { 85 | "doc": "领取危途见证奖励", 86 | "recognition": "OCR", 87 | "expected": "键领取", 88 | "action": "Click", 89 | "post_wait_freezes": 500, 90 | "next": [ 91 | "closeClaimJourneyWitnessRewardResultPage" 92 | ] 93 | }, 94 | "closeClaimJourneyWitnessRewardResultPage": { 95 | "doc": "关闭领取危途见证奖励结果页", 96 | "recognition": "OCR", 97 | "expected": "点击空白处关闭", 98 | "action": "Click", 99 | "next": [ 100 | "closeClaimJourneyWitnessRewardResultPage", 101 | "enterJourneyMileStoneTab" 102 | ] 103 | }, 104 | "enterJourneyMileStoneTab": { 105 | "doc": "进入征程丰碑", 106 | "recognition": "OCR", 107 | "roi": [ 108 | 516, 109 | 16, 110 | 748, 111 | 62 112 | ], 113 | "expected": "征程丰碑", 114 | "action": "Click", 115 | "post_wait_freezes": 500, 116 | "next": [ 117 | "claimJourneyMileStoneReward", 118 | "exitCommissionPage" 119 | ] 120 | }, 121 | "claimJourneyMileStoneReward": { 122 | "doc": "领取征程丰碑奖励", 123 | "recognition": "OCR", 124 | "expected": "键领取", 125 | "action": "Click", 126 | "post_wait_freezes": 500, 127 | "next": [ 128 | "closeClaimJourneyMileStoneRewardResultPage" 129 | ] 130 | }, 131 | "closeClaimJourneyMileStoneRewardResultPage": { 132 | "doc": "关闭领取征程丰碑奖励结果页", 133 | "recognition": "OCR", 134 | "expected": "点击空白处关闭", 135 | "action": "Click", 136 | "next": [ 137 | "closeClaimJourneyMileStoneRewardResultPage", 138 | "exitCommissionPage" 139 | ] 140 | }, 141 | "exitCommissionPage": { 142 | "recognition": "TemplateMatch", 143 | "template": [ 144 | "公用按钮组件/主页按钮_gray.png", 145 | "公用按钮组件/主页按钮_black.png" 146 | ], 147 | "action": "Click", 148 | "next": [ 149 | "commissionPageExited", 150 | "exitCommissionPage" 151 | ] 152 | }, 153 | "commissionPageExited": { 154 | "doc": "已退出到主界面", 155 | "recognition": "OCR", 156 | "expected": [ 157 | "战役推进" 158 | ], 159 | "next": [ 160 | "enterPassToClaimTask", 161 | "enterPersonalInformationPage", 162 | "enterDangerousExcavation", 163 | "enterTrial", 164 | "开始动态招募祝福任务", 165 | "开始暗香赠礼任务", 166 | "开始艾莫号许愿池任务", 167 | "开始模拟习练任务", 168 | "HomePage" 169 | ] 170 | } 171 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/ClaimRewardTasks/supportDollRewards.json: -------------------------------------------------------------------------------- 1 | { 2 | "enterPersonalInformationPage": { 3 | "doc": "进入个人信息", 4 | "enabled": true, 5 | "recognition": "TemplateMatch", 6 | "template": "公用按钮组件/个人信息.png", 7 | "action": "Click", 8 | "post_wait_freezes": 1500, 9 | "next": [ 10 | "personalInformationPageEntered", 11 | "enterPersonalInformationPage" 12 | ] 13 | }, 14 | "personalInformationPageEntered": { 15 | "doc": "已进入个人信息", 16 | "recognition": "OCR", 17 | "expected": "个人信息", 18 | "next": [ 19 | "claimSupportDollRewards", 20 | "exitPersonalInformationPage" 21 | ] 22 | }, 23 | "claimSupportDollRewards": { 24 | "doc": "领取助战人形奖励", 25 | "recognition": "TemplateMatch", 26 | "template": "个人信息/领取.png", 27 | "action": "Click", 28 | "post_wait_freezes": 500, 29 | "next": [ 30 | "closeClaimResult", 31 | "claimSupportDollRewards", 32 | "claimResultClosed" 33 | ] 34 | }, 35 | "closeClaimResult":{ 36 | "doc": "关闭领取结果", 37 | "recognition": "OCR", 38 | "expected": "点击空白处关闭", 39 | "action": "Click", 40 | "post_wait_freezes": 500, 41 | "next": [ 42 | "claimResultClosed", 43 | "closeClaimResult" 44 | ] 45 | }, 46 | "claimResultClosed":{ 47 | "doc": "结果关闭,已回到个人信息页", 48 | "recognition": "OCR", 49 | "expected": "个人信息", 50 | "next": [ 51 | "exitPersonalInformationPage" 52 | ] 53 | }, 54 | "exitPersonalInformationPage": { 55 | "recognition": "TemplateMatch", 56 | "template": [ 57 | "公用按钮组件/主页按钮_gray.png", 58 | "公用按钮组件/主页按钮_black.png" 59 | ], 60 | "action": "Click", 61 | "post_wait_freezes": 500, 62 | "next": [ 63 | "personalInformationPageExited", 64 | "exitPersonalInformationPage" 65 | ] 66 | }, 67 | "personalInformationPageExited": { 68 | "doc": "已退出到主界面", 69 | "recognition": "OCR", 70 | "expected": [ 71 | "战役推进" 72 | ], 73 | "next": [ 74 | "enterDangerousExcavation", 75 | "enterTrial", 76 | "开始动态招募祝福任务", 77 | "开始暗香赠礼任务", 78 | "开始艾莫号许愿池任务", 79 | "开始模拟习练任务", 80 | "HomePage" 81 | ] 82 | } 83 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/ClaimRewardTasks/trial.json: -------------------------------------------------------------------------------- 1 | { 2 | "enterTrial": { 3 | "doc": "进入预演(人形试用)", 4 | "enabled": true, 5 | "next": [ 6 | "enterEventPageForTrial" 7 | ] 8 | }, 9 | "enterEventPageForTrial": { 10 | "doc": "进入活动页面", 11 | "recognition": "OCR", 12 | "expected": [ 13 | "活动" 14 | ], 15 | "post_wait_freezes": 500, 16 | "action": "Click", 17 | "next": [ 18 | "trialFound", 19 | "swipeToFindTrial" 20 | ] 21 | }, 22 | "trialFound": { 23 | "doc": "已找到预演,没打过的会排在第一个", 24 | "recognition": "OCR", 25 | "expected": [ 26 | "预演" 27 | ], 28 | "post_wait_freezes": 500, 29 | "action": "Click", 30 | "order_by": "Vertical", 31 | "next": [ 32 | "clickTrialTab" 33 | ] 34 | }, 35 | "swipeToFindTrial": { 36 | "doc": "滑动活动标签页,预演可能被藏在下面了", 37 | "action": "Swipe", 38 | "begin": [ 39 | 164, 40 | 533, 41 | 49, 42 | 33 43 | ], 44 | "end": [ 45 | 181, 46 | 129, 47 | 34, 48 | 28 49 | ], 50 | "post_wait_freezes": 500, 51 | "next": [ 52 | "trialFoundAfterSwipe", 53 | "exitEventPageInTrial" 54 | ] 55 | }, 56 | "trialFoundAfterSwipe": { 57 | "doc": "滑动后发现预演", 58 | "recognition": "OCR", 59 | "expected": [ 60 | "预演" 61 | ], 62 | "post_wait_freezes": 500, 63 | "next": [ 64 | "clickTrialTab" 65 | ] 66 | }, 67 | "clickTrialTab": { 68 | "doc": "点击预演", 69 | "recognition": "OCR", 70 | "expected": [ 71 | "预演" 72 | ], 73 | "post_wait_freezes": 500, 74 | "action": "Click", 75 | "order_by": "Vertical", 76 | "next": [ 77 | "trialTabClicked" 78 | ] 79 | }, 80 | "trialTabClicked": { 81 | "doc": "预演页签已点击", 82 | "recognition": "OCR", 83 | "roi": [ 84 | 391, 85 | 105, 86 | 877, 87 | 515 88 | ], 89 | "expected": [ 90 | "预演" 91 | ], 92 | "post_wait_freezes": 500, 93 | "next": [ 94 | "trialRewardClaimed", 95 | "trialRewardNotClaimed" 96 | ] 97 | }, 98 | "trialRewardClaimed": { 99 | "doc": "预演奖励已领取", 100 | "recognition": "TemplateMatch", 101 | "template": "活动/预演奖励已领取.png", 102 | "post_wait_freezes": 500, 103 | "threshold": 0.95, 104 | "next": [ 105 | "exitEventPageInTrial" 106 | ] 107 | }, 108 | "trialRewardNotClaimed": { 109 | "doc": "预演奖励未领取", 110 | "next": [ 111 | "autoBattleForTrial" 112 | ] 113 | }, 114 | "autoBattleForTrial": { 115 | "doc": "开始自动战斗", 116 | "recognition": "OCR", 117 | "expected": [ 118 | "前往" 119 | ], 120 | "post_wait_freezes": 500, 121 | "action": "Click", 122 | "next": [ 123 | "exitEventPageInTrial" 124 | ], 125 | "interrupt": [ 126 | "通用战斗任务开始" 127 | ] 128 | }, 129 | "exitEventPageInTrial": { 130 | "doc": "退出活动页面", 131 | "recognition": "TemplateMatch", 132 | "template": [ 133 | "公用按钮组件/关闭按钮_gray.png", 134 | "公用按钮组件/关闭按钮_black.png" 135 | ], 136 | "action": "Click", 137 | "post_wait_freezes": 500, 138 | "next": [ 139 | "trialTaskEnd", 140 | "exitEventPageInTrial" 141 | ] 142 | }, 143 | "trialTaskEnd": { 144 | "doc": "预演任务已结束", 145 | "recognition": "OCR", 146 | "expected": [ 147 | "战役推进" 148 | ], 149 | "next": [ 150 | "开始动态招募祝福任务", 151 | "开始暗香赠礼任务", 152 | "开始艾莫号许愿池任务", 153 | "开始模拟习练任务", 154 | "HomePage" 155 | ] 156 | } 157 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/ClaimRewardTasks/动态招募祝福.json: -------------------------------------------------------------------------------- 1 | { 2 | "开始动态招募祝福任务": { 3 | "next": [ 4 | "确认当前在主页-动态招募祝福" 5 | ] 6 | }, 7 | "确认当前在主页-动态招募祝福": { 8 | "recognition": "OCR", 9 | "expected": [ 10 | "战役推进" 11 | ], 12 | "post_wait_freezes": 500, 13 | "next": [ 14 | "进入好友班组动态界面" 15 | ] 16 | }, 17 | "进入好友班组动态界面": { 18 | "recognition": "TemplateMatch", 19 | "template": [ 20 | "其他/好友班组动态.png" 21 | ], 22 | "green_mask": true, 23 | "action": "Click", 24 | "post_wait_freezes": 500, 25 | "next": [ 26 | "切换到动态标签页" 27 | ] 28 | }, 29 | "切换到动态标签页": { 30 | "recognition": "OCR", 31 | "expected": [ 32 | "动态" 33 | ], 34 | "roi": [795,8,458,56], 35 | "action": "Click", 36 | "post_wait_freezes": 500, 37 | "next": [ 38 | "确认进入动态祝福页", 39 | "切换到动态标签页" 40 | ] 41 | }, 42 | "确认进入动态祝福页": { 43 | "recognition": "OCR", 44 | "expected": "每日祝福次数", 45 | "roi": [58,643,141,43], 46 | "next": [ 47 | "点击一键祝福", 48 | "返回主页-动态招募祝福" 49 | ] 50 | }, 51 | "点击一键祝福": { 52 | "recognition": "OCR", 53 | "expected": [ 54 | "键祝福" 55 | ], 56 | "action": "Click", 57 | "post_wait_freezes": 500, 58 | "next": [ 59 | "关闭奖励页面-动态招募祝福" 60 | ] 61 | }, 62 | "关闭奖励页面-动态招募祝福": { 63 | "recognition": "OCR", 64 | "expected": [ 65 | "点击空白处关闭" 66 | ], 67 | "action": "Click", 68 | "post_wait_freezes": 500, 69 | "next": [ 70 | "返回主页-动态招募祝福" 71 | ] 72 | }, 73 | "返回主页-动态招募祝福": { 74 | "recognition": "TemplateMatch", 75 | "template": [ 76 | "公用按钮组件/主页按钮_black.png", 77 | "公用按钮组件/主页按钮_gray.png" 78 | ], 79 | "action": "Click", 80 | "post_wait_freezes": 500, 81 | "next": [ 82 | "任务已结束-动态招募祝福" 83 | ] 84 | }, 85 | "任务已结束-动态招募祝福": { 86 | "recognition": "OCR", 87 | "expected": [ 88 | "战役推进" 89 | ], 90 | "post_wait_freezes": 500, 91 | "next": [ 92 | "开始暗香赠礼任务", 93 | "开始艾莫号许愿池任务", 94 | "开始模拟习练任务", 95 | "HomePage" 96 | ] 97 | } 98 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/ClaimRewardTasks/艾莫号许愿池.json: -------------------------------------------------------------------------------- 1 | { 2 | "开始艾莫号许愿池任务": { 3 | "next": [ 4 | "确认当前在主页-艾莫号许愿池" 5 | ] 6 | }, 7 | "确认当前在主页-艾莫号许愿池": { 8 | "recognition": "OCR", 9 | "expected": [ 10 | "战役推进" 11 | ], 12 | "post_wait_freezes": 500, 13 | "next": [ 14 | "进入活动页面-艾莫号许愿池" 15 | ] 16 | }, 17 | "进入活动页面-艾莫号许愿池": { 18 | "recognition": "OCR", 19 | "expected": [ 20 | "^活动$" 21 | ], 22 | "post_wait_freezes": 500, 23 | "action": "Click", 24 | "next": [ 25 | "发现艾莫号许愿池", 26 | "滑动寻找艾莫号许愿池" 27 | ] 28 | }, 29 | "发现艾莫号许愿池": { 30 | "recognition": "OCR", 31 | "expected": [ 32 | "艾莫号许愿池" 33 | ], 34 | "post_wait_freezes": 500, 35 | "next": [ 36 | "点击艾莫号许愿池标签页" 37 | ] 38 | }, 39 | "滑动寻找艾莫号许愿池": { 40 | "action": "Swipe", 41 | "begin": [ 42 | 164, 43 | 533, 44 | 49, 45 | 33 46 | ], 47 | "end": [ 48 | 181, 49 | 129, 50 | 34, 51 | 28 52 | ], 53 | "post_wait_freezes": 500, 54 | "next": [ 55 | "滑动后发现艾莫号许愿池", 56 | "退出活动页面-艾莫号许愿池" 57 | ] 58 | }, 59 | "滑动后发现艾莫号许愿池": { 60 | "recognition": "OCR", 61 | "expected": [ 62 | "艾莫号许愿池" 63 | ], 64 | "post_wait_freezes": 500, 65 | "next": [ 66 | "点击艾莫号许愿池标签页" 67 | ] 68 | }, 69 | "点击艾莫号许愿池标签页": { 70 | "recognition": "OCR", 71 | "action": "Click", 72 | "expected": [ 73 | "艾莫号许愿池" 74 | ], 75 | "post_wait_freezes": 500, 76 | "next": [ 77 | "进入艾莫号许愿池页面" 78 | ] 79 | }, 80 | "进入艾莫号许愿池页面": { 81 | "recognition": "OCR", 82 | "expected": [ 83 | "前往" 84 | ], 85 | "action": "Click", 86 | "post_wait_freezes": 500, 87 | "next": [ 88 | "已进入艾莫号许愿池页面" 89 | ] 90 | }, 91 | "已进入艾莫号许愿池页面": { 92 | "post_wait_freezes": 500, 93 | "next": [ 94 | "发现艾莫号许愿池提醒", 95 | "返回活动页面-艾莫号许愿池" 96 | ] 97 | }, 98 | "返回活动页面-艾莫号许愿池": { 99 | "recognition": "TemplateMatch", 100 | "template": [ 101 | "公用按钮组件/返回上一页_black_v2.png", 102 | "公用按钮组件/返回上一页_gray_v2.png" 103 | ], 104 | "green_mask": true, 105 | "post_wait_freezes": 500, 106 | "action": "Click", 107 | "next": [ 108 | "退出活动页面-艾莫号许愿池" 109 | ] 110 | }, 111 | "发现艾莫号许愿池提醒": { 112 | "recognition": "TemplateMatch", 113 | "template": "活动/艾莫号许愿池提醒.png", 114 | "action": "Click", 115 | "green_mask": true, 116 | "post_wait_freezes": 500, 117 | "next": [ 118 | "领取奖励-艾莫号许愿池", 119 | "返回活动页面-艾莫号许愿池" 120 | ] 121 | }, 122 | "领取奖励-艾莫号许愿池": { 123 | "recognition": "OCR", 124 | "expected": [ 125 | "领取奖励" 126 | ], 127 | "action": "Click", 128 | "post_wait_freezes": 500, 129 | "next": [ 130 | "关闭领取结果-艾莫号许愿池" 131 | ] 132 | }, 133 | "关闭领取结果-艾莫号许愿池": { 134 | "recognition": "OCR", 135 | "expected": [ 136 | "点击空白处关闭" 137 | ], 138 | "action": "Click", 139 | "post_wait_freezes": 500, 140 | "next": [ 141 | "已进入艾莫号许愿池页面" 142 | ] 143 | }, 144 | "退出活动页面-艾莫号许愿池": { 145 | "recognition": "TemplateMatch", 146 | "template": [ 147 | "公用按钮组件/关闭按钮_gray.png", 148 | "公用按钮组件/关闭按钮_black.png" 149 | ], 150 | "action": "Click", 151 | "post_wait_freezes": 500, 152 | "next": [ 153 | "艾莫号许愿池任务结束", 154 | "退出活动页面-艾莫号许愿池" 155 | ] 156 | }, 157 | "艾莫号许愿池任务结束": { 158 | "recognition": "OCR", 159 | "expected": [ 160 | "战役推进" 161 | ], 162 | "next": [ 163 | "开始模拟习练任务", 164 | "HomePage" 165 | ] 166 | } 167 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/PlatoonTasks/gunsmokeFrontlineLogic.json: -------------------------------------------------------------------------------- 1 | { 2 | "clickGunsmokeFrontlineCombatStartButton": { 3 | "doc": "点击尘烟前线战斗开始按钮", 4 | "recognition": "OCR", 5 | "expected": "作战开始", 6 | "action": "Click", 7 | "next": [ 8 | "clickGunsmokeFrontlineCombatStartButton", 9 | "enableGunsmokeFrontlineCombatAutoBattle", 10 | "waitForGunsmokeFrontlineCombatToEnd" 11 | ] 12 | }, 13 | "enableGunsmokeFrontlineCombatAutoBattle": { 14 | "doc": "点击尘烟前线自动战斗按钮", 15 | "recognition": "ColorMatch", 16 | "connected": true, 17 | "count": 55, 18 | "roi": [ 19 | 1069, 20 | 25, 21 | 35, 22 | 27 23 | ], 24 | "upper": [ 25 | 210, 26 | 210, 27 | 210 28 | ], 29 | "lower": [ 30 | 150, 31 | 150, 32 | 150 33 | ], 34 | "action": "Click", 35 | "next": [ 36 | "enableGunsmokeFrontlineCombatAutoBattle", 37 | "waitForGunsmokeFrontlineCombatToEnd" 38 | ] 39 | }, 40 | "waitForGunsmokeFrontlineCombatToEnd": { 41 | "doc": "等待尘烟前线日常自动战斗结束", 42 | "post_wait_freezes": { 43 | "time": 2500, 44 | "threshold": 0.8 45 | }, 46 | "next": [ 47 | "gunsmokeFrontlineCombatTaskCompleted", 48 | "enableGunsmokeFrontlineCombatAutoBattle", 49 | "waitForGunsmokeFrontlineCombatToEnd" 50 | ] 51 | }, 52 | "gunsmokeFrontlineCombatTaskCompleted": { 53 | "doc": "尘烟前线日常任务完成", 54 | "recognition": "OCR", 55 | "expected": "任务完成", 56 | "action": "Click", 57 | "post_wait_freezes": 300, 58 | "next": [ 59 | "clickConfirmButtonToExitGunsmokeFrontlineCombat", 60 | "gunsmokeFrontlineCombatTaskCompleted" 61 | ] 62 | }, 63 | "clickConfirmButtonToExitGunsmokeFrontlineCombat": { 64 | "doc": "点击确认退出", 65 | "recognition": "OCR", 66 | "expected": "确认", 67 | "action": "Click", 68 | "next": [ 69 | "clickConfirmButtonToExitGunsmokeFrontlineCombat", 70 | "exitGunsmokeFrontlineCombatResourceLoading" 71 | ] 72 | }, 73 | "exitGunsmokeFrontlineCombatResourceLoading": { 74 | "doc": "退出尘烟前线战斗后的资源加载", 75 | "recognition": "OCR", 76 | "expected": "资源加载中", 77 | "next": [ 78 | "exitGunsmokeFrontlineCombatResourceLoading", 79 | "selectGunsmokeFrontlineCombatType" 80 | ] 81 | } 82 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/PlatoonTasks/platoonDailyCombat.json: -------------------------------------------------------------------------------- 1 | { 2 | "enterPlatoonDailyCombatTask": { 3 | "next": [ 4 | "enterPlatoonDailyCombatPage" 5 | ] 6 | }, 7 | "enterPlatoonDailyCombatPage": { 8 | "doc": "进入班组每日要务页", 9 | "recognition": "OCR", 10 | "expected": "^要务$", 11 | "action": "Click", 12 | "next": [ 13 | "enterPlatoonDailyCombatPage", 14 | "platoonDailyCombatCompleted", 15 | "platoonDailyCombatStart" 16 | ] 17 | }, 18 | "platoonDailyCombatCompleted": { 19 | "doc": "每日要务已完成", 20 | "recognition": "OCR", 21 | "expected": "^每日要务已完成$", 22 | "next": [ 23 | "closePlatoonDailyCombatPage" 24 | ] 25 | }, 26 | "platoonDailyCombatStart": { 27 | "doc": "班组要务作战开始", 28 | "recognition": "OCR", 29 | "expected": "开始作战", 30 | "action": "Click", 31 | "next": [ 32 | "platoonDailyCombatStart", 33 | "enterPlatoonDailyCombatResourceLoading" 34 | ] 35 | }, 36 | "enterPlatoonDailyCombatResourceLoading": { 37 | "doc": "进入班组要务战斗资源加载", 38 | "recognition": "OCR", 39 | "expected": "资源加载中", 40 | "next": [ 41 | "enterPlatoonDailyCombatResourceLoading", 42 | "clickPlatoonDailyCombatStartButton" 43 | ] 44 | }, 45 | "closePlatoonDailyCombatPage": { 46 | "doc": "关闭每日要务页面", 47 | "recognition": "TemplateMatch", 48 | "roi": [ 49 | 1157, 50 | 86, 51 | 55, 52 | 60 53 | ], 54 | "template": [ 55 | "公用按钮组件/关闭按钮_gray.png", 56 | "公用按钮组件/关闭按钮_black.png" 57 | ], 58 | "action": "Click", 59 | "next": [ 60 | "closePlatoonDailyCombatPage", 61 | "enterGunsmokeFrontlineTask", 62 | "exitPlatoonDailyCombat" 63 | ] 64 | }, 65 | "exitPlatoonDailyCombat": { 66 | "recognition": "TemplateMatch", 67 | "template": [ 68 | "公用按钮组件/主页按钮_gray.png", 69 | "公用按钮组件/主页按钮_black.png" 70 | ], 71 | "action": "Click", 72 | "post_delay": 2000, 73 | "next": [ 74 | "HomePage" 75 | ] 76 | } 77 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/PlatoonTasks/platoonDailyCombatLogic.json: -------------------------------------------------------------------------------- 1 | { 2 | "clickPlatoonDailyCombatStartButton": { 3 | "doc": "点击班组要务战斗开始按钮", 4 | "recognition": "OCR", 5 | "expected": "作战开始", 6 | "action": "Click", 7 | "post_wait_freezes": 500, 8 | "next": [ 9 | "platoonDailyCombatTaskCompleted", 10 | "clickPlatoonDailyCombatConfirmStartButton", 11 | "clickPlatoonDailyCombatStartButton", 12 | "enablePlatoonDailyCombatAutoBattle", 13 | "waitForPlatoonDailyCombatToEnd" 14 | ] 15 | }, 16 | "clickPlatoonDailyCombatConfirmStartButton": { 17 | "doc": "还有可部署人形提示时,点击确认开始", 18 | "recognition": "OCR", 19 | "expected": "^确认$", 20 | "roi": [ 21 | 261, 22 | 119, 23 | 760, 24 | 480 25 | ], 26 | "action": "Click", 27 | "next": [ 28 | "platoonDailyCombatTaskCompleted", 29 | "clickPlatoonDailyCombatConfirmStartButton", 30 | "enablePlatoonDailyCombatAutoBattle", 31 | "waitForPlatoonDailyCombatToEnd" 32 | ] 33 | }, 34 | "enablePlatoonDailyCombatAutoBattle": { 35 | "doc": "点击班组要务自动战斗按钮", 36 | "recognition": "ColorMatch", 37 | "connected": true, 38 | "count": 55, 39 | "roi": [ 40 | 1069, 41 | 25, 42 | 35, 43 | 27 44 | ], 45 | "upper": [ 46 | 210, 47 | 210, 48 | 210 49 | ], 50 | "lower": [ 51 | 150, 52 | 150, 53 | 150 54 | ], 55 | "action": "Click", 56 | "next": [ 57 | "enablePlatoonDailyCombatAutoBattle", 58 | "waitForPlatoonDailyCombatToEnd" 59 | ] 60 | }, 61 | "waitForPlatoonDailyCombatToEnd": { 62 | "doc": "等待班组日常要务自动战斗结束", 63 | "post_wait_freezes": { 64 | "time": 2500, 65 | "threshold": 0.8 66 | }, 67 | "next": [ 68 | "platoonDailyCombatTaskCompleted", 69 | "platoonDailyCombatTaskFailed", 70 | "enablePlatoonDailyCombatAutoBattle", 71 | "waitForPlatoonDailyCombatToEnd" 72 | ] 73 | }, 74 | "platoonDailyCombatTaskCompleted": { 75 | "doc": "班组日常任务完成", 76 | "recognition": "OCR", 77 | "expected": "任务完成", 78 | "action": "Click", 79 | "post_wait_freezes": 300, 80 | "next": [ 81 | "clickConfirmButtonToExitPlatoonDailyCombat", 82 | "platoonDailyCombatTaskCompleted" 83 | ] 84 | }, 85 | "platoonDailyCombatTaskFailed": { 86 | "doc": "班组日常任务失败", 87 | "recognition": "OCR", 88 | "expected": "任务失败", 89 | "next": [ 90 | "clickConfirmButtonToExitPlatoonDailyCombat", 91 | "platoonDailyCombatTaskFailed" 92 | ] 93 | }, 94 | "clickConfirmButtonToExitPlatoonDailyCombat": { 95 | "doc": "点击确认退出", 96 | "recognition": "OCR", 97 | "expected": "确认", 98 | "action": "Click", 99 | "next": [ 100 | "clickConfirmButtonToExitPlatoonDailyCombat", 101 | "exitPlatoonDailyCombatResourceLoading" 102 | ] 103 | }, 104 | "exitPlatoonDailyCombatResourceLoading": { 105 | "doc": "退出班组要务战斗后的资源加载", 106 | "recognition": "OCR", 107 | "expected": "资源加载中", 108 | "next": [ 109 | "exitPlatoonDailyCombatResourceLoading", 110 | "closePlatoonDailyCombatPage" 111 | ] 112 | } 113 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/PlatoonTasks/platoonDailySupply.json: -------------------------------------------------------------------------------- 1 | { 2 | "enterPlatoonDailySupplyTask": { 3 | "next": [ 4 | "enterPlatoonDailySupplyPage" 5 | ] 6 | }, 7 | "enterPlatoonDailySupplyPage": { 8 | "doc": "进入班组每日补给页", 9 | "recognition": "OCR", 10 | "roi": [ 11 | 516, 12 | 567, 13 | 754, 14 | 136 15 | ], 16 | "expected": "^补给$", 17 | "action": "Click", 18 | "post_delay": 2000, 19 | "next": [ 20 | "enterPlatoonDailySupplyPage", 21 | "claimPlatoonDailySupply", 22 | "noClaimPlatoonDailySupply" 23 | ] 24 | }, 25 | "noClaimPlatoonDailySupply": { 26 | "doc": "无领取班组每日补给按钮", 27 | "inverse": true, 28 | "recognition": "OCR", 29 | "expected": "^领取全部$", 30 | "next": [ 31 | "platoonDailySupplyBackPage" 32 | ] 33 | }, 34 | "claimPlatoonDailySupply": { 35 | "doc": "领取班组每日补给", 36 | "recognition": "OCR", 37 | "expected": "^领取全部$", 38 | "action": "Click", 39 | "next": [ 40 | "closeDailySupplyResultPage" 41 | ] 42 | }, 43 | "closeDailySupplyResultPage": { 44 | "doc": "关闭每日补给结果页面", 45 | "recognition": "OCR", 46 | "expected": "点击空白处关闭", 47 | "action": "Click", 48 | "next": [ 49 | "closeDailySupplyResultPage", 50 | "platoonDailySupplyBackPage" 51 | ] 52 | }, 53 | "platoonDailySupplyBackPage": { 54 | "recognition": "TemplateMatch", 55 | "roi": [ 56 | 0, 57 | 0, 58 | 200, 59 | 70 60 | ], 61 | "template": [ 62 | "公用按钮组件/返回上一页_gray.png", 63 | "公用按钮组件/返回上一页_black.png" 64 | ], 65 | "action": "Click", 66 | "post_delay": 1000, 67 | "next": [ 68 | "enterPlatoonDailyCombatTask", 69 | "returnToHomePage" 70 | ] 71 | } 72 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/PrepareDailyTasks/BoundaryAdvance/BoundaryAdvance.json: -------------------------------------------------------------------------------- 1 | { 2 | "enterBoundaryAdvanceAction": { 3 | "doc": "边界派遣", 4 | "enabled": true, 5 | "recognition": "OCR", 6 | "expected": [ 7 | "^限时开启$", 8 | "限时开启$", 9 | "^限时开启" 10 | ], 11 | "post_wait_freezes": 200, 12 | "action": "Click", 13 | "next": [ 14 | "clickBoundaryAdvanceTagButton" 15 | ] 16 | }, 17 | "clickBoundaryAdvanceTagButton": { 18 | "doc": "点击边界推进标签按钮,循环调用来自动关闭弹窗", 19 | "recognition": "OCR", 20 | "expected": "推进", 21 | "roi": [ 22 | 1085, 23 | 154, 24 | 136, 25 | 54 26 | ], 27 | "action": "Click", 28 | "pre_wait_freezes": 500, 29 | "post_delay": 1500, 30 | "next": [ 31 | "clickBoundaryAdvanceTagButton", 32 | "boundaryAdvanceDelegateRewardFull", 33 | "clickBoundaryAdvanceDelegateButton" 34 | ] 35 | }, 36 | "boundaryAdvanceDelegateRewardFull": { 37 | "doc": "边界推进委托奖励已满", 38 | "recognition": "OCR", 39 | "expected": [ 40 | "全部领取$", 41 | "已全部", 42 | "奖励已全部", 43 | "己全部", 44 | "奖励己全部" 45 | ], 46 | "roi": [ 47 | 862, 48 | 573, 49 | 209, 50 | 32 51 | ], 52 | "focus": { 53 | "succeeded": "[color:blue]边界推进奖励已全部领取[/color]" 54 | }, 55 | "next": [ 56 | "exitBoundaryAdvance" 57 | ] 58 | }, 59 | "clickBoundaryAdvanceDelegateButton": { 60 | "doc": "点击边界推进委托按钮,循环调用防止新周期卡住", 61 | "recognition": "OCR", 62 | "roi": [ 63 | 722, 64 | 620, 65 | 156, 66 | 52 67 | ], 68 | "expected": [ 69 | "^晶源采集$", 70 | "采集$", 71 | "^晶源" 72 | ], 73 | "action": "Click", 74 | "post_wait_freezes": 2000, 75 | "next": [ 76 | "clickBoundaryAdvanceDelegateButton", 77 | "boundaryAdvanceDelegateOneClickDispatch", 78 | "boundaryAdvanceDelegateOneClickClaim", 79 | "boundaryAdvanceDelegateNotClaimable" 80 | ] 81 | }, 82 | "boundaryAdvanceDelegateOneClickDispatch": { 83 | "doc": "边界推进委托一键派遣", 84 | "recognition": "OCR", 85 | "roi": [ 86 | 660, 87 | 635, 88 | 275, 89 | 45 90 | ], 91 | "expected": [ 92 | "^一键派遣$", 93 | "派遣$", 94 | "^一键" 95 | ], 96 | "action": "Click", 97 | "next": [ 98 | "boundaryAdvanceDelegateOneClickDispatch", 99 | "boundaryAdvanceDelegateOneClickClaim", 100 | "boundaryAdvanceDelegateNotClaimable" 101 | ] 102 | }, 103 | "boundaryAdvanceDelegateOneClickClaim": { 104 | "doc": "边界推进委托一键领取", 105 | "recognition": "ColorMatch", 106 | "roi": [ 107 | 957, 108 | 638, 109 | 269, 110 | 38 111 | ], 112 | "upper": [ 113 | 228, 114 | 89, 115 | 40 116 | ], 117 | "lower": [ 118 | 196, 119 | 76, 120 | 34 121 | ], 122 | "action": "Click", 123 | "next": [ 124 | "boundaryAdvanceDelegateRewardClaimResultPage" 125 | ] 126 | }, 127 | "boundaryAdvanceDelegateRewardClaimResultPage": { 128 | "doc": "边界推进委托奖励领取结果页关闭", 129 | "recognition": "OCR", 130 | "expected": "点击", 131 | "action": "Click", 132 | "next": [ 133 | "boundaryAdvanceDelegateRewardClaimResultPage", 134 | "exitBoundaryAdvance" 135 | ] 136 | }, 137 | "boundaryAdvanceDelegateNotClaimable": { 138 | "doc": "边界推进委托不可领取", 139 | "recognition": "ColorMatch", 140 | "roi": [ 141 | 957, 142 | 638, 143 | 269, 144 | 38 145 | ], 146 | "upper": [ 147 | 40, 148 | 41, 149 | 41 150 | ], 151 | "lower": [ 152 | 39, 153 | 39, 154 | 40 155 | ], 156 | "action": "Click", 157 | "post_delay": 100, 158 | "next": [ 159 | "exitBoundaryAdvance" 160 | ] 161 | }, 162 | "exitBoundaryAdvance": { 163 | "recognition": "TemplateMatch", 164 | "template": [ 165 | "公用按钮组件/主页按钮_gray.png", 166 | "公用按钮组件/主页按钮_black.png" 167 | ], 168 | "action": "Click", 169 | "post_delay": 2000, 170 | "next": [ 171 | "HomePage" 172 | ] 173 | } 174 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/PrepareDailyTasks/Email/getNewEmails.json: -------------------------------------------------------------------------------- 1 | { 2 | "getNewEmails": { 3 | "doc": "领取邮件任务", 4 | "enabled": true, 5 | "recognition": "OCR", 6 | "expected": "战役推进", 7 | "next": [ 8 | "clickEmailsButton", 9 | "staminaReplenishment", 10 | "enterShop", 11 | "enterBoundaryAdvanceAction", 12 | "HomePage" 13 | ] 14 | }, 15 | "clickEmailsButton": { 16 | "roi": [ 17 | 40, 18 | 380, 19 | 280, 20 | 200 21 | ], 22 | "recognition": "TemplateMatch", 23 | "template": [ 24 | "公用按钮组件/邮件_主页.png", 25 | "公用按钮组件/邮件_主页_2.png" 26 | ], 27 | "threshold": 0.75, 28 | "action": "Click", 29 | "post_wait_freezes": 1000, 30 | "next": [ 31 | "claimAllEmails" 32 | ] 33 | }, 34 | "claimAllEmails": { 35 | "doc": "循环调用自身,确保按钮有效点击", 36 | "recognition": "OCR", 37 | "expected": "领取全部", 38 | "action": "Click", 39 | "post_wait_freezes": 500, 40 | "next": [ 41 | "noUnclaimedItems", 42 | "closeClaimAllEmailsPopup", 43 | "claimAllEmails" 44 | ] 45 | }, 46 | "noUnclaimedItems": { 47 | "rate_limit": 100, 48 | "recognition": "OCR", 49 | "expected": "无可领取物品", 50 | "post_wait_freezes": 500, 51 | "next": [ 52 | "noUnclaimedItems", 53 | "findSurveyEmail", 54 | "exitEmails" 55 | ] 56 | }, 57 | "findSurveyEmail": { 58 | "doc": "查找是否有调研邀请邮件,有的话弹出通知,该邮件会自动置顶,所以无需向下滑动", 59 | "enabled": true, 60 | "recognition": "OCR", 61 | "expected": "调研邀请", 62 | "next": [ 63 | "surveyEmailFound" 64 | ] 65 | }, 66 | "surveyEmailFound": { 67 | "doc": "中间节点,用于触发 mfawpf 的通知", 68 | "focus": { 69 | "start": "[color:red]发现调研邀请邮件,请手动处理[/color]", 70 | "toast": "发现调研邀请邮件,请手动处理" 71 | }, 72 | "next": [ 73 | "exitEmails" 74 | ] 75 | }, 76 | "exitEmails": { 77 | "recognition": "TemplateMatch", 78 | "template": [ 79 | "公用按钮组件/主页按钮_gray.png", 80 | "公用按钮组件/主页按钮_black.png" 81 | ], 82 | "action": "Click", 83 | "post_delay": 2000, 84 | "next": [ 85 | "staminaReplenishment", 86 | "enterShop", 87 | "enterBoundaryAdvanceAction", 88 | "HomePage" 89 | ] 90 | }, 91 | "closeClaimAllEmailsPopup": { 92 | "recognition": "OCR", 93 | "expected": "点击空白", 94 | "action": "Click", 95 | "post_wait_freezes": 500, 96 | "next": [ 97 | "closeClaimAllEmailsPopup", 98 | "findSurveyEmail", 99 | "exitEmails" 100 | ] 101 | } 102 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/PrepareDailyTasks/Shop/shop.json: -------------------------------------------------------------------------------- 1 | { 2 | "enterShop": { 3 | "enabled": true, 4 | "recognition": "OCR", 5 | "expected": "^商城$", 6 | "post_wait_freezes": 200, 7 | "action": "Click", 8 | "next": [ 9 | "clickQualitySelection" 10 | ] 11 | }, 12 | "clickQualitySelection": { 13 | "recognition": "OCR", 14 | "expected": "^品质甄选$", 15 | "action": "Click", 16 | "post_wait_freezes": 200, 17 | "next": [ 18 | "clickTimeLimitedGiftPackage" 19 | ] 20 | }, 21 | "clickTimeLimitedGiftPackage": { 22 | "recognition": "OCR", 23 | "expected": "^限时礼包$", 24 | "action": "Click", 25 | "post_wait_freezes": 800, 26 | "next": [ 27 | "TimeLimitedGiftPackagePageSwipe" 28 | ] 29 | }, 30 | "TimeLimitedGiftPackagePageSwipe": { 31 | "doc": "从下向上滑动", 32 | "recognition": "DirectHit", 33 | "action": "Swipe", 34 | "begin": [ 35 | 1132, 36 | 366, 37 | 1, 38 | 1 39 | ], 40 | "end": [ 41 | 1132, 42 | 291, 43 | 1, 44 | 1 45 | ], 46 | "post_wait_freezes": 1000, 47 | "next": [ 48 | "clickWeekSupplyBox", 49 | "clickPermanentGiftPackage" 50 | ] 51 | }, 52 | "clickWeekSupplyBox": { 53 | "doc": "点击每周补给箱", 54 | "recognition": "TemplateMatch", 55 | "template": [ 56 | "每日免费礼包/每周补给箱.png" 57 | ], 58 | "threshold": 0.87, 59 | "action": "Click", 60 | "post_wait_freezes": 200, 61 | "next": [ 62 | "confirmWeekSupplyBoxPurchase" 63 | ] 64 | }, 65 | "confirmWeekSupplyBoxPurchase": { 66 | "recognition": "OCR", 67 | "expected": "^(购买|确认)$", 68 | "action": "Click", 69 | "post_wait_freezes": 200, 70 | "next": [ 71 | "closeWeekSupplyBoxPurchaseResultPage" 72 | ] 73 | }, 74 | "closeWeekSupplyBoxPurchaseResultPage": { 75 | "recognition": "OCR", 76 | "expected": "点击", 77 | "action": "Click", 78 | "post_delay": 1000, 79 | "next": [ 80 | "closeWeekSupplyBoxPurchaseResultPage", 81 | "clickPermanentGiftPackage" 82 | ] 83 | }, 84 | "clickPermanentGiftPackage": { 85 | "recognition": "OCR", 86 | "expected": "^周期礼包$", 87 | "action": "Click", 88 | "post_delay": 1500, 89 | "next": [ 90 | "clickDailySupplyBox", 91 | "exitGameStore" 92 | ] 93 | }, 94 | "clickDailySupplyBox": { 95 | "doc": "点击每日补给箱", 96 | "recognition": "TemplateMatch", 97 | "template": [ 98 | "每日免费礼包/每日补给箱.png" 99 | ], 100 | "threshold": 0.87, 101 | "action": "Click", 102 | "post_wait_freezes": 200, 103 | "next": [ 104 | "confirmSupplyBoxPurchase" 105 | ] 106 | }, 107 | "confirmSupplyBoxPurchase": { 108 | "recognition": "OCR", 109 | "expected": "^(购买|确认)$", 110 | "action": "Click", 111 | "post_wait_freezes": 200, 112 | "next": [ 113 | "closeSupplyBoxPurchaseResultPage" 114 | ] 115 | }, 116 | "closeSupplyBoxPurchaseResultPage": { 117 | "recognition": "OCR", 118 | "expected": "点击", 119 | "action": "Click", 120 | "post_delay": 1500, 121 | "next": [ 122 | "closeSupplyBoxPurchaseResultPage", 123 | "checkDailyPaidGift", 124 | "exitGameStore" 125 | ] 126 | }, 127 | "checkDailyPaidGift": { 128 | "recognition": "OCR", 129 | "expected": "每日晶条礼包", 130 | "roi": [ 131 | 409, 132 | 136, 133 | 350, 134 | 164 135 | ], 136 | "post_delay": 1000, 137 | "next": [ 138 | "closeDailyPaidGiftPage" 139 | ] 140 | }, 141 | "closeDailyPaidGiftPage": { 142 | "recognition": "OCR", 143 | "expected": "取消", 144 | "action": "Click", 145 | "next": [ 146 | "exitGameStore" 147 | ] 148 | }, 149 | "exitGameStore": { 150 | "recognition": "TemplateMatch", 151 | "template": [ 152 | "公用按钮组件/主页按钮_gray.png", 153 | "公用按钮组件/主页按钮_black.png" 154 | ], 155 | "action": "Click", 156 | "post_delay": 2500, 157 | "next": [ 158 | "enterBoundaryAdvanceAction", 159 | "HomePage" 160 | ] 161 | } 162 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/PrepareDailyTasks/StaminaReplenishments/staminaReplenishment.json: -------------------------------------------------------------------------------- 1 | { 2 | "staminaReplenishment": { 3 | "doc": "用光全部体力", 4 | "enabled": false, 5 | "recognition": "OCR", 6 | "expected": "战役推进", 7 | "target": [ 8 | 185, 9 | 665, 10 | 67, 11 | 17 12 | ], 13 | "action": "Click", 14 | "next": [ 15 | "consumeAccessKey" 16 | ] 17 | }, 18 | "consumeAccessKey": { 19 | "doc": "消耗接入密钥", 20 | "recognition": "FeatureMatch", 21 | "template": "体力兑换/体力兑换.png", 22 | "action": "Click", 23 | "next": [ 24 | "accessKeyInsufficient", 25 | "nonScrollablePopupConfirm" 26 | ] 27 | }, 28 | "accessKeyInsufficient": { 29 | "rate_limit": 200, 30 | "recognition": "OCR", 31 | "expected": "接入密钥不足", 32 | "next": [ 33 | "nonScrollablePopupCancel", 34 | "enterShop", 35 | "enterBoundaryAdvanceAction", 36 | "HomePage" 37 | ] 38 | } 39 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/PrepareDailyTasks/timeLimited/timeLimitedTask.json: -------------------------------------------------------------------------------- 1 | { 2 | "timeLimitedTask": { 3 | "doc": "该任务用于集中调用限时任务,限时任务将显示在日常任务前准备的子选项中,该next列表的限时任务后应该写上调用该任务的后续任务", 4 | "recognition": "OCR", 5 | "expected": "战役推进", 6 | "enabled": true, 7 | "next": [ 8 | "claimIntelligenceSupplyStaminaTaskTimed", 9 | "claimSevenDayCheckInResourceTaskTimed", 10 | "exitTimeLimitedTask" 11 | ], 12 | "interrupt": [ 13 | "StartGame" 14 | ] 15 | }, 16 | "exitTimeLimitedTask": { 17 | "doc": "该 next 列表的任务顺序与调用 timeLimitedTask 后续任务呈现顺序一致,且如果都未开启则判断是否为主页后结束本进程任务。", 18 | "next": [ 19 | "getNewEmails", 20 | "staminaReplenishment", 21 | "enterShop", 22 | "enterBoundaryAdvanceAction", 23 | "HomePage" 24 | ] 25 | } 26 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/PublicAreaDailyTasks/dispatchCenter.json: -------------------------------------------------------------------------------- 1 | { 2 | "enterDispatchCenterAction": { 3 | "next": [ 4 | "进入委托页面-调度室" 5 | ] 6 | }, 7 | "进入委托页面-调度室": { 8 | "recognition": "OCR", 9 | "expected": "^委托$", 10 | "roi": [ 11 | 370, 12 | 582, 13 | 909, 14 | 137 15 | ], 16 | "action": "Click", 17 | "post_wait_freezes": 500, 18 | "next": [ 19 | "前往调度室" 20 | ] 21 | }, 22 | "前往调度室": { 23 | "recognition": "OCR", 24 | "expected": "前往", 25 | "action": "Click", 26 | "post_wait_freezes": 500, 27 | "next": [ 28 | "dispatchCenterEntered" 29 | ] 30 | }, 31 | "dispatchCenterEntered": { 32 | "doc": "已进入调度室", 33 | "recognition": "OCR", 34 | "expected": "^调度考核$", 35 | "post_wait_freezes": 1000, 36 | "next": [ 37 | "rewardGet", 38 | "noRewardGet" 39 | ] 40 | }, 41 | "noRewardGet": { 42 | "doc": "没有可领取的奖励", 43 | "post_wait_freezes": 1000, 44 | "next": [ 45 | "dispatchProgressing", 46 | "sendDispatchNotification" 47 | ] 48 | }, 49 | "dispatchProgressing": { 50 | "doc": "派遣进行中", 51 | "recognition": "OCR", 52 | "expected": [ 53 | "5/5" 54 | ], 55 | "roi": [ 56 | 1072, 57 | 532, 58 | 171, 59 | 43 60 | ], 61 | "next": [ 62 | "claimDispatchCenterDispatchCountReward", 63 | "enterSchedulingGainsAction", 64 | "returnToHomePage" 65 | ] 66 | }, 67 | "sendDispatchNotification": { 68 | "doc": "发送手动处理派遣的通知", 69 | "next": [ 70 | "claimDispatchCenterDispatchCountReward", 71 | "enterSchedulingGainsAction", 72 | "returnToHomePage" 73 | ], 74 | "focus": { 75 | "start": "[color:red]公共区调度室未完全派遣,请手动处理[/color]", 76 | "toast": "公共区调度室未完全派遣,请手动处理" 77 | } 78 | }, 79 | "rewardGet": { 80 | "doc": "领取调度室奖励", 81 | "recognition": "OCR", 82 | "expected": [ 83 | "领取", 84 | "一键领取", 85 | "键领取" 86 | ], 87 | "action": "Click", 88 | "post_wait_freezes": 1000, 89 | "next": [ 90 | "dispatchCenterSendAgain", 91 | "未识别到再次派遣直接点击固定位置" 92 | ] 93 | }, 94 | "dispatchCenterSendAgain": { 95 | "recognition": "OCR", 96 | "expected": "再次派遣", 97 | "action": "Click", 98 | "post_delay": 4000, 99 | "next": [ 100 | "claimDispatchCenterDispatchCountReward", 101 | "enterSchedulingGainsAction", 102 | "returnToHomePage" 103 | ] 104 | }, 105 | "未识别到再次派遣直接点击固定位置": { 106 | "action": "Click", 107 | "target": [ 108 | 743, 109 | 620, 110 | 264, 111 | 41 112 | ], 113 | "post_delay": 4000, 114 | "next": [ 115 | "claimDispatchCenterDispatchCountReward", 116 | "enterSchedulingGainsAction", 117 | "returnToHomePage" 118 | ] 119 | }, 120 | "claimDispatchCenterDispatchCountReward": { 121 | "recognition": "TemplateMatch", 122 | "template": "公用按钮组件/提醒.png", 123 | "roi": [ 124 | 19, 125 | 472, 126 | 459, 127 | 129 128 | ], 129 | "action": "Click", 130 | "target": true, 131 | "target_offset": [ 132 | -20, 133 | 20, 134 | 0, 135 | 0 136 | ], 137 | "post_wait_freezes": 300, 138 | "next": [ 139 | "closeDispatchCenterDispatchCountRewardClaimResultPage" 140 | ] 141 | }, 142 | "closeDispatchCenterDispatchCountRewardClaimResultPage": { 143 | "recognition": "OCR", 144 | "expected": "空白", 145 | "action": "Click", 146 | "post_delay": 1500, 147 | "next": [ 148 | "closeDispatchCenterDispatchCountRewardClaimResultPage", 149 | "enterSchedulingGainsAction", 150 | "returnToHomePage" 151 | ] 152 | } 153 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/PublicAreaDailyTasks/lounge.json: -------------------------------------------------------------------------------- 1 | { 2 | "enterLoungeAction": { 3 | "next": [ 4 | "进入整备室" 5 | ] 6 | }, 7 | "进入整备室": { 8 | "recognition": "OCR", 9 | "expected": "整备室", 10 | "action": "Click", 11 | "post_wait_freezes": 500, 12 | "next": [ 13 | "loungeButtonClick" 14 | ] 15 | }, 16 | "loungeButtonClick": { 17 | "recognition": "TemplateMatch", 18 | "template": [ 19 | "其他/休息室.png" 20 | ], 21 | "action": "Click", 22 | "post_wait_freezes": 500, 23 | "next": [ 24 | "loungeConfirm" 25 | ] 26 | }, 27 | "loungeConfirm": { 28 | "recognition": "OCR", 29 | "expected": "姿态", 30 | "next": [ 31 | "loungeBackPage", 32 | "loungeBackPageNotFound" 33 | ] 34 | }, 35 | "loungeBackPage": { 36 | "recognition": "TemplateMatch", 37 | "roi": [ 38 | 0, 39 | 0, 40 | 200, 41 | 70 42 | ], 43 | "template": [ 44 | "公用按钮组件/返回上一页_gray_v2.png", 45 | "公用按钮组件/返回上一页_black_v2.png" 46 | ], 47 | "green_mask": true, 48 | "action": "Click", 49 | "post_wait_freezes": 500, 50 | "next": [ 51 | "退出整备室" 52 | ] 53 | 54 | }, 55 | "loungeBackPageNotFound": { 56 | "post_wait_freezes": 500, 57 | "next": [ 58 | "clickButtonWithFixedPositionToLeaveDormitory" 59 | ] 60 | }, 61 | "clickButtonWithFixedPositionToLeaveDormitory": { 62 | "recognition": "DirectHit", 63 | "action": "Click", 64 | "target": [26,23,43,42], 65 | "post_wait_freezes": 500, 66 | "next": [ 67 | "退出整备室" 68 | ] 69 | }, 70 | "退出整备室": { 71 | "recognition": "TemplateMatch", 72 | "template": [ 73 | "公用按钮组件/返回上一页_gray.png", 74 | "公用按钮组件/返回上一页_black.png" 75 | ], 76 | "action": "Click", 77 | "post_wait_freezes": 500, 78 | "next": [ 79 | "enterDispatchCenterAction", 80 | "enterSchedulingGainsAction", 81 | "returnToHomePage" 82 | ] 83 | } 84 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/PublicAreaDailyTasks/schedulingGains.json: -------------------------------------------------------------------------------- 1 | { 2 | "enterSchedulingGainsAction": { 3 | "doc": "进入调度收益", 4 | "recognition": "OCR", 5 | "expected": "调度收益", 6 | "roi": [ 7 | 718, 8 | 612, 9 | 257, 10 | 62 11 | ], 12 | "action": "Click", 13 | "next": [ 14 | "clickMaxStaminaReserveButton" 15 | ] 16 | }, 17 | "clickMaxStaminaReserveButton": { 18 | "recognition": "OCR", 19 | "expected": "最大", 20 | "roi": [ 21 | 1063, 22 | 548, 23 | 94, 24 | 38 25 | ], 26 | "action": "Click", 27 | "next": [ 28 | "clickExtractStaminaButton" 29 | ] 30 | }, 31 | "clickExtractStaminaButton": { 32 | "recognition": "OCR", 33 | "expected": "^取出$", 34 | "roi": [ 35 | 624, 36 | 589, 37 | 305, 38 | 71 39 | ], 40 | "action": "Click", 41 | "next": [ 42 | "enterResourceProductionPage" 43 | ] 44 | }, 45 | "enterResourceProductionPage": { 46 | "doc": "进入资源生产页", 47 | "recognition": "OCR", 48 | "expected": "资源生产", 49 | "action": "Click", 50 | "next": [ 51 | "clickResourceProductionCollectionButton" 52 | ] 53 | }, 54 | "clickResourceProductionCollectionButton": { 55 | "doc": "点击资源生产收取按钮", 56 | "recognition": "OCR", 57 | "expected": "^收取$", 58 | "action": "Click", 59 | "next": [ 60 | "closeResourceCollectionResultPage" 61 | ] 62 | }, 63 | "closeResourceCollectionResultPage": { 64 | "doc": "关闭资源收取结果页面", 65 | "recognition": "OCR", 66 | "expected": [ 67 | "空白", 68 | "暂无可收取" 69 | ], 70 | "action": "Click", 71 | "next": [ 72 | "closeResourceCollectionResultPage", 73 | "returnToHomePage" 74 | ] 75 | } 76 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/SimulatedCombat/bossChallenge.json: -------------------------------------------------------------------------------- 1 | { 2 | "enterBossFightTask": { 3 | "next": [ 4 | "clickEnterBossFightPage" 5 | ] 6 | }, 7 | "clickEnterBossFightPage": { 8 | "recognition": "OCR", 9 | "expected": "^首领挑战$", 10 | "action": "Click", 11 | "post_wait_freezes": 300, 12 | "next": [ 13 | "enterBossStandardBattle" 14 | ] 15 | }, 16 | "enterBossStandardBattle": { 17 | "recognition": "OCR", 18 | "expected": "^常规挑战$", 19 | "action": "Click", 20 | "post_wait_freezes": 300, 21 | "next": [ 22 | "insufficientAccessForBossFight", 23 | "clickBossFightAutoButton" 24 | ] 25 | }, 26 | "insufficientAccessForBossFight": { 27 | "doc": "首领挑战权限不足", 28 | "recognition": "OCR", 29 | "expected": "0/1$", 30 | "roi": [ 31 | 923, 32 | 576, 33 | 332, 34 | 54 35 | ], 36 | "next": [ 37 | "exitBossFight" 38 | ] 39 | }, 40 | "exitBossFight": { 41 | "recognition": "TemplateMatch", 42 | "roi": [ 43 | 0, 44 | 0, 45 | 200, 46 | 70 47 | ], 48 | "template": [ 49 | "公用按钮组件/返回上一页_gray.png", 50 | "公用按钮组件/返回上一页_black.png" 51 | ], 52 | "action": "Click", 53 | "next": [ 54 | "enterCombatExercise", 55 | "enterPeakValueAssessment", 56 | "开始极限峰值任务", 57 | "enterMilitarySimulationTask", 58 | "returnToHomePage" 59 | ] 60 | }, 61 | "clickBossFightAutoButton": { 62 | "recognition": "OCR", 63 | "expected": "^自律$", 64 | "action": "Click", 65 | "next": [ 66 | "increaseAutoBattleCountForBossFight" 67 | ] 68 | }, 69 | "increaseAutoBattleCountForBossFight": { 70 | "doc": "增加自律次数", 71 | "recognition": "TemplateMatch", 72 | "roi": [ 73 | 260, 74 | 108, 75 | 760, 76 | 502 77 | ], 78 | "template": [ 79 | "公用按钮组件/滑动条值增加.png" 80 | ], 81 | "threshold": 0.9, 82 | "post_delay": 100, 83 | "action": "Click", 84 | "next": [ 85 | "maxAutoBattleCountForBossFight", 86 | "increaseAutoBattleCountForBossFight" 87 | ] 88 | }, 89 | "maxAutoBattleCountForBossFight": { 90 | "doc": "首领挑战自律次数达到最大值", 91 | "recognition": "ColorMatch", 92 | "roi": [ 93 | 811, 94 | 376, 95 | 33, 96 | 32 97 | ], 98 | "upper": [ 99 | 130, 100 | 131, 101 | 135 102 | ], 103 | "lower": [ 104 | 129, 105 | 131, 106 | 135 107 | ], 108 | "post_delay": 100, 109 | "next": [ 110 | "confirmBossFightSelfDiscipline" 111 | ] 112 | }, 113 | "confirmBossFightSelfDiscipline": { 114 | "doc": "确认进行BOSS挑战自律", 115 | "roi": [ 116 | 260, 117 | 108, 118 | 760, 119 | 502 120 | ], 121 | "recognition": "OCR", 122 | "expected": "确认", 123 | "action": "Click", 124 | "post_wait_freezes": 300, 125 | "next": [ 126 | "closeBossFightResultsPage" 127 | ] 128 | }, 129 | "closeBossFightResultsPage": { 130 | "doc": "关闭心智勘测结果页", 131 | "recognition": "OCR", 132 | "expected": "点击空白处关闭", 133 | "action": "Click", 134 | "next": [ 135 | "closeBossFightResultsPage", 136 | "insufficientAccessForBossFight" 137 | ] 138 | } 139 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/SimulatedCombat/peakValueAssessment.json: -------------------------------------------------------------------------------- 1 | { 2 | "enterPeakValueAssessment": { 3 | "next": [ 4 | "clickEnterPeakValueAssessmentPage" 5 | ] 6 | }, 7 | "clickEnterPeakValueAssessmentPage": { 8 | "doc": "点击进入峰值推定页面", 9 | "recognition": "OCR", 10 | "expected": "峰值推定", 11 | "action": "Click", 12 | "post_wait_freezes": { 13 | "time": 1000, 14 | "threshold": 0.8 15 | }, 16 | "next": [ 17 | "peakValueAssessmentPageEnteredForFirstTime", 18 | "peakValueAssessmentPageEnteredAgain" 19 | ] 20 | }, 21 | "peakValueAssessmentPageEnteredForFirstTime": { 22 | "doc": "当日首次进入峰值推定,周期报酬自动弹出,有奖励就领,没有直接关掉", 23 | "recognition": "OCR", 24 | "expected": "周期报酬", 25 | "roi": [ 26 | 569, 27 | 72, 28 | 137, 29 | 40 30 | ], 31 | "next": [ 32 | "claimRewards", 33 | "closePeriodicReturnsPage" 34 | ] 35 | }, 36 | "peakValueAssessmentPageEnteredAgain": { 37 | "doc": "当日非首次进入峰值推定", 38 | "next": [ 39 | "exitPeakValueAssessment" 40 | ] 41 | }, 42 | "claimRewards": { 43 | "doc": "领取峰值推定奖励", 44 | "recognition": "OCR", 45 | "expected": [ 46 | "一键领取", 47 | "领取", 48 | "键" 49 | ], 50 | "roi": [ 51 | 850, 52 | 574, 53 | 306, 54 | 67 55 | ], 56 | "action": "Click", 57 | "next": [ 58 | "closeResultPage", 59 | "claimRewards" 60 | ] 61 | }, 62 | "closeResultPage": { 63 | "doc": "关闭领取结果页面", 64 | "recognition": "OCR", 65 | "expected": "点击空白处关闭", 66 | "action": "Click", 67 | "next": [ 68 | "rewardsClaimed", 69 | "closeResultPage" 70 | ] 71 | }, 72 | "rewardsClaimed": { 73 | "doc": "已领取", 74 | "recognition": "OCR", 75 | "expected": "周期报酬", 76 | "next": [ 77 | "closePeriodicReturnsPage" 78 | ] 79 | }, 80 | "closePeriodicReturnsPage": { 81 | "doc": "关闭周期报酬页面", 82 | "recognition": "TemplateMatch", 83 | "template": [ 84 | "公用按钮组件/关闭按钮_gray.png", 85 | "公用按钮组件/关闭按钮_black.png" 86 | ], 87 | "action": "Click", 88 | "post_wait_freezes": { 89 | "time": 500, 90 | "threshold": 0.8 91 | }, 92 | "next": [ 93 | "exitPeakValueAssessment" 94 | ] 95 | }, 96 | "exitPeakValueAssessment": { 97 | "doc": "退出峰值推定页面", 98 | "recognition": "TemplateMatch", 99 | "roi": [ 100 | 0, 101 | 0, 102 | 200, 103 | 70 104 | ], 105 | "template": [ 106 | "公用按钮组件/返回上一页_gray.png", 107 | "公用按钮组件/返回上一页_black.png" 108 | ], 109 | "action": "Click", 110 | "next": [ 111 | "开始极限峰值任务", 112 | "enterMilitarySimulationTask", 113 | "returnToHomePage" 114 | ] 115 | } 116 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/VersionActivity/enterVersionActivityItemExchange.json: -------------------------------------------------------------------------------- 1 | { 2 | "enterVersionActivityItemExchange": { 3 | "doc": "版本活动商品兑换", 4 | "enabled": true, 5 | "recognition": "OCR", 6 | "expected": [ 7 | "人形互助站" 8 | ], 9 | "index": -1, 10 | "action": "Click", 11 | "post_delay": 2000, 12 | "next": [ 13 | "selectExchangeType", 14 | "selectExchangeItem", 15 | "enterVersionActivityItemExchange" 16 | ] 17 | }, 18 | "selectExchangeType": { 19 | "doc": "选择兑换类型(大型活动开启),默认false", 20 | "enabled": false, 21 | "recognition": "OCR", 22 | "expected": "^安全屋.*上篇$", 23 | "post_wait_freezes": 100, 24 | "action": "Click", 25 | "post_delay": 1000, 26 | "next": [ 27 | "selectExchangeItem", 28 | "enterVersionActivityItemExchange" 29 | ] 30 | }, 31 | "selectExchangeItem": { 32 | "doc": "选择兑换商品", 33 | "roi": [ 34 | 294, 35 | 104, 36 | 476, 37 | 239 38 | ], 39 | "recognition": "OCR", 40 | "expected": [ 41 | "芯片", 42 | "晶条", 43 | "许可", 44 | "共键", 45 | "信息核", 46 | "礼箱", 47 | "数据", 48 | "涂装", 49 | "特别", 50 | "内存条", 51 | "转录", 52 | "补给箱", 53 | "金", 54 | "解析图纸", 55 | "战场报告" 56 | ], 57 | "order_by": "Vertical", 58 | "action": "Click", 59 | "post_delay": 1000, 60 | "next": [ 61 | "itemNotPurchasable", 62 | "selectExchangeItemQuantity", 63 | "confirmPurchaseItem", 64 | "itemOutOfStock", 65 | "selectExchangeItem" 66 | ] 67 | }, 68 | "itemNotPurchasable": { 69 | "doc": "商品不可购买", 70 | "recognition": "ColorMatch", 71 | "roi": [ 72 | 550, 73 | 395, 74 | 178, 75 | 119 76 | ], 77 | "upper": [ 78 | 253, 79 | 114, 80 | 91 81 | ], 82 | "lower": [ 83 | 246, 84 | 101, 85 | 73 86 | ], 87 | "next": [ 88 | "exitVersionActivityItemExchange" 89 | ] 90 | }, 91 | "itemOutOfStock": { 92 | "doc": "对可能点到已售罄的商品进行处理", 93 | "recognition": "OCR", 94 | "expected": "^已售", 95 | "roi": [ 96 | 594, 97 | 542, 98 | 93, 99 | 47 100 | ], 101 | "next": [ 102 | "exitItemExchange" 103 | ] 104 | }, 105 | "exitItemExchange": { 106 | "recognition": "TemplateMatch", 107 | "template": [ 108 | "公用按钮组件/关闭按钮_gray.png", 109 | "公用按钮组件/关闭按钮_black.png" 110 | ], 111 | "roi": [ 112 | 1104, 113 | 107, 114 | 44, 115 | 42 116 | ], 117 | "action": "Click", 118 | "post_delay": 2000, 119 | "next": [ 120 | "exitItemExchange", 121 | "selectExchangeItem" 122 | ] 123 | }, 124 | "selectExchangeItemQuantity": { 125 | "doc": "选择商品兑换数量", 126 | "recognition": "OCR", 127 | "expected": "最大", 128 | "action": "Click", 129 | "next": [ 130 | "confirmPurchaseItem" 131 | ] 132 | }, 133 | "confirmPurchaseItem": { 134 | "doc": "确认购买商品", 135 | "recognition": "OCR", 136 | "expected": "^(购买|确认)$", 137 | "action": "Click", 138 | "next": [ 139 | "closeItemPurchaseResultPage" 140 | ] 141 | }, 142 | "closeItemPurchaseResultPage": { 143 | "doc": "关闭商品购买结果页", 144 | "recognition": "OCR", 145 | "expected": "^点击", 146 | "action": "Click", 147 | "next": [ 148 | "closeItemPurchaseResultPage", 149 | "selectExchangeItem" 150 | ] 151 | }, 152 | "exitVersionActivityItemExchange": { 153 | "recognition": "TemplateMatch", 154 | "template": [ 155 | "公用按钮组件/主页按钮_gray.png", 156 | "公用按钮组件/主页按钮_black.png" 157 | ], 158 | "action": "Click", 159 | "post_delay": 2000, 160 | "next": [ 161 | "exitVersionActivityItemExchange", 162 | "HomePage" 163 | ] 164 | } 165 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/VersionActivity/enterVersionActivityResourceSweep.json: -------------------------------------------------------------------------------- 1 | { 2 | "enterVersionActivityResourceSweep": { 3 | "doc": "物资模式扫荡任务", 4 | "enabled": true, 5 | "recognition": "OCR", 6 | "expected": [ 7 | "^物资模式$", 8 | "^物资$" 9 | ], 10 | "action": "Click", 11 | "roi": [ 12 | 0, 13 | 76, 14 | 1280, 15 | 643 16 | ], 17 | "post_delay": 2000, 18 | "next": [ 19 | "selectResourceModeLevel", 20 | "enterVersionActivityResourceSweep" 21 | ], 22 | "interrupt": [ 23 | "resourceModeLevelSwipeLeft" 24 | ] 25 | }, 26 | "resourceModeLevelSwipeLeft": { 27 | "doc": "往左滑动", 28 | "recognition": "DirectHit", 29 | "action": "Swipe", 30 | "begin": [ 31 | 1188, 32 | 346, 33 | 1, 34 | 1 35 | ], 36 | "end": [ 37 | 167, 38 | 348, 39 | 1, 40 | 1 41 | ], 42 | "post_wait_freezes": 1000 43 | }, 44 | "resourceModeSweepTimesInsufficient": { 45 | "doc": "物资模式扫荡次数不足", 46 | "roi": [ 47 | 885, 48 | 596, 49 | 54, 50 | 31 51 | ], 52 | "upper": [ 53 | 255, 54 | 129, 55 | 113 56 | ], 57 | "lower": [ 58 | 200, 59 | 95, 60 | 64 61 | ], 62 | "recognition": "ColorMatch", 63 | "focus": { 64 | "succeeded": "[color:red]扫荡券不足[/color]" 65 | }, 66 | "next": [ 67 | "exitVersionActivityResourceSweep" 68 | ] 69 | }, 70 | "exitVersionActivityResourceSweep": { 71 | "recognition": "TemplateMatch", 72 | "template": [ 73 | "公用按钮组件/返回上一页_black.png", 74 | "公用按钮组件/返回上一页_gray.png" 75 | ], 76 | "action": "Click", 77 | "order_by": "Score", 78 | "post_delay": 2000, 79 | "next": [ 80 | "HomePage", 81 | "enterVersionActivityItemExchange", 82 | "exitVersionActivityResourceSweep" 83 | ] 84 | }, 85 | "selectResourceModeLevel": { 86 | "doc": "选择物资模式关卡", 87 | "roi": [ 88 | 0, 89 | 188, 90 | 1280, 91 | 315 92 | ], 93 | "recognition": "OCR", 94 | "expected": [ 95 | "5$", 96 | "-5", 97 | "5" 98 | ], 99 | "action": "Click", 100 | "post_wait_freezes": 100, 101 | "next": [ 102 | "resourceModeSweepTimesInsufficient", 103 | "clickResourceLevelSweepButton", 104 | "resourceModeSweepCheckLevelLockStatus" 105 | ] 106 | }, 107 | "resourceModeSweepCheckLevelLockStatus": { 108 | "doc": "物资模式扫荡关卡是否被锁定", 109 | "recognition": "OCR", 110 | "expected": [ 111 | "需要完成前置关卡", 112 | "关卡$" 113 | ], 114 | "focus": { 115 | "succeeded": "[color:red]第五关未解锁[/color]" 116 | }, 117 | "next": [ 118 | "exitVersionActivityResourceSweep" 119 | ] 120 | }, 121 | "clickResourceLevelSweepButton": { 122 | "doc": "物资模式扫荡任务", 123 | "recognition": "OCR", 124 | "expected": "^自律$", 125 | "action": "Click", 126 | "next": [ 127 | "setResourceLevelSweepTimes" 128 | ] 129 | }, 130 | "setResourceLevelSweepTimes": { 131 | "doc": "设置物资关卡扫荡次数", 132 | "recognition": "OCR", 133 | "expected": "^自律准备$", 134 | "action": "Swipe", 135 | "begin": [ 136 | 496, 137 | 391, 138 | 1, 139 | 1 140 | ], 141 | "end": [ 142 | 901, 143 | 391, 144 | 1, 145 | 1 146 | ], 147 | "next": [ 148 | "startResourceLevelSweep" 149 | ] 150 | }, 151 | "startResourceLevelSweep": { 152 | "doc": "开始物资关卡扫荡", 153 | "recognition": "OCR", 154 | "expected": "^确认$", 155 | "action": "Click", 156 | "next": [ 157 | "closeResourceLevelSweepResultPage" 158 | ] 159 | }, 160 | "closeResourceLevelSweepResultPage": { 161 | "doc": "关闭物资关卡扫荡结果页", 162 | "recognition": "OCR", 163 | "expected": "^点击", 164 | "action": "Click", 165 | "post_delay": 1000, 166 | "next": [ 167 | "closeResourceLevelSweepResultPage", 168 | "resourceModeSweepTimesInsufficient", 169 | "clickResourceLevelSweepButton" 170 | ] 171 | } 172 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/controlButton.json: -------------------------------------------------------------------------------- 1 | { 2 | "returnToHomePage": { 3 | "recognition": "TemplateMatch", 4 | "template": [ 5 | "公用按钮组件/主页按钮_gray.png", 6 | "公用按钮组件/主页按钮_black.png" 7 | ], 8 | "action": "Click", 9 | "post_delay": 1500 10 | }, 11 | "returnToHomePageSub": { 12 | "is_sub": true, 13 | "recognition": "TemplateMatch", 14 | "template": [ 15 | "公用按钮组件/主页按钮_gray.png", 16 | "公用按钮组件/主页按钮_black.png" 17 | ], 18 | "action": "Click", 19 | "post_delay": 1500, 20 | "next": [ 21 | "stopTask" 22 | ] 23 | }, 24 | "announcementClosed": { 25 | "is_sub": true, 26 | "recognition": "TemplateMatch", 27 | "template": [ 28 | "公用按钮组件/关闭按钮_gray.png", 29 | "公用按钮组件/关闭按钮_black.png", 30 | "公用按钮组件/智能导航光屏关闭按钮_gray.png" 31 | ], 32 | "roi": [ 33 | 1170, 34 | 0, 35 | 100, 36 | 105 37 | ], 38 | "action": "Click", 39 | "post_wait_freezes": { 40 | "time": 500, 41 | "threshold": 0.8 42 | } 43 | }, 44 | "HomePage": { 45 | "recognition": "OCR", 46 | "expected": "战役推进", 47 | "focus": { 48 | "start": "返回主页成功", 49 | "failed": "返回主页失败" 50 | }, 51 | "pre_delay": 2500 52 | }, 53 | "resourcesLoading": { 54 | "is_sub": true, 55 | "recognition": "OCR", 56 | "expected": "资源加载中", 57 | "post_delay": 2500 58 | }, 59 | "backPage": { 60 | "is_sub": true, 61 | "recognition": "TemplateMatch", 62 | "roi": [ 63 | 0, 64 | 0, 65 | 200, 66 | 70 67 | ], 68 | "template": [ 69 | "公用按钮组件/返回上一页_gray.png", 70 | "公用按钮组件/返回上一页_black.png" 71 | ], 72 | "action": "Click", 73 | "post_delay": 1000 74 | } 75 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/interrupt.json: -------------------------------------------------------------------------------- 1 | // 通用节点,建议在作为其他节点的 interrupt 2 | { 3 | "点击空白处关闭-通用": { 4 | "recognition": "OCR", 5 | "expected": [ 6 | "点击空白处关闭", 7 | "点击任意位置继续", 8 | "点击屏幕任意位置继续" 9 | ], 10 | "action": "Click", 11 | "post_wait_freezes": 500 12 | } 13 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/organizeStoreroom/flower.json: -------------------------------------------------------------------------------- 1 | { 2 | "flower": { 3 | "doc": "生长数据", 4 | "next": [ 5 | "enterFlowerDisassemblyPage" 6 | ] 7 | }, 8 | "enterFlowerDisassemblyPage": { 9 | "doc": "进入拆解界面", 10 | "recognition": "OCR", 11 | "expected": "拆解", 12 | "roi": [686,9,574,67], 13 | "action": "Click", 14 | "post_wait_freezes": 500, 15 | "next": [ 16 | "flowerDisassemblyPageEntered" 17 | ] 18 | }, 19 | "flowerDisassemblyPageEntered": { 20 | "doc": "已进入拆解界面", 21 | "recognition": "OCR", 22 | "expected": "请选择要拆解的道具", 23 | "next": [ 24 | "selectFlowerTab" 25 | ] 26 | }, 27 | "selectFlowerTab": { 28 | "doc": "选择生长数据标签页", 29 | "recognition": "TemplateMatch", 30 | "template": [ 31 | "仓库/生长数据亮.png", 32 | "仓库/生长数据暗.png" 33 | ], 34 | "action": "Click", 35 | "post_wait_freezes": 500, 36 | "next": [ 37 | "flowerTabSelected" 38 | ] 39 | }, 40 | "flowerTabSelected": { 41 | "doc": "生长数据标签页已选中", 42 | "recognition": "OCR", 43 | "expected": "生长数据", 44 | "next": [ 45 | "noFlowerLeft", 46 | "selectFlowerLevel" 47 | ] 48 | }, 49 | "noFlowerLeft": { 50 | "doc": "无可拆解生长数据", 51 | "recognition": "OCR", 52 | "expected": "无可拆解生长数据", 53 | "action": "Click", 54 | "post_wait_freezes": 500, 55 | "next": [ 56 | "exitFlower" 57 | ] 58 | }, 59 | "selectFlowerLevel": { 60 | "doc": "选择生长数据等级", 61 | "recognition": "OCR", 62 | "expected": "及以下", 63 | "action": "Click", 64 | "target": true, 65 | "post_wait_freezes": 500, 66 | "next": [ 67 | "chooseFlowerLevel" 68 | ] 69 | }, 70 | "chooseFlowerLevel": { 71 | "doc": "选择需要拆解的级别", 72 | "recognition": "OCR", 73 | "expected": "工业级及以下", 74 | "action": "Click", 75 | "target": true, 76 | "post_wait_freezes": 500, 77 | "next": [ 78 | "quickSelectFlower" 79 | ] 80 | }, 81 | "quickSelectFlower": { 82 | "doc": "快捷选择,", 83 | "recognition": "OCR", 84 | "expected": "快捷选择", 85 | "action": "Click", 86 | "target": true, 87 | "post_wait_freezes": 500, 88 | "next": [ 89 | "有物品可拆解-生长数据", 90 | "exitFlower" 91 | ] 92 | }, 93 | "有物品可拆解-生长数据": { 94 | "recognition": "OCR", 95 | "expected": "共选", 96 | "post_delay": 500, 97 | "next": [ 98 | "disassemblyFlower" 99 | ] 100 | }, 101 | "disassemblyFlower": { 102 | "doc": "点击拆解键", 103 | "recognition": "TemplateMatch", 104 | "template": [ 105 | "仓库/拆解按钮.png" 106 | ], 107 | "action": "Click", 108 | "post_wait_freezes": 500, 109 | "next": [ 110 | "closeFlowerResultByClickingBlank", 111 | "flowerResultClosed" 112 | ] 113 | }, 114 | "closeFlowerResultByClickingBlank": { 115 | "recognition": "OCR", 116 | "expected": "点击空白处关闭", 117 | "action": "Click", 118 | "post_wait_freezes": 500, 119 | "next": [ 120 | "flowerResultClosed" 121 | ] 122 | }, 123 | "flowerResultClosed": { 124 | "recognition": "OCR", 125 | "expected": "请选择要拆解的道具", 126 | "post_wait_freezes": 500, 127 | "next": [ 128 | "noFlowerLeft", 129 | "quickSelectFlower" 130 | ] 131 | }, 132 | "exitFlower": { 133 | "recognition": "OCR", 134 | "expected": "仓库", 135 | "roi": [686,9,574,67], 136 | "action": "Click", 137 | "post_wait_freezes": 500, 138 | "next": [ 139 | "itemBox", 140 | "returnToHomePage" 141 | ] 142 | } 143 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/organizeStoreroom/weapon.json: -------------------------------------------------------------------------------- 1 | { 2 | "weapon": { 3 | "doc": "武器", 4 | "next": [ 5 | "enterWeaponDisassemblyPage" 6 | ] 7 | }, 8 | "enterWeaponDisassemblyPage": { 9 | "doc": "进入拆解界面", 10 | "recognition": "OCR", 11 | "expected": "拆解", 12 | "roi": [686,9,574,67], 13 | "action": "Click", 14 | "post_wait_freezes": 500, 15 | "next": [ 16 | "weaponDisassemblyPageEntered" 17 | ] 18 | }, 19 | "weaponDisassemblyPageEntered": { 20 | "doc": "已进入拆解界面", 21 | "recognition": "OCR", 22 | "expected": "请选择要拆解的道具", 23 | "next": [ 24 | "selectWeaponTab" 25 | ] 26 | }, 27 | "selectWeaponTab": { 28 | "doc": "选择武器标签页", 29 | "recognition": "TemplateMatch", 30 | "template": [ 31 | "仓库/武器亮.png", 32 | "仓库/武器暗.png" 33 | ], 34 | "action": "Click", 35 | "post_wait_freezes": 500, 36 | "next": [ 37 | "weaponTabSelected" 38 | ] 39 | }, 40 | "weaponTabSelected": { 41 | "doc": "武器标签页已选中", 42 | "recognition": "OCR", 43 | "expected": "人形武器", 44 | "next": [ 45 | "selectWeaponLevel" 46 | ] 47 | }, 48 | "selectWeaponLevel": { 49 | "doc": "点击展开武器等级多选框", 50 | "recognition": "OCR", 51 | "expected": [ 52 | "旧式未培养", 53 | "标准及以下未培养", 54 | "精英及以下未培养" 55 | ], 56 | "action": "Click", 57 | "target": true, 58 | "post_wait_freezes": 500, 59 | "next": [ 60 | "chooseWeaponLevel" 61 | ] 62 | }, 63 | "chooseWeaponLevel": { 64 | "doc": "选择需要拆解的级别", 65 | "recognition": "OCR", 66 | "expected": "旧式未培养", 67 | "action": "Click", 68 | "target": true, 69 | "post_wait_freezes": 500, 70 | "next": [ 71 | "quickSelectWeapon" 72 | ] 73 | }, 74 | "quickSelectWeapon": { 75 | "doc": "快捷选择,", 76 | "recognition": "OCR", 77 | "expected": "快捷选择", 78 | "action": "Click", 79 | "target": true, 80 | "post_wait_freezes": 500, 81 | "next": [ 82 | "有物品可拆解-武器", 83 | "exitWeaponDisassembly" 84 | ] 85 | }, 86 | "有物品可拆解-武器": { 87 | "recognition": "OCR", 88 | "expected": "共选", 89 | "post_wait_freezes": 500, 90 | "next": [ 91 | "disassemblyWeapon" 92 | ] 93 | }, 94 | "disassemblyWeapon": { 95 | "doc": "点击拆解键", 96 | "recognition": "TemplateMatch", 97 | "template": [ 98 | "仓库/拆解按钮.png" 99 | ], 100 | "action": "Click", 101 | "post_wait_freezes": 500, 102 | "next": [ 103 | "findWeaponDisassemblyNotification", 104 | "closeWeaponDisassemblyResultByClickingBlank", 105 | "weaponDisassemblyResultClosed" 106 | ] 107 | }, 108 | "findWeaponDisassemblyNotification": { 109 | "doc": "找到拆解通知", 110 | "recognition": "OCR", 111 | "expected": "是否确认拆解", 112 | "roi": [367,302,526,72], 113 | "next": [ 114 | "confirmWeaponDisassemblyNotification" 115 | ] 116 | }, 117 | "confirmWeaponDisassemblyNotification": { 118 | "doc": "确认拆解通知", 119 | "recognition": "OCR", 120 | "expected": "确认", 121 | "action": "Click", 122 | "roi": [783,519,89,42], 123 | "post_wait_freezes": 500, 124 | "next": [ 125 | "closeWeaponDisassemblyResultByClickingBlank" 126 | ] 127 | }, 128 | "closeWeaponDisassemblyResultByClickingBlank": { 129 | "recognition": "OCR", 130 | "expected": "点击空白处关闭", 131 | "action": "Click", 132 | "post_wait_freezes": 500, 133 | "next": [ 134 | "weaponDisassemblyResultClosed" 135 | ] 136 | }, 137 | "weaponDisassemblyResultClosed": { 138 | "recognition": "OCR", 139 | "expected": "请选择要拆解的道具", 140 | "post_wait_freezes": 500, 141 | "next": [ 142 | "quickSelectWeapon" 143 | ] 144 | }, 145 | "exitWeaponDisassembly": { 146 | "recognition": "OCR", 147 | "expected": "仓库", 148 | "roi": [686,9,574,67], 149 | "action": "Click", 150 | "post_wait_freezes": 500, 151 | "next": [ 152 | "weaponAttachments", 153 | "flower", 154 | "itemBox", 155 | "returnToHomePage" 156 | ] 157 | } 158 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/organizeStoreroom/weaponAttachments.json: -------------------------------------------------------------------------------- 1 | { 2 | "weaponAttachments": { 3 | "doc": "武器配件", 4 | "next": [ 5 | "enterWeaponAttachmentsDisassemblyPage" 6 | ] 7 | }, 8 | "enterWeaponAttachmentsDisassemblyPage": { 9 | "doc": "进入拆解界面", 10 | "recognition": "OCR", 11 | "expected": "拆解", 12 | "roi": [686,9,574,67], 13 | "action": "Click", 14 | "post_wait_freezes": 500, 15 | "next": [ 16 | "weaponAttachmentsDisassemblyPageEntered" 17 | ] 18 | }, 19 | "weaponAttachmentsDisassemblyPageEntered": { 20 | "doc": "已进入拆解界面", 21 | "recognition": "OCR", 22 | "expected": "请选择要拆解的道具", 23 | "next": [ 24 | "selectWeaponAttachmentsTab" 25 | ] 26 | }, 27 | "selectWeaponAttachmentsTab": { 28 | "doc": "选择武器配件标签页", 29 | "recognition": "TemplateMatch", 30 | "template": [ 31 | "仓库/武器配件亮.png", 32 | "仓库/武器配件暗.png" 33 | ], 34 | "action": "Click", 35 | "post_wait_freezes": 500, 36 | "next": [ 37 | "weaponAttachmentsTabSelected" 38 | ] 39 | }, 40 | "weaponAttachmentsTabSelected": { 41 | "doc": "武器配件标签页已选中", 42 | "recognition": "OCR", 43 | "expected": "武器配件", 44 | "next": [ 45 | "selectWeaponAttachmentsLevel" 46 | ] 47 | }, 48 | "selectWeaponAttachmentsLevel": { 49 | "doc": "选择配件等级", 50 | "recognition": "OCR", 51 | "expected": "及以下未培养", 52 | "action": "Click", 53 | "target": true, 54 | "post_wait_freezes": 500, 55 | "next": [ 56 | "chooseLevel" 57 | ] 58 | }, 59 | "chooseLevel": { 60 | "doc": "选择需要拆解的级别", 61 | "recognition": "OCR", 62 | "expected": "工业级及以下未培养", 63 | "action": "Click", 64 | "target": true, 65 | "post_wait_freezes": 500, 66 | "next": [ 67 | "quickSelect" 68 | ] 69 | }, 70 | "quickSelect": { 71 | "doc": "快捷选择,", 72 | "recognition": "OCR", 73 | "expected": "快捷选择", 74 | "action": "Click", 75 | "post_wait_freezes": 500, 76 | "next": [ 77 | "有物品可拆解-武器配件", 78 | "exitWeaponAttachments" 79 | ] 80 | }, 81 | "disassembly": { 82 | "doc": "点击拆解键", 83 | "recognition": "TemplateMatch", 84 | "template": [ 85 | "仓库/拆解按钮.png" 86 | ], 87 | "action": "Click", 88 | "post_wait_freezes": 500, 89 | "next": [ 90 | "closeByClickingBlank", 91 | "resultClosed" 92 | ] 93 | }, 94 | "closeByClickingBlank": { 95 | "recognition": "OCR", 96 | "expected": "点击空白处关闭", 97 | "action": "Click", 98 | "post_wait_freezes": 500, 99 | "next": [ 100 | "resultClosed" 101 | ] 102 | }, 103 | "resultClosed": { 104 | "recognition": "OCR", 105 | "expected": "请选择要拆解的道具", 106 | "post_wait_freezes": 500, 107 | "next": [ 108 | "quickSelect" 109 | ] 110 | }, 111 | "有物品可拆解-武器配件": { 112 | "recognition": "OCR", 113 | "expected": "共选", 114 | "post_delay": 500, 115 | "next": [ 116 | "disassembly" 117 | ] 118 | }, 119 | "exitWeaponAttachments": { 120 | "recognition": "OCR", 121 | "expected": "仓库", 122 | "roi": [686,9,574,67], 123 | "action": "Click", 124 | "post_wait_freezes": 500, 125 | "next": [ 126 | "flower", 127 | "itemBox", 128 | "returnToHomePage" 129 | ] 130 | } 131 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/stagePromotion.json: -------------------------------------------------------------------------------- 1 | { 2 | "StagePromotionWatchStory":{ 3 | "doc": "剧情节点, 点击观看剧情", 4 | "recognition": "OCR", 5 | "roi": [1024,635,117,47], 6 | "expected": "观看", 7 | "action": "Click" 8 | }, 9 | "StagePromotionStartMission":{ 10 | "doc": "挑战节点, 点击开始挑战", 11 | "recognition": "OCR", 12 | "roi": [890,633,363,57], 13 | "expected": "挑战", 14 | "action": "Click" 15 | }, 16 | "StagePromotionSkipStory":{ 17 | "doc": "剧情界面, 点击全部跳过", 18 | "recognition": "OCR", 19 | "roi": [853,14,401,49], 20 | "expected": "全部", 21 | "action": "Click" 22 | }, 23 | "StagePromotionClosePage": { 24 | "doc": "奖励界面, 点击空白处关闭", 25 | "recognition": "OCR", 26 | "roi": [555,603,171,43], 27 | "expected": "点击空白处关闭", 28 | "action": "Click" 29 | }, 30 | "StagePromotionStartBattle": { 31 | "doc": "战斗界面, 点击作战开始", 32 | "recognition": "OCR", 33 | "roi": [529,610,201,61], 34 | "expected": "作战开始", 35 | "action": "Click", 36 | "post_delay": 2000 37 | }, 38 | "StagePromotionCommunication1": { 39 | "doc": "剧情界面, 点击通信中跳过角色对话", 40 | "recognition": "OCR", 41 | "roi": [83,79,57,22], 42 | "expected": "通信中", 43 | "action": "Click" 44 | }, 45 | "StagePromotionCommunication2": { 46 | "doc": "剧情界面, 点击通信中跳过角色对话", 47 | "recognition": "OCR", 48 | "roi": [88,513,55,21], 49 | "expected": "通信中", 50 | "action": "Click" 51 | }, 52 | "StagePromotionFinishTask": { 53 | "doc": "结算界面, 点击完成任务(最后识别)", 54 | "recognition": "OCR", 55 | "roi": [888,72,244,83], 56 | "expected": "任务完成", 57 | "action": "Click" 58 | }, 59 | "StagePromotionContinue": { 60 | "doc": "结算界面, 点击继续前进", 61 | "recognition": "OCR", 62 | "roi": [841,614,121,41], 63 | "expected": "继续前进", 64 | "action": "Click" 65 | }, 66 | "StagePromotionReturnFalse": { 67 | "doc": "始终False, 强迫点击助手循环执行interrupt", 68 | "recognition": "OCR", 69 | "roi": [1207,17,53,39], 70 | "expected": "False" 71 | }, 72 | "StagePromotionConfirm": { 73 | "doc": "结算界面, 点击确认", 74 | "recognition": "OCR", 75 | "roi": [980,621,60,32], 76 | "expected": "确认", 77 | "action": "Click" 78 | }, 79 | "StagePromotionTeamConfirmation": { 80 | "doc": "还有可部署单位,确认开始, 在作战开始前判断", 81 | "recognition": "OCR", 82 | "roi": [779,520,94,44], 83 | "expected": "确认", 84 | "action": "Click", 85 | "post_delay": 2000 86 | } 87 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/stopTask.json: -------------------------------------------------------------------------------- 1 | { 2 | "stopTask": { 3 | "action": "StopTask" 4 | } 5 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/public/活动层/逸趣导算.json: -------------------------------------------------------------------------------- 1 | // 活动层太卡,有的用户那里识别得太快,这里的延迟专门调整 1000 2 | { 3 | "开始逸趣导算任务": { 4 | "next": [ 5 | "进入活动层-逸趣导算" 6 | ] 7 | }, 8 | "进入活动层-逸趣导算": { 9 | "recognition": "OCR", 10 | "expected": "活动层", 11 | "action": "Click", 12 | "post_wait_freezes": 1000, 13 | "timeout": 40000, 14 | "next": [ 15 | "活动层等级提升-逸趣导算", 16 | "已进入活动层-逸趣导算" 17 | ] 18 | }, 19 | "活动层等级提升-逸趣导算": { 20 | "recognition": "OCR", 21 | "expected": "活动层等级提升", 22 | "post_wait_freezes": 1000, 23 | "next": [ 24 | "确认活动层等级提升-逸趣导算" 25 | ] 26 | }, 27 | "确认活动层等级提升-逸趣导算": { 28 | "recognition": "OCR", 29 | "expected": "点击空白处关闭", 30 | "action": "Click", 31 | "post_wait_freezes": 1000, 32 | "next": [ 33 | "已进入活动层-逸趣导算" 34 | ] 35 | }, 36 | "已进入活动层-逸趣导算": { 37 | "recognition": "TemplateMatch", 38 | "template": "活动层/退出.png", 39 | "green_mask": true, 40 | "post_wait_freezes": 1000, 41 | "next": [ 42 | "进入逸趣导算页面" 43 | ] 44 | }, 45 | "进入逸趣导算页面": { 46 | "recognition": "TemplateMatch", 47 | "template": "活动层/逸趣导算.png", 48 | "green_mask": true, 49 | "action": "Click", 50 | "post_wait_freezes": 1000, 51 | "next": [ 52 | "领取逸趣导算奖励", 53 | "关闭逸趣导算页面" 54 | ] 55 | }, 56 | "领取逸趣导算奖励": { 57 | "recognition": "OCR", 58 | "expected": "键领取", 59 | "action": "Click", 60 | "post_wait_freezes": 1000, 61 | "next": [ 62 | "关闭领取结果-逸趣导算" 63 | ] 64 | }, 65 | "关闭领取结果-逸趣导算": { 66 | "recognition": "OCR", 67 | "expected": "点击空白处关闭", 68 | "action": "Click", 69 | "post_wait_freezes": 1000, 70 | "next": [ 71 | "关闭领取结果-逸趣导算", 72 | "关闭逸趣导算页面" 73 | ] 74 | }, 75 | "关闭逸趣导算页面": { 76 | "recognition": "TemplateMatch", 77 | "template": [ 78 | "公用按钮组件/关闭按钮_black.png", 79 | "公用按钮组件/关闭按钮_gray.png" 80 | ], 81 | "green_mask": true, 82 | "action": "Click", 83 | "post_wait_freezes": 1000, 84 | "next": [ 85 | "退出活动层-逸趣导算" 86 | ] 87 | }, 88 | "退出活动层-逸趣导算": { 89 | "recognition": "TemplateMatch", 90 | "template": "活动层/退出.png", 91 | "green_mask": true, 92 | "action": "Click", 93 | "post_wait_freezes": 1000, 94 | "next": [ 95 | "确认退出活动层-逸趣导算" 96 | ] 97 | }, 98 | "确认退出活动层-逸趣导算": { 99 | "recognition": "OCR", 100 | "expected": "确认", 101 | "action": "Click", 102 | "post_wait_freezes": 1000, 103 | "next": [ 104 | "逸趣导算任务结束" 105 | ] 106 | }, 107 | "逸趣导算任务结束": { 108 | "recognition": "OCR", 109 | "expected": "战役推进", 110 | "post_wait_freezes": 1000, 111 | "next": [ 112 | "HomePage" 113 | ] 114 | } 115 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/tasks/BatchRedeemCode.json: -------------------------------------------------------------------------------- 1 | { 2 | "BatchRedeemCode": { 3 | "doc": "拉取兑换码列表,批量完成兑换操作。", 4 | "action": "Custom", 5 | "custom_action": "BatchRedeemCodeAction", 6 | "next": [] 7 | } 8 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/tasks/BulkExchange.json: -------------------------------------------------------------------------------- 1 | { 2 | "BulkExchange": { 3 | "doc": "批量兑换", 4 | "next": [ 5 | "enterBulkExchangeTask" 6 | ], 7 | "interrupt": [ 8 | "StartGame" 9 | ] 10 | }, 11 | "enterBulkExchangeTask": { 12 | "doc": "正式进入批量兑换任务", 13 | "recognition": "OCR", 14 | "expected": "战役推进", 15 | "next": [ 16 | "bulkExchangeTaskClickShopButton" 17 | ] 18 | }, 19 | "bulkExchangeTaskClickShopButton": { 20 | "recognition": "OCR", 21 | "expected": "^商城$", 22 | "post_wait_freezes": 200, 23 | "post_delay": 1500, 24 | "action": "Click", 25 | "next": [ 26 | "enterBulkExchangeTaskPageBottomSwip" 27 | ] 28 | }, 29 | "enterBulkExchangeTaskPageBottomSwip": { 30 | "doc": "进入批量兑换任务页面底部滑动", 31 | "recognition": "OCR", 32 | "expected": "个性", 33 | "action": "Swipe", 34 | "begin": [ 35 | 109, 36 | 496, 37 | 1, 38 | 1 39 | ], 40 | "end": [ 41 | 109, 42 | 416, 43 | 1, 44 | 1 45 | ], 46 | "post_delay": 1000, 47 | "next": [ 48 | "enterBulkExchangeTaskPage" 49 | ] 50 | }, 51 | "enterBulkExchangeTaskPage": { 52 | "doc": "进入批量兑换任务页面", 53 | "recognition": "OCR", 54 | "expected": "易物所", 55 | "action": "Click", 56 | "next": [ 57 | "enterPlatoonExchangeTask", 58 | "enterdispatchCenterExchangeTask", 59 | "enterBossChallengeExchangeTask", 60 | "returnToHomePage" 61 | ] 62 | } 63 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/tasks/ClaimRewardTasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "ClaimRewardTasks": { 3 | "doc": "领取奖励", 4 | "next": [ 5 | "enterCommissionToClaimTask", 6 | "enterPassToClaimTask", 7 | "enterPersonalInformationPage", 8 | "enterDangerousExcavation", 9 | "enterTrial", 10 | "开始动态招募祝福任务", 11 | "开始暗香赠礼任务", 12 | "开始艾莫号许愿池任务", 13 | "开始模拟习练任务" 14 | ], 15 | "interrupt": [ 16 | "StartGame" 17 | ] 18 | } 19 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/tasks/ClickAssistant.json: -------------------------------------------------------------------------------- 1 | { 2 | "ClickAssistant": { 3 | "timeout": 3600000, 4 | "next": [ 5 | "StagePromotionReturnFalse" 6 | ], 7 | "interrupt":[ 8 | "StagePromotionWatchStory", 9 | "StagePromotionStartMission", 10 | "StagePromotionSkipStory", 11 | "StagePromotionClosePage", 12 | "StagePromotionTeamConfirmation", 13 | "StagePromotionStartBattle", 14 | "StagePromotionCommunication1", 15 | "StagePromotionCommunication2", 16 | "StagePromotionContinue", 17 | "StagePromotionConfirm", 18 | "StagePromotionFinishTask" 19 | ] 20 | } 21 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/tasks/CommunityDaillyHelper.json: -------------------------------------------------------------------------------- 1 | { 2 | "CommunityDailyHelper": { 3 | "doc": "完成社区每日操作,包括每日签到、每日任务、每日兑换。", 4 | "action": "Custom", 5 | "custom_action": "CommunityDailyAction", 6 | "next": [] 7 | } 8 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/tasks/MindSurveyTask.json: -------------------------------------------------------------------------------- 1 | { 2 | "MindSurveyTask": { 3 | "doc": "心智勘测任务", 4 | "next": [ 5 | "enterMindSurveyTask" 6 | ], 7 | "interrupt": [ 8 | "StartGame" 9 | ] 10 | }, 11 | "enterMindSurveyTask": { 12 | "doc": "正式进入心智勘测任务", 13 | "recognition": "OCR", 14 | "expected": "^战役推进$", 15 | "action": "Click", 16 | "post_wait_freezes": 100, 17 | "next": [ 18 | "ClickToEnterMindSurveySimulatedCombatPage" 19 | ] 20 | }, 21 | "ClickToEnterMindSurveySimulatedCombatPage": { 22 | "recognition": "OCR", 23 | "expected": "^模拟作战$", 24 | "action": "Click", 25 | "next": [ 26 | "enterMindSurveyPage" 27 | ] 28 | } 29 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/tasks/PlatoonTasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "PlatoonTasks": { 3 | "doc": "班组日常", 4 | "next": [ 5 | "clickPlatoonButton" 6 | ], 7 | "interrupt": [ 8 | "StartGame" 9 | ] 10 | }, 11 | "clickPlatoonButton": { 12 | "doc": "工会任务", 13 | "recognition": "OCR", 14 | "expected": "^班组$", 15 | "action": "Click", 16 | "post_wait_freezes": { 17 | "time": 1000, 18 | "rate_limit": 200 19 | }, 20 | "next": [ 21 | "checkPlatoon", 22 | "enterPlatoonDailySupplyTask", 23 | "enterPlatoonDailyCombatTask", 24 | "returnToHomePage" 25 | ] 26 | }, 27 | "checkPlatoon": { 28 | "doc": "检查是否加入班组", 29 | "recognition": "OCR", 30 | "expected": [ 31 | "一键", 32 | "加入", 33 | "申请", 34 | "记录" 35 | ], 36 | "roi": [ 37 | 465, 38 | 614, 39 | 350, 40 | 105 41 | ], 42 | "next": [ 43 | "returnToHomePage", 44 | "checkPlatoon" 45 | ] 46 | } 47 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/tasks/PrepareDailyTasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "PrepareDailyTasks": { 3 | "doc": "日常任务前准备", 4 | "next": [ 5 | "timeLimitedTask", 6 | "getNewEmails", 7 | "staminaReplenishment", 8 | "enterShop", 9 | "enterBoundaryAdvanceAction", 10 | "HomePage" 11 | ], 12 | "interrupt": [ 13 | "StartGame" 14 | ] 15 | } 16 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/tasks/PublicAreaDailyTasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "PublicAreaDailyTasks": { 3 | "doc": "公共区日常", 4 | "next": [ 5 | "clickPublicAreaDailyButton" 6 | ], 7 | "interrupt": [ 8 | "StartGame" 9 | ] 10 | }, 11 | "clickPublicAreaDailyButton": { 12 | "next": [ 13 | "enterLoungeAction", 14 | "enterDispatchCenterAction", 15 | "enterSchedulingGainsAction", 16 | "returnToHomePage" 17 | ] 18 | } 19 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/tasks/SimulatedCombat.json: -------------------------------------------------------------------------------- 1 | { 2 | "CombatSimulations": { 3 | "doc": "模拟作战日常", 4 | "next": [ 5 | "enterCombatSimulationsTask" 6 | ], 7 | "interrupt": [ 8 | "StartGame" 9 | ] 10 | }, 11 | "enterCombatSimulationsTask": { 12 | "doc": "正式进入模拟作战日常任务", 13 | "recognition": "OCR", 14 | "expected": "^战役推进$", 15 | "action": "Click", 16 | "post_wait_freezes": 100, 17 | "next": [ 18 | "clickEnterCombatSimulationsPage" 19 | ] 20 | }, 21 | "clickEnterCombatSimulationsPage": { 22 | "recognition": "OCR", 23 | "expected": "^模拟作战$", 24 | "action": "Click", 25 | "next": [ 26 | "enterBossFightTask", 27 | "enterCombatExercise", 28 | "enterPeakValueAssessment", 29 | "开始极限峰值任务", 30 | "enterMilitarySimulationTask", 31 | "returnToHomePage" 32 | ] 33 | } 34 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/tasks/StopGame.json: -------------------------------------------------------------------------------- 1 | { 2 | "StopGame": { 3 | "doc": "关闭游戏", 4 | "action": "StopApp", 5 | "package": "com.Sunborn.SnqxExilium" 6 | } 7 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/tasks/VersionActivityTask.json: -------------------------------------------------------------------------------- 1 | { 2 | "VersionActivityTask": { 3 | "doc": "版本活动日常", 4 | "next": [ 5 | "enterVersionActivityTask" 6 | ], 7 | "interrupt": [ 8 | "StartGame" 9 | ] 10 | }, 11 | "enterVersionActivityTask": { 12 | "doc": "正式进入版本活动任务,先验证是否在首页,然后判断是否存在活动标签,不存在就识别主页结束任务", 13 | "recognition": "OCR", 14 | "expected": "^战役推进$", 15 | "post_wait_freezes": 100, 16 | "next": [ 17 | "clickVersionActivityTagButton", 18 | "HomePage" 19 | ] 20 | }, 21 | "clickVersionActivityTagButton": { 22 | "doc": "点击版本活动标签按钮,版本更新后更改识别字段", 23 | "recognition": "OCR", 24 | "roi": [ 25 | 33, 26 | 37, 27 | 259, 28 | 414 29 | ], 30 | "expected": [ 31 | "歧路双轨", 32 | "歧路", 33 | "双轨", 34 | "路双" 35 | ], 36 | "action": "Click", 37 | "post_wait_freezes": 2000, 38 | "next": [ 39 | "switchVersionActivityChapter", 40 | "enterVersionActivityResourceSweep", 41 | "enterVersionActivityItemExchange", 42 | "returnToHomePage" 43 | ] 44 | }, 45 | "switchVersionActivityChapter": { 46 | "doc": "切换版本活动章节(大型活动), 默认false", 47 | "enabled": false, 48 | "recognition": "OCR", 49 | "expected": "^错位.*上篇$", 50 | "post_wait_freezes": 100, 51 | "action": "Click", 52 | "post_delay": 1000, 53 | "next": [ 54 | "enterVersionActivityResourceSweep", 55 | "enterVersionActivityItemExchange", 56 | "returnToHomePage" 57 | ] 58 | } 59 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/tasks/organizeStoreroom.json: -------------------------------------------------------------------------------- 1 | { 2 | "organizeStoreroom": { 3 | "doc": "整理仓库", 4 | "enabled": true, 5 | "recognition": "OCR", 6 | "expected": "战役推进", 7 | "next": [ 8 | "openNavigationScreen" 9 | ], 10 | "interrupt": [ 11 | "StartGame" 12 | ] 13 | }, 14 | "openNavigationScreen": { 15 | "doc": "打开智能导航光屏", 16 | "next": [ 17 | "enterStoreroom" 18 | ], 19 | "enabled": true, 20 | "action": "Click", 21 | "target": [ 22 | 59, 23 | 505, 24 | 68, 25 | 68 26 | ], 27 | "post_wait_freezes": 500 28 | }, 29 | "enterStoreroom": { 30 | "recognition": "OCR", 31 | "expected": "仓库", 32 | "action": "Click", 33 | "target": true, 34 | "post_wait_freezes": 500, 35 | "next": [ 36 | "storeroomEntered" 37 | ] 38 | }, 39 | "storeroomEntered": { 40 | "doc": "已进入仓库", 41 | "recognition": "OCR", 42 | "expected": "资源", 43 | "target": true, 44 | "next": [ 45 | "weapon", 46 | "weaponAttachments", 47 | "flower", 48 | "itemBox", 49 | "returnToHomePage" 50 | ] 51 | } 52 | } -------------------------------------------------------------------------------- /assets/resource/base/pipeline/tasks/活动层.json: -------------------------------------------------------------------------------- 1 | { 2 | "开始活动层任务": { 3 | "next": [ 4 | "开始美味烹调任务", 5 | "开始茶歇一刻任务" 6 | ] 7 | }, 8 | "活动层等级提升":{ 9 | "recognition": "OCR", 10 | "expected": [ 11 | "活动层等级提升", 12 | "等级提升" 13 | ], 14 | "post_wait_freezes": 500, 15 | "next": [ 16 | "确认活动层等级提升" 17 | ] 18 | }, 19 | "确认活动层等级提升":{ 20 | "recognition": "OCR", 21 | "expected": "点击空白处关闭", 22 | "action": "Click", 23 | "post_wait_freezes": 500 24 | } 25 | } -------------------------------------------------------------------------------- /assets/resource/resource_bilibili/pipeline/tasks/StartGame.json: -------------------------------------------------------------------------------- 1 | { 2 | "StartGame": { 3 | "package": "com.Sunborn.SnqxExilium.bilibili/.ExiliumMainActivity" 4 | }, 5 | "openGF2GameApp": { 6 | "package": "com.Sunborn.SnqxExilium.bilibili/.ExiliumMainActivity" 7 | } 8 | } -------------------------------------------------------------------------------- /assets/resource/resource_bilibili/pipeline/tasks/StopGame.json: -------------------------------------------------------------------------------- 1 | { 2 | "StopGame": { 3 | "doc": "关闭游戏", 4 | "action": "StopApp", 5 | "package": "com.Sunborn.SnqxExilium.bilibili" 6 | } 7 | } -------------------------------------------------------------------------------- /assets/resource/resource_en/image/仓库/拆解界面.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/resource_en/image/仓库/拆解界面.png -------------------------------------------------------------------------------- /assets/resource/resource_en/image/启动游戏/SunbornGameLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/resource_en/image/启动游戏/SunbornGameLogo.png -------------------------------------------------------------------------------- /assets/resource/resource_en/pipeline/public/SimulatedCombat/极限峰值.json: -------------------------------------------------------------------------------- 1 | { 2 | "开始极限峰值任务": { 3 | "enabled": false 4 | } 5 | } -------------------------------------------------------------------------------- /assets/resource/resource_en/pipeline/public/organizeStoreroom/flower.json: -------------------------------------------------------------------------------- 1 | { 2 | "flower": { 3 | "doc": "生长数据", 4 | "enabled": true, 5 | "recognition": "OCR", 6 | "expected": "生长数据", 7 | "action": "Click", 8 | "target": true, 9 | "post_wait_freezes": 500, 10 | "next": [ 11 | "enterFlowerDisassemblyInterface" 12 | ] 13 | }, 14 | "enterFlowerDisassemblyInterface": { 15 | "doc": "进入拆解界面", 16 | "recognition": "TemplateMatch", 17 | "template": [ 18 | "仓库/拆解界面.png" 19 | ], 20 | "action": "Click", 21 | "target": true, 22 | "post_wait_freezes": 500, 23 | "next": [ 24 | "noFlowerLeft", 25 | "selectFlowerLevel" 26 | ] 27 | }, 28 | "noFlowerLeft": { 29 | "doc": "无可拆解生长数据", 30 | "recognition": "OCR", 31 | "expected": "无可拆解生长数据", 32 | "action": "Click", 33 | "post_wait_freezes": 500, 34 | "next": [ 35 | "exitFlower" 36 | ] 37 | }, 38 | "selectFlowerLevel": { 39 | "doc": "选择生长数据等级", 40 | "recognition": "OCR", 41 | "expected": "及以下", 42 | "action": "Click", 43 | "target": true, 44 | "post_wait_freezes": 500, 45 | "next": [ 46 | "chooseFlowerLevel" 47 | ] 48 | }, 49 | "chooseFlowerLevel": { 50 | "doc": "选择需要拆解的级别", 51 | "recognition": "OCR", 52 | "expected": "工业级及以下", 53 | "action": "Click", 54 | "target": true, 55 | "post_wait_freezes": 500, 56 | "next": [ 57 | "quickSelectFlower" 58 | ] 59 | }, 60 | "quickSelectFlower": { 61 | "doc": "快捷选择,", 62 | "recognition": "OCR", 63 | "expected": "快捷选择", 64 | "action": "Click", 65 | "target": true, 66 | "post_delay": 100, 67 | "next": [ 68 | "noFlowerToDisassemble", 69 | "disassemblyFlower", 70 | "quickSelectFlower" 71 | ] 72 | }, 73 | "disassemblyFlower": { 74 | "doc": "点击拆解键", 75 | "recognition": "TemplateMatch", 76 | "template": [ 77 | "仓库/拆解按钮.png" 78 | ], 79 | "threshold": 0.9, 80 | "action": "Click", 81 | "post_wait_freezes": 500, 82 | "next": [ 83 | "closeFlowerResultByClickingBlank", 84 | "flowerResultClosed" 85 | ] 86 | }, 87 | "closeFlowerResultByClickingBlank": { 88 | "recognition": "OCR", 89 | "expected": "点击空白处关闭", 90 | "action": "Click", 91 | "post_wait_freezes": 500, 92 | "next": [ 93 | "flowerResultClosed" 94 | ] 95 | }, 96 | "flowerResultClosed": { 97 | "recognition": "OCR", 98 | "expected": "请选择需要拆解的道具", 99 | "post_wait_freezes": 500, 100 | "next": [ 101 | "noFlowerLeft", 102 | "quickSelectFlower" 103 | ] 104 | }, 105 | "noFlowerToDisassemble": { 106 | "recognition": "OCR", 107 | "expected": [ 108 | "无符合筛选条件的物品", 109 | "无符合", 110 | "条件的物品" 111 | ], 112 | "post_wait_freezes": 500, 113 | "next": [ 114 | "exitFlower" 115 | ] 116 | }, 117 | "exitFlower": { 118 | "recognition": "TemplateMatch", 119 | "template": [ 120 | "公用按钮组件/返回上一页_gray.png", 121 | "公用按钮组件/返回上一页_black.png" 122 | ], 123 | "action": "Click", 124 | "post_delay": 2500, 125 | "next": [ 126 | "itemBox", 127 | "returnToHomePage" 128 | ] 129 | } 130 | } -------------------------------------------------------------------------------- /assets/resource/resource_en/pipeline/public/organizeStoreroom/weapon.json: -------------------------------------------------------------------------------- 1 | { 2 | "weapon": { 3 | "doc": "武器", 4 | "enabled": true, 5 | "recognition": "OCR", 6 | "expected": "人形武器", 7 | "action": "Click", 8 | "target": true, 9 | "post_wait_freezes": 500, 10 | "next": [ 11 | "enterWeaponDisassemblyInterface" 12 | ] 13 | }, 14 | "enterWeaponDisassemblyInterface": { 15 | "doc": "进入拆解界面", 16 | "recognition": "TemplateMatch", 17 | "template": [ 18 | "仓库/拆解界面.png" 19 | ], 20 | "action": "Click", 21 | "target": true, 22 | "post_wait_freezes": 500, 23 | "next": [ 24 | "selectWeaponLevel" 25 | ] 26 | }, 27 | "selectWeaponLevel": { 28 | "doc": "点击展开武器等级多选框", 29 | "recognition": "OCR", 30 | "expected": [ 31 | "旧式未培养武器", 32 | "标准及以下未培养武器", 33 | "精英及以下未培养武器" 34 | ], 35 | "action": "Click", 36 | "target": true, 37 | "post_wait_freezes": 500, 38 | "next": [ 39 | "chooseWeaponLevel" 40 | ] 41 | }, 42 | "chooseWeaponLevel": { 43 | "doc": "选择需要拆解的级别", 44 | "recognition": "OCR", 45 | "expected": "旧式未培养武器", 46 | "action": "Click", 47 | "target": true, 48 | "post_wait_freezes": 500, 49 | "next": [ 50 | "quickSelectWeapon" 51 | ] 52 | }, 53 | "quickSelectWeapon": { 54 | "doc": "快捷选择,", 55 | "recognition": "OCR", 56 | "expected": "快捷选择", 57 | "action": "Click", 58 | "target": true, 59 | "post_delay": 100, 60 | "next": [ 61 | "noWeaponToDisassemble", 62 | "disassemblyWeapon", 63 | "quickSelectWeapon" 64 | ] 65 | }, 66 | "disassemblyWeapon": { 67 | "doc": "点击拆解键", 68 | "recognition": "TemplateMatch", 69 | "template": [ 70 | "仓库/拆解按钮.png" 71 | ], 72 | "threshold": 0.9, 73 | "action": "Click", 74 | "post_wait_freezes": 500, 75 | "next": [ 76 | "findWeaponDisassemblyNotification", 77 | "closeWeaponDisassemblyResultByClickingBlank", 78 | "weaponDisassemblyResultClosed" 79 | ] 80 | }, 81 | "findWeaponDisassemblyNotification": { 82 | "doc": "找到拆解通知", 83 | "recognition": "OCR", 84 | "expected": "是否确认拆解", 85 | "roi": [367,302,526,72], 86 | "next": [ 87 | "confirmWeaponDisassemblyNotification" 88 | ] 89 | }, 90 | "confirmWeaponDisassemblyNotification": { 91 | "doc": "确认拆解通知", 92 | "recognition": "OCR", 93 | "expected": "确认", 94 | "action": "Click", 95 | "roi": [783,519,89,42], 96 | "post_wait_freezes": 500, 97 | "next": [ 98 | "closeWeaponDisassemblyResultByClickingBlank" 99 | ] 100 | }, 101 | "closeWeaponDisassemblyResultByClickingBlank": { 102 | "recognition": "OCR", 103 | "expected": "点击空白处关闭", 104 | "action": "Click", 105 | "post_wait_freezes": 500, 106 | "next": [ 107 | "weaponDisassemblyResultClosed" 108 | ] 109 | }, 110 | "weaponDisassemblyResultClosed": { 111 | "recognition": "OCR", 112 | "expected": "请选择需要拆解的道具", 113 | "post_wait_freezes": 500, 114 | "next": [ 115 | "quickSelectWeapon" 116 | ] 117 | }, 118 | "noWeaponToDisassemble": { 119 | "recognition": "OCR", 120 | "expected": [ 121 | "无符合筛选条件的物品", 122 | "无符合", 123 | "条件的物品" 124 | ], 125 | "post_wait_freezes": 500, 126 | "next": [ 127 | "exitWeaponDisassembly" 128 | ] 129 | }, 130 | "exitWeaponDisassembly": { 131 | "recognition": "TemplateMatch", 132 | "template": [ 133 | "公用按钮组件/返回上一页_gray.png", 134 | "公用按钮组件/返回上一页_black.png" 135 | ], 136 | "action": "Click", 137 | "post_delay": 2500, 138 | "next": [ 139 | "weaponAttachments", 140 | "flower", 141 | "itemBox", 142 | "returnToHomePage" 143 | ] 144 | } 145 | } -------------------------------------------------------------------------------- /assets/resource/resource_en/pipeline/public/organizeStoreroom/weaponAttachments.json: -------------------------------------------------------------------------------- 1 | { 2 | "weaponAttachments": { 3 | "doc": "武器配件", 4 | "enabled": true, 5 | "recognition": "OCR", 6 | "expected": "武器配件", 7 | "action": "Click", 8 | "target": true, 9 | "post_wait_freezes": 500, 10 | "next": [ 11 | "enterDisassemblyInterface" 12 | ] 13 | }, 14 | "enterDisassemblyInterface": { 15 | "doc": "进入拆解界面", 16 | "recognition": "TemplateMatch", 17 | "template": [ 18 | "仓库/拆解界面.png" 19 | ], 20 | "action": "Click", 21 | "target": true, 22 | "post_wait_freezes": 500, 23 | "next": [ 24 | "selectAccessoriesLevel" 25 | ] 26 | }, 27 | "selectAccessoriesLevel": { 28 | "doc": "选择配件等级", 29 | "recognition": "OCR", 30 | "expected": "及以下未培养", 31 | "action": "Click", 32 | "target": true, 33 | "post_wait_freezes": 500, 34 | "next": [ 35 | "chooseLevel" 36 | ] 37 | }, 38 | "chooseLevel": { 39 | "doc": "选择需要拆解的级别", 40 | "recognition": "OCR", 41 | "expected": "工业级及以下未培养", 42 | "action": "Click", 43 | "target": true, 44 | "post_wait_freezes": 500, 45 | "next": [ 46 | "quickSelect" 47 | ] 48 | }, 49 | "quickSelect": { 50 | "doc": "快捷选择,", 51 | "recognition": "OCR", 52 | "expected": "快捷选择", 53 | "action": "Click", 54 | "target": true, 55 | "next": [ 56 | "noAccessoriesToDisassemble", 57 | "disassembly", 58 | "finalActionForQuickSelect" 59 | ] 60 | }, 61 | "disassembly": { 62 | "doc": "点击拆解键", 63 | "recognition": "TemplateMatch", 64 | "template": [ 65 | "仓库/拆解按钮.png" 66 | ], 67 | "threshold": 0.9, 68 | "action": "Click", 69 | "post_wait_freezes": 500, 70 | "next": [ 71 | "closeByClickingBlank", 72 | "resultClosed" 73 | ] 74 | }, 75 | "closeByClickingBlank": { 76 | "recognition": "OCR", 77 | "expected": "点击空白处关闭", 78 | "action": "Click", 79 | "post_wait_freezes": 500, 80 | "next": [ 81 | "resultClosed" 82 | ] 83 | }, 84 | "resultClosed": { 85 | "recognition": "OCR", 86 | "expected": "请选择需要拆解的道具", 87 | "post_wait_freezes": 500, 88 | "next": [ 89 | "quickSelect" 90 | ] 91 | }, 92 | "noAccessoriesToDisassemble": { 93 | "recognition": "OCR", 94 | "expected": [ 95 | "无符合筛选条件的物品", 96 | "无符合", 97 | "条件的物品" 98 | ], 99 | "post_wait_freezes": 500, 100 | "next": [ 101 | "exitWeaponAttachments" 102 | ] 103 | }, 104 | "finalActionForQuickSelect": { 105 | "doc": "有的用户quickSelect节点两个选项都识别不到,用这个兜底直接退出", 106 | "next": [ 107 | "exitWeaponAttachments" 108 | ] 109 | }, 110 | "exitWeaponAttachments": { 111 | "recognition": "TemplateMatch", 112 | "template": [ 113 | "公用按钮组件/返回上一页_gray.png", 114 | "公用按钮组件/返回上一页_black.png" 115 | ], 116 | "action": "Click", 117 | "post_delay": 2500, 118 | "next": [ 119 | "flower", 120 | "itemBox", 121 | "returnToHomePage" 122 | ] 123 | } 124 | } -------------------------------------------------------------------------------- /assets/resource/resource_en/pipeline/tasks/CommunityDaillyHelper.json: -------------------------------------------------------------------------------- 1 | { 2 | "CommunityDailyHelper": { 3 | "enabled": false 4 | } 5 | } -------------------------------------------------------------------------------- /assets/resource/resource_en/pipeline/tasks/PublicAreaDailyTasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "PublicAreaDailyTasks": { 3 | "doc": "公共区日常", 4 | "next": [ 5 | "clickPublicAreaDailyButton" 6 | ], 7 | "interrupt": [ 8 | "StartGame" 9 | ] 10 | }, 11 | "clickPublicAreaDailyButton": { 12 | "recognition": "OCR", 13 | "expected": "^公共区$", 14 | "action": "Click", 15 | "post_delay": 1500, 16 | "next": [ 17 | "enterLoungeAction", 18 | "enterDispatchCenterAction", 19 | "enterSchedulingGainsAction", 20 | "returnToHomePage" 21 | ] 22 | } 23 | } -------------------------------------------------------------------------------- /assets/resource/resource_en/pipeline/tasks/StartGame.json: -------------------------------------------------------------------------------- 1 | { 2 | "StartGame": { 3 | "package": "com.Sunborn.SnqxExilium.Glo/.ExiliumMainActivity" 4 | }, 5 | "StartGame_sunbornGameLogo": { 6 | "template": "启动游戏/SunbornGameLogo.png", 7 | "next": [ 8 | "StartGame_sunbornGameLogo", 9 | "StartGame_copyright" 10 | ] 11 | }, 12 | "StartGame_copyright": { 13 | "doc": "加载进度条下的版权信息", 14 | "recognition": "OCR", 15 | "expected": [ 16 | "^Copyright" 17 | ], 18 | "action": "Click", 19 | "timeout": 35000, 20 | "next": [ 21 | "StartGame_clickStart", 22 | "StartGame_copyright" 23 | ], 24 | "interrupt": [ 25 | "restartGF2Game", 26 | "unzipResources", 27 | "downloadResource" 28 | ] 29 | }, 30 | "openGF2GameApp": { 31 | "package": "com.Sunborn.SnqxExilium.Glo/.ExiliumMainActivity" 32 | } 33 | } -------------------------------------------------------------------------------- /assets/resource/resource_en/pipeline/tasks/StopGame.json: -------------------------------------------------------------------------------- 1 | { 2 | "StopGame": { 3 | "package": "com.Sunborn.SnqxExilium.Glo" 4 | } 5 | } -------------------------------------------------------------------------------- /assets/resource/resource_en/pipeline/tasks/organizeStoreroom.json: -------------------------------------------------------------------------------- 1 | { 2 | "organizeStoreroom": { 3 | "doc": "整理仓库", 4 | "enabled": true, 5 | "recognition": "OCR", 6 | "expected": "战役推进", 7 | "next": [ 8 | "openNavigationScreen" 9 | ] 10 | }, 11 | "openNavigationScreen": { 12 | "doc": "打开智能导航光屏", 13 | "next": [ 14 | "enterStoreroom" 15 | ], 16 | "enabled": true, 17 | "action": "Click", 18 | "target": [ 19 | 59, 20 | 505, 21 | 68, 22 | 68 23 | ], 24 | "post_wait_freezes": 500 25 | }, 26 | "enterStoreroom": { 27 | "recognition": "OCR", 28 | "expected": "仓库", 29 | "action": "Click", 30 | "target": true, 31 | "post_delay": 1500, 32 | "next": [ 33 | "weapon", 34 | "weaponAttachments", 35 | "flower", 36 | "itemBox", 37 | "returnToHomePage" 38 | ] 39 | } 40 | } -------------------------------------------------------------------------------- /assets/resource/resource_en/pipeline/tasks/public/AutoSweepBattle/popupAccessories.json: -------------------------------------------------------------------------------- 1 | { 2 | "increaseSliderMaxAccessories": { 3 | "roi": [ 4 | 122, 5 | 88, 6 | 1037, 7 | 954 8 | ] 9 | } 10 | } -------------------------------------------------------------------------------- /assets/resource/resource_en/pipeline/tasks/public/ClaimRewardTasks/commission.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirmEntrustedClaimPage": { 3 | "doc": "外服因延迟导致进入委托页面时会加载一段时间,此时使用原有检测会异常(失败或直接进行下一步)", 4 | "recognition": "OCR", 5 | "roi": [ 6 | 484, 7 | 116, 8 | 52, 9 | 28 10 | ], 11 | "expected": "[1-9]\\d*$" 12 | } 13 | } -------------------------------------------------------------------------------- /assets/resource/resource_en/pipeline/tasks/public/PlatoonTasks/platoonDailyCombatLogic.json: -------------------------------------------------------------------------------- 1 | { 2 | "clickPlatoonDailyCombatStartButton": { 3 | "pre_wait_freezes": 1500 4 | } 5 | } -------------------------------------------------------------------------------- /assets/resource/resource_en/pipeline/tasks/public/PrepareDailyTasks/GameStore/GameStore.json: -------------------------------------------------------------------------------- 1 | { 2 | "confirmSupplyBoxPurchase": { 3 | "expected": "^(购买|确认)$" 4 | } 5 | } -------------------------------------------------------------------------------- /assets/resource/resource_en/pipeline/tasks/public/PublicAreaDailyTasks/dispatchCenter.json: -------------------------------------------------------------------------------- 1 | { 2 | "enterDispatchCenterAction": { 3 | "enabled": true, 4 | "next": [ 5 | "dispatchCenterButtonClick" 6 | ] 7 | }, 8 | "dispatchCenterButtonClick": { 9 | "recognition": "OCR", 10 | "expected": "调度室", 11 | "action": "Click", 12 | "post_wait_freezes": 1000, 13 | "next": [ 14 | "dispatchCenterEntered" 15 | ] 16 | }, 17 | "dispatchCenterEntered": { 18 | "doc": "已进入调度室", 19 | "recognition": "OCR", 20 | "expected": "^调度考核$", 21 | "post_wait_freezes": 1000, 22 | "next": [ 23 | "rewardGet", 24 | "noRewardGet" 25 | ] 26 | }, 27 | "noRewardGet": { 28 | "doc": "没有可领取的奖励", 29 | "post_wait_freezes": 1000, 30 | "next": [ 31 | "dispatchProgressing", 32 | "sendDispatchNotification" 33 | ] 34 | }, 35 | "dispatchProgressing": { 36 | "doc": "派遣进行中", 37 | "recognition": "OCR", 38 | "expected": "同时可派遣5/5", 39 | "roi": [ 40 | 1072, 41 | 532, 42 | 171, 43 | 43 44 | ], 45 | "next": [ 46 | "claimDispatchCenterDispatchCountReward", 47 | "enterSchedulingGainsAction", 48 | "returnToHomePage" 49 | ] 50 | }, 51 | "sendDispatchNotification": { 52 | "doc": "发送手动处理派遣的通知", 53 | "next": [ 54 | "claimDispatchCenterDispatchCountReward", 55 | "enterSchedulingGainsAction", 56 | "returnToHomePage" 57 | ], 58 | "focus": { 59 | "start": "[color:red]公共区调度室未完全派遣,请手动处理[/color]", 60 | "toast": "公共区调度室未完全派遣,请手动处理" 61 | } 62 | }, 63 | "rewardGet": { 64 | "doc": "领取调度室奖励", 65 | "recognition": "OCR", 66 | "expected": [ 67 | "领取", 68 | "一键领取", 69 | "键领取" 70 | ], 71 | "action": "Click", 72 | "post_wait_freezes": 1000, 73 | "next": [ 74 | "dispatchCenterSendAgain" 75 | ] 76 | }, 77 | "dispatchCenterSendAgain": { 78 | "recognition": "OCR", 79 | "expected": "再次派遣", 80 | "action": "Click", 81 | "post_delay": 4000, 82 | "next": [ 83 | "claimDispatchCenterDispatchCountReward", 84 | "enterSchedulingGainsAction", 85 | "returnToHomePage" 86 | ] 87 | }, 88 | "claimDispatchCenterDispatchCountReward": { 89 | "recognition": "TemplateMatch", 90 | "template": "公用按钮组件/提醒.png", 91 | "roi": [ 92 | 19, 93 | 472, 94 | 459, 95 | 129 96 | ], 97 | "action": "Click", 98 | "target": true, 99 | "target_offset": [ 100 | -20, 101 | 20, 102 | 0, 103 | 0 104 | ], 105 | "post_wait_freezes": 300, 106 | "next": [ 107 | "closeDispatchCenterDispatchCountRewardClaimResultPage", 108 | "claimDispatchCenterDispatchCountReward" 109 | ] 110 | }, 111 | "closeDispatchCenterDispatchCountRewardClaimResultPage": { 112 | "recognition": "OCR", 113 | "expected": "空白", 114 | "action": "Click", 115 | "post_delay": 1500, 116 | "next": [ 117 | "closeDispatchCenterDispatchCountRewardClaimResultPage", 118 | "enterSchedulingGainsAction", 119 | "returnToHomePage" 120 | ] 121 | } 122 | } -------------------------------------------------------------------------------- /assets/resource/resource_en/pipeline/tasks/public/PublicAreaDailyTasks/lounge.json: -------------------------------------------------------------------------------- 1 | { 2 | "enterLoungeAction": { 3 | "enabled": true, 4 | "next": [ 5 | "loungeButtonClick" 6 | ] 7 | }, 8 | "loungeButtonClick": { 9 | "recognition": "OCR", 10 | "action": "Click", 11 | "expected": "^休息室$", 12 | "next": [ 13 | "loungeConfirm" 14 | ] 15 | }, 16 | "loungeConfirm": { 17 | "recognition": "OCR", 18 | "expected": "姿态", 19 | "next": [ 20 | "loungeBackPage" 21 | ] 22 | }, 23 | "loungeBackPage": { 24 | "recognition": "TemplateMatch", 25 | "roi": [ 26 | 0, 27 | 0, 28 | 200, 29 | 70 30 | ], 31 | "template": [ 32 | "公用按钮组件/返回上一页_gray.png", 33 | "公用按钮组件/返回上一页_black.png" 34 | ], 35 | "action": "Click", 36 | "post_delay": 1000, 37 | "next": [ 38 | "enterDispatchCenterAction", 39 | "enterSchedulingGainsAction", 40 | "returnToHomePage" 41 | ] 42 | } 43 | } -------------------------------------------------------------------------------- /assets/resource/resource_en/pipeline/tasks/public/SimulatedCombat/bossChallenge.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "clickEnterBossFightPage": { 4 | "doc": "增加重试", 5 | "post_wait_freezes": 500, 6 | "next": [ 7 | "enterBossStandardBattle", 8 | "clickEnterBossFightPage" 9 | ] 10 | } 11 | } -------------------------------------------------------------------------------- /assets/resource/resource_glo/image/启动游戏/HaoPlayLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/assets/resource/resource_glo/image/启动游戏/HaoPlayLogo.png -------------------------------------------------------------------------------- /assets/resource/resource_glo/pipeline/tasks/StartGame.json: -------------------------------------------------------------------------------- 1 | { 2 | "StartGame": { 3 | "package": "com.haoplay.game.and.exilium/.ExiliumMainActivity" 4 | }, 5 | "StartGame_sunbornGameLogo": { 6 | "template": "启动游戏/HaoPlayLogo.png" 7 | }, 8 | "openGF2GameApp": { 9 | "package": "com.haoplay.game.and.exilium/.ExiliumMainActivity" 10 | } 11 | } -------------------------------------------------------------------------------- /assets/resource/resource_glo/pipeline/tasks/StopGame.json: -------------------------------------------------------------------------------- 1 | { 2 | "StopGame": { 3 | "package": "com.haoplay.game.and.exilium" 4 | } 5 | } -------------------------------------------------------------------------------- /check_resource.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | from typing import List 4 | from pathlib import Path 5 | 6 | from maa.resource import Resource 7 | from maa.tasker import Tasker, LoggingLevelEnum 8 | 9 | 10 | def check(dirs: List[Path]) -> bool: 11 | resource = Resource() 12 | 13 | print(f"Checking {len(dirs)} directories...") 14 | 15 | for dir in dirs: 16 | print(f"Checking {dir}...") 17 | status = resource.post_path(dir).wait().status() 18 | if not status.succeeded(): 19 | print(f"Failed to check {dir}.") 20 | return False 21 | 22 | print("All directories checked.") 23 | return True 24 | 25 | 26 | def main(): 27 | if len(sys.argv) < 2: 28 | print("Usage: python configure.py ") 29 | sys.exit(1) 30 | 31 | Tasker.set_stdout_level(LoggingLevelEnum.All) 32 | 33 | dirs = [Path(arg) for arg in sys.argv[1:]] 34 | if not check(dirs): 35 | sys.exit(1) 36 | 37 | 38 | if __name__ == "__main__": 39 | main() 40 | -------------------------------------------------------------------------------- /config/maa_option.json: -------------------------------------------------------------------------------- 1 | { 2 | "logging": true, 3 | "recording": false, 4 | "save_draw": false, 5 | "show_hit_draw": false, 6 | "stdout_level": 2 7 | } -------------------------------------------------------------------------------- /configure.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | 3 | import shutil 4 | 5 | assets_dir = Path(__file__).parent / "assets" 6 | 7 | 8 | def configure_ocr_model(): 9 | if not (assets_dir / "MaaCommonAssets" / "OCR").exists(): 10 | print( 11 | 'Please clone this repository completely, don’t miss "--recursive", and don’t download the zip package!' 12 | ) 13 | print('请完整克隆本仓库,不要漏掉 "--recursive",也不要下载 zip 包!') 14 | exit(1) 15 | 16 | ocr_dir = assets_dir / "resource" / "base" / "model" / "ocr" 17 | if True: # 总是使用远程的最新 OCR 模型 18 | shutil.copytree( 19 | assets_dir / "MaaCommonAssets" / "OCR" / "ppocr_v5" / "zh_cn", 20 | ocr_dir, 21 | dirs_exist_ok=True, 22 | ) 23 | 24 | 25 | if __name__ == "__main__": 26 | configure_ocr_model() 27 | 28 | print("OCR model configured.") 29 | -------------------------------------------------------------------------------- /cspell.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2", 3 | "ignorePaths": [], 4 | "dictionaryDefinitions": [], 5 | "dictionaries": [], 6 | "words": [], 7 | "ignoreWords": [], 8 | "import": [] 9 | } 10 | -------------------------------------------------------------------------------- /debug.bat: -------------------------------------------------------------------------------- 1 | python ./configure.py 2 | python -m MaaDebugger -------------------------------------------------------------------------------- /docs/Git提交前缀.md: -------------------------------------------------------------------------------- 1 | # Git 提交前缀规范文档 2 | 3 | ## 概述 4 | 5 | 为了保持仓库中的提交历史整洁和一致,规范和标准化了一下提交信息格式。此文档定义了提交信息的基本结构和一些常用的提交前缀,希望可以遵循此规范。 6 | 7 | ## 提交信息格式 8 | 9 | 提交信息应当遵循以下格式,需要注意的是冒号如果使用英文状态下的冒号后加空格后再写简短描述,例:`: 修改bug`,用中文冒号时后面紧跟简短描述,例:`:修改bug`。推荐使用英文冒号加空格的形式。 10 | 11 | ```plaintext 12 | <前缀>(可选范围):<空格><简短描述> 13 | <空行> 14 | <详细描述> (如果适用) 15 | <空行> 16 | -<列表描述> (如果适用) 17 | ``` 18 | 19 | ### 示例 20 | 21 | ```plaintext 22 | refactor(PublicAreaDailyTasks): 重构了公共区日常任务 23 | 24 | 当前访问休息室和调度室派遣导致选项过多,因此可以改为一个任务入口,从公共区里面执行访问休息室和调度室派遣。 25 | 26 | - 删除interface.json原有的进入休息室和调度室每日任务选项,整合到了公共区日常任务作为子选项使用 27 | - 提取访问休息室和调度室的代码到public 28 | - 新增PublicAreaDailyTasks文件,供interface.json文件调用作为用户任务选项 29 | - 修改了部分命名规范 30 | ``` 31 | 32 | ## 前缀列表 33 | 34 | ### 常用前缀 35 | 36 | - `feat` - 新功能 37 | 38 | 用于新增功能的提交。 39 | 40 | - `fix` - 修复bug 41 | 42 | 用于修复脚本错误和bug的提交。 43 | 44 | - `docs` - 文档 45 | 46 | 仅涉及文档变化的提交。 47 | 48 | - `chore` - 常规的维护任务或杂项任务 49 | 50 | 不直接影响源代码或测试的提交,如更新构建配置文件,删除未使用的代码或文件等。表示删除时,一般是删除后需要编写其他替代方案或优化删除的原本功能时使用该前缀。 51 | 52 | ```plaintext 53 | chore(ClaimStamina):删除活动页面限时领取体力的功能,之后活动页面所有功能迁移到ClaimEventRewards文件,统一管理活动页的各种业务 54 | ``` 55 | 56 | - `refactor` - 重构 57 | 58 | 重构现有代码,不改变外部行为。 59 | 60 | - `perf` - 性能优化 61 | 62 | 改进代码性能的提交。 63 | 64 | - `remove` - 删除 65 | 66 | 用于表示删除不再使用的代码或脚本,一般删除废弃脚本,且后续没有替代方案。例如: 67 | 68 | ```plaintext 69 | remove(ClaimStamina): 删除废弃的领取限时体力脚本 70 | ``` 71 | 72 | - `rename` - 重命名 73 | 74 | 重命名文件或目录。 75 | 76 | ### 使用较少的前缀 77 | 78 | 79 | 80 | - `merge` - 合并 81 | 82 | 合并分支。 83 | 84 | - `release` - 发布 85 | 86 | 发布版本的准备。 87 | 88 | - `init` - 初始化 89 | 90 | 初始提交或项目初始化。 91 | 92 | - `config` - 配置 93 | 94 | 配置文件的更改。 95 | 96 | - `style` - 样式 97 | 98 | 不影响代码运行的样式修改,如空格、分号等。 99 | 100 | - `deps` - 依赖 101 | 102 | 更新依赖项版本。 103 | 104 | - `test` - 测试 105 | 106 | 增加缺失的测试或校验现有测试。 107 | 108 | - `ci` - 持续集成 109 | 110 | 与持续集成相关的更改。 111 | 112 | - `build` - 构建系统 113 | 114 | 与构建系统相关的更改。 115 | 116 | - `revert` - 回滚 117 | 118 | 回滚到上一个版本或特定版本的提交。 119 | 120 | ## 可选范围 121 | 122 | 如果适用,可以在前缀后面加上括号,并在括号内指定变更的功能、文件、,以便其他开发者能够快速定位变更位置。一般而言,在本项目里面,括号里面写的是涉及到的功能或修改的文件。开发者可自行判断填写。 123 | 124 | ### 示例 125 | 126 | ```plaintext 127 | fix(enterDispatchCenterAction): 修复派遣任务一键领取识别与预期不符导致无法领取的bug 128 | ``` 129 | 130 | ## 写作指南 131 | 132 | 1. **简短描述**: 133 | - 必须是一句完整的句子,以动词开头。 134 | - 保持简短,最好不超过50个字符。 135 | 136 | 2. **详细描述**: 137 | - 如果有必要,可以提供更详细的解释。 138 | - 使用完整的句子和段落。 139 | - 包括背景信息、解决方案和任何必要的上下文。 140 | 141 | 3. **注意事项**: 142 | - 避免使用缩写和行话,除非它们在团队中广泛被理解。 143 | - 尽量避免使用模糊不清的描述,比如“修复问题”、“更新代码”。 -------------------------------------------------------------------------------- /docs/Json文件说明.md: -------------------------------------------------------------------------------- 1 | # JSON说明 2 | 项目是基于[任务流水线(Pipeline)协议](https://github.com/MaaXYZ/MaaFramework/blob/main/docs/zh_cn/3.1-%E4%BB%BB%E5%8A%A1%E6%B5%81%E6%B0%B4%E7%BA%BF%E5%8D%8F%E8%AE%AE.md)编写的,因此为了更好的管理JSON文件,对文件命名和文件位置和做了一些规范。 3 | 4 | ## JSON文件命名规范 5 | > 规范只是让其更好的管理文件,并非一定要遵守。 6 | 1. 作为任务入口(被interface.json文件调用)的JSON文件,命名为大驼峰命名法,即每个单词都大写,例: `LoungeTasks.json` ,该文件一般被放入 `assets\resource\base\pipeline\tasks` 目录下。 7 | 2. 被其他JSON文件调用,不直接写入interface.Json文件的。以小驼峰命名法命名,即第一个单词以小写字母开头,其余单词开头大写,例:`battleTask.json` ,该类型文件一般被放入 `assets\resource\base\pipeline\public` 文件夹中。 8 | 3. 为了兼容未来版本,尽量减少属性字段 `is_sub` 的使用 9 | 10 | ## JSON文件位置 11 | 可编辑的大部分任务JSON文件位置都位于项目目录下的 `assets/resource/base/pipeline` 的子目录中,目录结构如下。 12 | 13 | ```cmd 14 | base 15 | ├─image 16 | │ ├─公用按钮组件 17 | │ ├─实兵演习 18 | │ ├─招募 19 | │ └─整备室 20 | ├─model 21 | │ └─ocr 22 | └─pipeline 23 | ├─public 24 | ├─tasks 25 | ├─timeLimitedTasks 26 | └─test 27 | ``` 28 | 29 | - `public` 目录,用于存放被其他JSON调用,即任务入口文件调用的JSON文件,文件名和任务名均采用小驼峰命名法。 30 | - `tasks` 目录,存放任务入口JSON文件,被`assets\interface.json`文件调用,文件名和任务入口一致且采用大驼峰命名法。 31 | - `timeLimitedTasks` 目录,存放具有时效性的任务入口JSON文件,例如:活动页面领取体力、限时活动奖励、版本活动关卡。被`assets\interface.json`文件调用 ,文件名和任务入口名规范同上。 32 | - `test` 目录,用于存放正在编写、未完成、或者测试的JSON文件。 -------------------------------------------------------------------------------- /docs/Pip协议心得.md: -------------------------------------------------------------------------------- 1 | # 开发心得(给自己看的) 2 | ## 任务的自我调用 3 | 当一个任务被识别到但是可能因为动画效果点击后无反应,或者需要等待动画结束(很短的动画)。如果这个任务next中有下一个任务则可能会被影响,此时可以在next中调用自身,确保动作会反复执行,直到动作真的生效。 4 | 5 | ```json 6 | { 7 | "closeClaimAllEmailsPopup": { 8 | "recognition": "OCR", 9 | "expected": "点击空白处关闭", 10 | "action": "Click", 11 | "next": [ 12 | "closeClaimAllEmailsPopup", 13 | "returnToHomePage" 14 | ] 15 | } 16 | ``` 17 | 18 | 上述任务中,任务进入后提前判断到了点击空白处关闭,但是因为动画未结束所以动作无效,会导致`returnToHomePage`任务在无法预期情况下执行。可以在`returnToHomePage`前调用`closeClaimAllEmailsPopup`本身,直到无法识别到“点击空白处关闭”后失败,转向执行`closeClaimAllEmailsPopup`。 19 | 20 | ## 出现很少的弹窗或每周结算页面 21 | 22 | 这种页面要在上一个任务的next列表第一个来判断,使用is_sub循环识别,直到消失后返回到正常流程。 23 | -------------------------------------------------------------------------------- /docs/常见问题.md: -------------------------------------------------------------------------------- 1 | # 常见问题 2 | ## 加载资源失败 3 | 删掉整个文件,重新下载新的版本软件的压缩包,重新使用 4 | 5 | ~~重装解决99%的问题~~ 6 | 7 | ## 无法删除文件夹,被占用了 8 | 打开任务管理器,搜索 `adb.exe` 结束进程 9 | 10 | ## 连接模拟器时发生错误 11 | 到最上面一行的“连接”界面,点击长得像笔的那个图标,打开 Adb 编辑器界面 12 | 13 | 到你所用的模拟器安装路径下,找到 `adb.exe` 这个文件,在 Adb 路径这里选择这个文件 14 | 15 | 类似下图 16 | 17 | ![](../imgs/常见问题-1.png) 18 | 19 | 如果还不行,可以试着: 20 | 21 | 1. 关闭模拟器和 maa 22 | 2. 到任务管理器中查找 `adb.exe`,结束进程 23 | 3. 再试一次 24 | 25 | ## 支持 pc 端吗? 26 | 不支持,只能用模拟器,pc 端没测试过,而且会抢鼠标 27 | 28 | ## 裁入Pipeline文件时出现错误:Unexpected character 29 | 类似下图的报错 30 | 31 | ![](../imgs/常见问题-2.png) 32 | 33 | 在设置-更新设置中,点击“软件更新”按钮 34 | 35 | ## 支持 macos 吗? 36 | 支持,但是会少两个自定义的社区日常任务和兑换码任务 37 | 38 | 推荐使用 [BlueStacks Air](https://www.bluestacks.com/mac) 模拟器,在设置中打开 adb 调试 39 | 40 | 到这里下载使用新 GUI 的 macos 版本:https://github.com/chesha1/MaaGF2Exilium/releases 41 | 42 | 下载 macos 版本,解压后,使用 `xattr -dr com.apple.quarantine maagf2_folder` 批量解除隔离 -------------------------------------------------------------------------------- /docs/开发相关.md: -------------------------------------------------------------------------------- 1 | # 如何本地开发 2 | ## 本地构建方式 3 | 1. 使用 `git clone --recurse-submodules https://github.com/xxx/xxx.git` 克隆仓库,确保包含了子模块 4 | 2. 安装依赖:本地提供了 `pyproject.toml` 和 `requirements.txt` 文件,可自行运用 conda, uv 等安装依赖 5 | 3. 使用 `scripts/download_deps.py` 下载依赖 6 | 4. 使用 `install.py` 进行构建 7 | 5. 执行 `jq --arg url "https://github.com/xxx/xxx" --arg version "v0.0.0" '. + {"url": $url, "version": $version}' ./assets/interface.json > ./install/interface.json` 8 | 6. 现在构建好的文件夹就是 `install` 9 | 7. 如果需要重新构建,请重新执行第四步 10 | 11 | 12 | ## 测试账号 13 | 目前有公用测试账号:国服官服 2 个、美服 1 个 14 | 15 | 如果自己的账号不够用了,需要测试账号,请进群联系管理员获取 16 | 17 | ## 小技巧 18 | 1. 不建议写死循环点击,不同模拟器反应速度不同,在死循环的时候,可能会把上一个界面的点击点到下一个界面上去 19 | 2. 如果实在识别不到,可以试着缩小 ROI,减少背景对于识别的影响 20 | 3. `FeatureMatch` 在默认设置下,并不一定比 `TemplateMatch` 的识别能力更强 21 | 22 | ## 可视化检查逻辑 23 | 可以使用小工具把 pipeline 生成 mermaid 代码,可视化执行逻辑: 24 | 1. 到 `scripts/json_to_mermaid.py` 中,把 `json_file` 修改成对应文件的路径,Windows 路径前面记得保留 `r` 不进行转义 25 | 例子:`json_file = r"assets\resource\pipeline\public\SimulatedCombat\liveDrillCombatLogic.json"` 26 | 可以直接使用编辑器的复制文件路径功能 27 | 2. 执行 `scripts/json_to_mermaid.py` 28 | 3. 到项目根目录下的 `mermaid.mmd` 中查看相关代码 29 | 4. 使用本地部署的 mermaid 或 https://mermaid.live/ 30 | 5. mermaid.live 中,如果看着字太小,可以打开 Pan & Zoom 31 | 32 | ## 致谢 33 | 34 | - [MaaFramework](https://github.com/MaaXYZ/MaaFramework) 自动化测试框架 35 | 36 | - [MaaPracticeBoilerplate](https://github.com/MaaXYZ/MaaPracticeBoilerplate) MaaFramework项目模板 37 | 38 | - [MFAWPF](https://github.com/SweetSmellFox/MFAWPF) Pipeline协议项目的通用GUI 39 | - [MFATools](https://github.com/SweetSmellFox/MFATools) 开发工具 40 | - [maa-support-extension](https://github.com/neko-para/maa-support-extension) VSCode扩展 41 | ## 规范 42 | > 如果要参与开发,请查看以下规范文档。方便更好的开发和管理。 43 | 44 | - [Json规划说明](/docs/Json文件说明.md) 45 | - [Git提交前缀](/docs/Git提交前缀.md) ~~给自己看的~~ -------------------------------------------------------------------------------- /imgs/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/imgs/1.jpg -------------------------------------------------------------------------------- /imgs/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/imgs/2.jpg -------------------------------------------------------------------------------- /imgs/常见问题-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/imgs/常见问题-1.png -------------------------------------------------------------------------------- /imgs/常见问题-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/imgs/常见问题-2.png -------------------------------------------------------------------------------- /imgs/更换资源.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/imgs/更换资源.png -------------------------------------------------------------------------------- /imgs/界面图片.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DarkLingYun/MaaGF2Exilium/93a64d9ada0d073e2acc242df7903fe1de076061/imgs/界面图片.png -------------------------------------------------------------------------------- /install.bat: -------------------------------------------------------------------------------- 1 | python ./configure.py 2 | python ./install.py -------------------------------------------------------------------------------- /install.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | 3 | import shutil 4 | import sys 5 | import json 6 | 7 | from configure import configure_ocr_model 8 | 9 | 10 | working_dir = Path(__file__).parent 11 | install_path = working_dir / Path("install") 12 | version = len(sys.argv) > 1 and sys.argv[1] or "v0.0.1" 13 | 14 | 15 | def install_deps(): 16 | if not (working_dir / "deps" / "bin").exists(): 17 | print('Please download the MaaFramework to "deps" first.') 18 | print('请先下载 MaaFramework 到 "deps"。') 19 | sys.exit(1) 20 | 21 | shutil.copytree( 22 | working_dir / "deps" / "bin", 23 | install_path, 24 | ignore=shutil.ignore_patterns( 25 | "*MaaDbgControlUnit*", 26 | "*MaaThriftControlUnit*", 27 | "*MaaRpc*", 28 | "*MaaHttp*", 29 | ), 30 | dirs_exist_ok=True, 31 | ) 32 | shutil.copytree( 33 | working_dir / "deps" / "share" / "MaaAgentBinary", 34 | install_path / "MaaAgentBinary", 35 | dirs_exist_ok=True, 36 | ) 37 | 38 | 39 | def install_resource(): 40 | # 手动清理资源目录,防止旧文件残留,节点变化导致的冲突 41 | resource_dir_to_clean = install_path / "resource" 42 | if resource_dir_to_clean.exists(): 43 | print(f"正在清理已存在的资源目录: {resource_dir_to_clean}") 44 | shutil.rmtree(resource_dir_to_clean) 45 | 46 | configure_ocr_model() 47 | 48 | shutil.copytree( 49 | working_dir / "assets" / "resource", 50 | install_path / "resource", 51 | dirs_exist_ok=True, 52 | ) 53 | shutil.copy2( 54 | working_dir / "assets" / "interface.json", 55 | install_path, 56 | ) 57 | 58 | with open(install_path / "interface.json", "r", encoding="utf-8") as f: 59 | interface = json.load(f) 60 | 61 | interface["version"] = version 62 | 63 | with open(install_path / "interface.json", "w", encoding="utf-8") as f: 64 | json.dump(interface, f, ensure_ascii=False, indent=4) 65 | 66 | 67 | def install_chores(): 68 | shutil.copy2( 69 | working_dir / "README.md", 70 | install_path, 71 | ) 72 | shutil.copy2( 73 | working_dir / "LICENSE", 74 | install_path, 75 | ) 76 | 77 | 78 | def install_mfawpf(): 79 | mfa_exe_path = working_dir / "MFA" / "MFAWPF.exe" 80 | install_exe_path = install_path / "MaaGF2Exilium.exe" 81 | 82 | if mfa_exe_path.exists(): 83 | shutil.copy2( 84 | mfa_exe_path, 85 | install_exe_path, 86 | ) 87 | print(f"Copied MFAWPF.exe to {install_exe_path}") 88 | else: 89 | print("Warning: MFA/MFAWPF.exe not found. Skipping copy operation.") 90 | 91 | 92 | if __name__ == "__main__": 93 | install_deps() 94 | install_resource() 95 | install_chores() 96 | install_mfawpf() 97 | 98 | print(f"Install to {install_path} successfully.") 99 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "maagf2exilium" 3 | version = "0.1.0" 4 | description = "Add your description here" 5 | readme = "README.md" 6 | requires-python = ">=3.13" 7 | dependencies = [ 8 | "black", 9 | "maadebugger", 10 | "maafw", 11 | "requests", 12 | "tqdm", 13 | ] 14 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | # This file was autogenerated by uv via the following command: 2 | # uv pip compile pyproject.toml -o requirements.txt 3 | aiofiles==24.1.0 4 | # via nicegui 5 | aiohappyeyeballs==2.6.1 6 | # via aiohttp 7 | aiohttp==3.12.15 8 | # via 9 | # nicegui 10 | # python-socketio 11 | aiosignal==1.4.0 12 | # via aiohttp 13 | annotated-types==0.7.0 14 | # via pydantic 15 | anyio==4.10.0 16 | # via 17 | # httpx 18 | # starlette 19 | # watchfiles 20 | asyncify==0.11.1 21 | # via maadebugger 22 | attrs==25.3.0 23 | # via aiohttp 24 | bidict==0.23.1 25 | # via python-socketio 26 | black==25.1.0 27 | # via maagf2exilium (pyproject.toml) 28 | certifi==2025.8.3 29 | # via 30 | # httpcore 31 | # httpx 32 | # nicegui 33 | # requests 34 | charset-normalizer==3.4.2 35 | # via requests 36 | click==8.2.1 37 | # via 38 | # black 39 | # uvicorn 40 | docutils==0.22 41 | # via nicegui 42 | fastapi==0.116.1 43 | # via nicegui 44 | frozenlist==1.7.0 45 | # via 46 | # aiohttp 47 | # aiosignal 48 | funkify==0.6.0 49 | # via asyncify 50 | h11==0.16.0 51 | # via 52 | # httpcore 53 | # nicegui 54 | # uvicorn 55 | # wsproto 56 | httpcore==1.0.9 57 | # via httpx 58 | httptools==0.6.4 59 | # via uvicorn 60 | httpx==0.28.1 61 | # via nicegui 62 | idna==3.10 63 | # via 64 | # anyio 65 | # httpx 66 | # requests 67 | # yarl 68 | ifaddr==0.2.0 69 | # via nicegui 70 | itsdangerous==2.2.0 71 | # via nicegui 72 | jinja2==3.1.6 73 | # via nicegui 74 | maaagentbinary==1.0.1 75 | # via maafw 76 | maadebugger==1.11.0 77 | # via maagf2exilium (pyproject.toml) 78 | maafw==4.4.1 79 | # via 80 | # maagf2exilium (pyproject.toml) 81 | # maadebugger 82 | markdown2==2.5.4 83 | # via nicegui 84 | markupsafe==3.0.2 85 | # via jinja2 86 | multidict==6.6.3 87 | # via 88 | # aiohttp 89 | # yarl 90 | mypy-extensions==1.1.0 91 | # via black 92 | nicegui==2.22.1 93 | # via maadebugger 94 | numpy==2.3.2 95 | # via maafw 96 | orjson==3.11.1 97 | # via nicegui 98 | packaging==25.0 99 | # via 100 | # black 101 | # maadebugger 102 | pathspec==0.12.1 103 | # via black 104 | pillow==11.3.0 105 | # via maadebugger 106 | platformdirs==4.3.8 107 | # via black 108 | propcache==0.3.2 109 | # via 110 | # aiohttp 111 | # yarl 112 | pscript==0.7.7 113 | # via vbuild 114 | pydantic==2.11.7 115 | # via fastapi 116 | pydantic-core==2.33.2 117 | # via pydantic 118 | pygments==2.19.2 119 | # via nicegui 120 | python-dotenv==1.1.1 121 | # via uvicorn 122 | python-engineio==4.12.2 123 | # via 124 | # nicegui 125 | # python-socketio 126 | python-multipart==0.0.20 127 | # via nicegui 128 | python-socketio==5.13.0 129 | # via nicegui 130 | pyyaml==6.0.2 131 | # via uvicorn 132 | requests==2.32.4 133 | # via maagf2exilium (pyproject.toml) 134 | simple-websocket==1.1.0 135 | # via python-engineio 136 | sniffio==1.3.1 137 | # via anyio 138 | starlette==0.47.2 139 | # via 140 | # fastapi 141 | # nicegui 142 | strenum==0.4.15 143 | # via maafw 144 | tqdm==4.67.1 145 | # via maagf2exilium (pyproject.toml) 146 | typing-extensions==4.14.1 147 | # via 148 | # asyncify 149 | # fastapi 150 | # nicegui 151 | # pydantic 152 | # pydantic-core 153 | # typing-inspection 154 | typing-inspection==0.4.1 155 | # via pydantic 156 | urllib3==2.5.0 157 | # via requests 158 | uvicorn==0.35.0 159 | # via nicegui 160 | uvloop==0.21.0 161 | # via uvicorn 162 | vbuild==0.8.2 163 | # via nicegui 164 | watchfiles==1.1.0 165 | # via 166 | # nicegui 167 | # uvicorn 168 | websockets==15.0.1 169 | # via uvicorn 170 | wsproto==1.2.0 171 | # via simple-websocket 172 | yarl==1.20.1 173 | # via aiohttp 174 | -------------------------------------------------------------------------------- /scripts/download_deps.py: -------------------------------------------------------------------------------- 1 | import os 2 | import requests 3 | import os 4 | import zipfile 5 | import re 6 | import platform 7 | from tqdm import tqdm 8 | 9 | 10 | def get_architecture(): 11 | arch = platform.machine().lower() 12 | arch_mapping = { 13 | "amd64": "x86_64", 14 | "x86_64": "x86_64", 15 | "aarch64": "aarch64", 16 | "arm64": "aarch64", 17 | } 18 | return arch_mapping.get(arch, arch) 19 | 20 | 21 | def download_maa_framework(output_path="deps"): 22 | """ 23 | 下载 MaaFramework 的最新版本 24 | 25 | 参数: 26 | output_path: 输出目录 27 | """ 28 | # 创建输出目录 29 | os.makedirs(output_path, exist_ok=True) 30 | 31 | # GitHub API 地址 32 | api_url = "https://api.github.com/repos/MaaXYZ/MaaFramework/releases/latest" 33 | 34 | try: 35 | # 获取最新版本信息 36 | response = requests.get(api_url) 37 | response.raise_for_status() 38 | release_data = response.json() 39 | 40 | # 查找匹配的资源文件 41 | pattern = f"MAA-win-x86_64" 42 | matching_assets = [ 43 | asset for asset in release_data["assets"] if pattern in asset["name"] 44 | ] 45 | 46 | if not matching_assets: 47 | raise Exception(f"No matching assets found for: MAA-win-x86_64") 48 | 49 | asset = matching_assets[0] 50 | download_url = asset["browser_download_url"] 51 | filename = asset["name"] 52 | file_size = asset["size"] 53 | 54 | # 下载文件 55 | response = requests.get(download_url, stream=True) 56 | response.raise_for_status() 57 | 58 | file_path = os.path.join(output_path, filename) 59 | with open(file_path, "wb") as f: 60 | with tqdm( 61 | total=file_size, 62 | unit="iB", 63 | unit_scale=True, 64 | unit_divisor=1024, 65 | desc=filename, 66 | ) as pbar: 67 | for chunk in response.iter_content(chunk_size=8192): 68 | size = f.write(chunk) 69 | pbar.update(size) 70 | 71 | # 解压文件,然后删除压缩包 72 | with zipfile.ZipFile(file_path, "r") as zip_ref: 73 | file_list = zip_ref.namelist() 74 | with tqdm(total=len(file_list), desc="Extracting", unit="files") as pbar: 75 | for file in file_list: 76 | zip_ref.extract(file, output_path) 77 | pbar.update(1) 78 | os.remove(file_path) 79 | 80 | except requests.exceptions.RequestException as e: 81 | print(f"Error downloading file: {e}") 82 | except Exception as e: 83 | print(f"Error: {e}") 84 | 85 | 86 | def download_mfa_wpf(output_path="MFA"): 87 | """ 88 | 下载 MFAWPF的最新版本 89 | 90 | 参数: 91 | output_path: 输出目录 92 | """ 93 | # 创建输出目录 94 | os.makedirs(output_path, exist_ok=True) 95 | 96 | # GitHub API 地址 97 | api_url = "https://api.github.com/repos/SweetSmellFox/MFAWPF/releases/latest" 98 | 99 | try: 100 | # 获取最新版本信息 101 | response = requests.get(api_url) 102 | response.raise_for_status() 103 | release_data = response.json() 104 | 105 | # 查找匹配的资源文件 106 | pattern = f"MFAWPF" 107 | matching_assets = [ 108 | asset for asset in release_data["assets"] if pattern in asset["name"] 109 | ] 110 | 111 | if not matching_assets: 112 | raise Exception(f"No matching assets found for: MFAWPF") 113 | 114 | asset = matching_assets[0] 115 | download_url = asset["browser_download_url"] 116 | filename = asset["name"] 117 | file_size = asset["size"] 118 | 119 | # 下载文件 120 | response = requests.get(download_url, stream=True) 121 | response.raise_for_status() 122 | 123 | file_path = os.path.join(output_path, filename) 124 | with open(file_path, "wb") as f: 125 | with tqdm( 126 | total=file_size, 127 | unit="iB", 128 | unit_scale=True, 129 | unit_divisor=1024, 130 | desc=filename, 131 | ) as pbar: 132 | for chunk in response.iter_content(chunk_size=8192): 133 | size = f.write(chunk) 134 | pbar.update(size) 135 | 136 | # 解压文件,然后删除压缩包 137 | with zipfile.ZipFile(file_path, "r") as zip_ref: 138 | file_list = zip_ref.namelist() 139 | with tqdm(total=len(file_list), desc="Extracting", unit="files") as pbar: 140 | for file in file_list: 141 | zip_ref.extract(file, output_path) 142 | pbar.update(1) 143 | os.remove(file_path) 144 | 145 | except requests.exceptions.RequestException as e: 146 | print(f"Error downloading file: {e}") 147 | except Exception as e: 148 | print(f"Error: {e}") 149 | 150 | 151 | if __name__ == "__main__": 152 | arch = get_architecture() 153 | if os.name == "nt" and arch == "x86_64": 154 | download_maa_framework() 155 | download_mfa_wpf() 156 | else: 157 | print("当前系统不是 x86_64 的 Windows 系统,请等待后续开发") 158 | -------------------------------------------------------------------------------- /scripts/json_to_mermaid.py: -------------------------------------------------------------------------------- 1 | import json 2 | import re 3 | 4 | 5 | # 新增: 支持 JSONC (带注释的 JSON) 解析的辅助函数 6 | 7 | 8 | def load_jsonc(json_file_path: str): 9 | """读取带注释的 JSON (JSONC) 文件并返回解析后的对象。 10 | 11 | 该实现会在加载前去除: 12 | 1. 单行注释: // comment 13 | 2. 多行注释: /* comment */ 14 | 15 | 如果去除注释后存在多余的尾逗号,会一并清理以避免 json.loads 抛错。 16 | """ 17 | 18 | with open(json_file_path, "r", encoding="utf-8") as f: 19 | text = f.read() 20 | 21 | # 1) 去除多行注释 /* ... */ 22 | text = re.sub(r"/\*.*?\*/", "", text, flags=re.DOTALL) 23 | 24 | # 2) 去除单行注释 //... (注意尽量简洁实现,若字符串中包含 // 可能误杀,但一般 JSON 文件很少如此) 25 | text = re.sub(r"//.*", "", text) 26 | 27 | # 3) 去除多余的尾逗号,例如 "key": "value",}\n 或 [1, 2,]\n 28 | text = re.sub(r",\s*(\}|\])", r"\1", text) 29 | 30 | # 4) 加载 JSON 31 | return json.loads(text) 32 | 33 | 34 | def json_to_mermaid(json_file_path): 35 | # 1. 读取 JSON 文件 36 | # 使用支持 JSONC 的加载函数 37 | data = load_jsonc(json_file_path) 38 | 39 | # 2. Mermaid 结果用列表存储,稍后join输出 40 | mermaid_lines = [] 41 | mermaid_lines.append("graph TD") # 可改为 graph LR, graph TB 等 42 | 43 | # 3. 为每个节点生成唯一ID 44 | node_ids = {} 45 | node_counter = 0 46 | 47 | # 预先为所有节点分配ID 48 | for key in data.keys(): 49 | node_ids[key] = f"node_{node_counter}" 50 | node_counter += 1 51 | 52 | # 4. 遍历大字典 53 | for key, obj in data.items(): 54 | # 取出 doc,如果没有 doc,就用空字符串或其他占位 55 | doc_str = obj.get("doc", "") 56 | 57 | # 构造节点显示内容:键-doc 或仅键 58 | display_content = f"{key}-{doc_str}" if doc_str else key 59 | 60 | # 获取当前节点的ID 61 | current_node_id = node_ids[key] 62 | 63 | # 仅当有 next 且为列表时,才继续画连线 64 | if "next" in obj and isinstance(obj["next"], list): 65 | for i, next_key in enumerate(obj["next"]): 66 | # 找到 next_key 的 doc 67 | next_obj = data.get(next_key, {}) 68 | next_doc_str = next_obj.get("doc", "") 69 | next_display_content = ( 70 | f"{next_key}-{next_doc_str}" if next_doc_str else next_key 71 | ) 72 | 73 | # 获取目标节点的ID 74 | next_node_id = node_ids.get(next_key, f"unknown_{next_key}") 75 | 76 | # 生成一行 Mermaid 连线: nodeA["内容A"] -->|i| nodeB["内容B"] 77 | mermaid_lines.append( 78 | f' {current_node_id}["{display_content}"] -->|{i}| {next_node_id}["{next_display_content}"]' 79 | ) 80 | 81 | # 拼成完整 Mermaid 字符串 82 | mermaid_result = "\n".join(mermaid_lines) 83 | return mermaid_result 84 | 85 | 86 | if __name__ == "__main__": 87 | json_file = r"C:\Files\Codes\MaaGF2Exilium\assets\resource\base\pipeline\public\ClaimRewardTasks\暗香赠礼.json" # 你的 JSON 文件路径 88 | mermaid_code = json_to_mermaid(json_file) 89 | # 文件保存到项目根目录方便复制,控制台输出会有点格式的问题 90 | with open("mermaid.mmd", "w", encoding="utf-8") as f: 91 | f.write(mermaid_code) 92 | # 如果本地支持,可以直接放到本地运行,或者复制到 https://mermaid.live/ 上查看效果 93 | --------------------------------------------------------------------------------