Files
MaaAssistantArknights/docs
2022-05-08 13:16:13 +08:00
..
2022-05-07 02:04:48 +08:00
2022-05-07 02:04:48 +08:00
2022-05-07 03:05:30 +08:00
2022-05-07 02:04:48 +08:00
2022-05-07 02:04:48 +08:00
2022-05-07 02:04:48 +08:00
2022-05-07 02:04:48 +08:00

MAA使用说明

详细介绍

刷理智

  • 若选项中没有你需要的关卡,请手动进入游戏 蓝色开始按钮 界面,并选择 当前关卡
  • 主界面上的 吃理智吃石头指定次数 三个选项为短路开关,即三个选项中的任一条件达到,均会视为任务完成,停止刷理智。
    • 举例1设置 吃理智药 : 999吃石头 : 10指定次数 : 1。则在刷完 一次 后,由于满足了 指定次数:1 的条件,视为任务完成,停止刷理智。
    • 举例2不勾选 吃理智药、不勾选 吃石头,设置 指定次数 : 100。则在当前可用理智全部刷完后(可能只刷了几次),由于满足了 不吃理智药不吃石头 的条件,视为任务完成,停止刷理智。
  • 刷完自动上传 企鹅物流数据统计
  • 可自定义企鹅物流 ID
  • 识别并显示材料掉落
  • 掉线后会重连,继续刷上次的图
  • 凌晨 4 点刷新后也会重连,继续刷上次的图
  • 支持剿灭模式
  • 支持打完升级了的情况
  • 支持代理失败的情况,会自动放弃本次行动

基建换班

换班策略

自动计算并选择 单设施内的最优解,支持所有通用类技能和特殊技能组合;支持识别经验书、赤金、原石碎片、芯片,分别使用不同的干员组合!

宿舍入驻心情阈值

识别心情进度条的百分比;心情小于该阈值的干员,不会再去上班,直接进驻宿舍。

特殊说明

  • 基建换班目前均为单设施最优解,但非跨设施的全局最优解。例如:巫恋+龙舌兰红云+稀音 等这类单设施内的组合,都是可以正常识别并使用的;迷迭香红松骑士团 这类多个设施间联动的体系,暂不支持使用。
  • 无人机用途 选择 贸易站-龙门币 ,则将额外识别是否有 巫恋组,并优先为其使用。
  • 会客室仅缺一个线索时,会选择对应流派的干员;否则会选择通用干员。
  • 会客室仅当自有线索满时,才会送出线索,并且只送三个。有需要的同学可自行修改 resource/tasks.jsonSelectClue - maxTimes 字段,自定义送出个数。
  • 控制中枢策略太过复杂,目前只考虑 阿米娅诗怀雅凯尔希彩虹小队 及其他心情 +0.05 的干员,后续逐步优化。
  • 部分异格干员会在基建内产生冲突,请留意辅助界面上是否有提示 “干员冲突”,若有请手动再查看下基建换班情况(可能会有某个设施没人)

信用商店随缘买

从左到右依次买,但不会买 家具零件 。有需要的同学可自行修改 resource/tasks.jsonCreditShop-NotToBuy - text 字段,自定义不买的物品。后续版本会尝试开放界面选项

公开招募识别

  • 自动公招和公招识别是两个独立的功能!
  • 自动公招支持使用 加急许可,全自动连续公招!请进入设置中选择~
  • 出 5、6 星都会有弹窗提示

自动肉鸽功能

  • 设置中的三个选项
    • 尽可能往后打:用于刷蜡烛
    • 刷源石锭投资,第一层商店后直接退出:刷源石锭最高效的模式,建议手动选择 古堡观光 (简单)模式
    • 刷源石锭投资,投资后退出:兼顾刷蜡烛和刷源石锭投资的模式
  • 肉鸽使用干员是可以自定义的,默认的干员是作者根据自己的练度随手写的,如果经常作战失败,建议按你自己的练度修改一下,请参考 肉鸽自定义选人方法。后期将优化这里的选人逻辑
  • 支持掉线重连、支持凌晨 4 点更新后继续回去刷
  • 如果软件出现 bug 卡住了,会自动放弃当次探索并重试。但如果经常在某个地方卡住然后放弃、严重影响效率的,欢迎提个 issue 反馈一下~

其他乱七八糟的说明

  • 主界面上要执行的任务,是可以拖动改变顺序的。同样设置中基建换班的顺序,也是可以拖动改变的。
  • 新的活动关卡刚上线的时候可能无法正常识别,一般一两天内软件会自动 OTA 更新资源,更新后即可正常识别。
  • 活动关卡掉落识别到的 未知材料,一般就是活动商店的票据。
  • resource/config.json 中有一些自定义选项,可以尝试根据自己的需要进行修改。
  • 所有点击操作,都是点击按钮内随机位置,并模拟泊松分布(按钮偏中间位置点的概率大,越往旁边点到的概率越小)。
  • 底层算法纯 C++ 开发,并设计了多重的缓存技术,最大限度降低 CPU 和内存占用。
  • 软件支持自动更新✿✿ヽ(°▽°)ノ✿ 推荐非杠精的同学使用测试版,一般来说更新快且 bug 少(什么 MIUI (╯‵□′)╯︵┻━┻
  • 如果新版本自动下载失败,可手动下载后,直接把压缩包放到同目录下,会自动更新的。

我是国际服玩家,可以使用么?

可以!但是目前只支持少部分功能,请参考 这个链接

I'm an international server player, could I use it?

Yes, but there are few supported features, please refer to this link

模拟器支持

蓝叠模拟器

完美支持。需要在模拟器 设置 - 引擎设置 中打开 允许ADB连接

蓝叠模拟器国际版(推荐使用)

完美支持。需要在模拟器 设定 - 进阶 中打开 Android调试桥

蓝叠模拟器 Hyper-V 版本

支持

  1. 在模拟器 设定 - 进阶 中打开 Android调试桥
  2. 下载 adb ,将 platform-tools 文件夹解压到 MeoAsstGui.exe 的同级目录
  3. 在软件 设置 - 连接设置 中填写蓝叠安装目录下 bluestacks.conf 文件的完整路径

夜神模拟器

完美支持

夜神模拟器 安卓 9

完美支持

MuMu 模拟器

支持。但是可能会

  • 一直连接出错:暂时不知道是什么原因,可尝试使用自定义连接
  • 卡在主界面无法识别,过一会提示任务出错:和 MuMu 的渲染方式有关,推荐换模拟器(

MuMu 手游助手(星云引擎)

不支持。没开放 adb 端口

MuMu 模拟器 安卓 9

不支持。adb 截图出来是黑的,不知道怎么整

雷电模拟器

勉强支持。雷电总有莫名其妙的问题,可以试试看,不保证能用(

逍遥模拟器

支持。但可能有莫名其妙的识别错误问题

腾讯手游助手

不支持。没开放 adb 端口

Win11 WSA

不支持。WSA 目前没有实现 AOSP screencap 需要的接口,无法进行截图。等微软支持后会尝试适配

AVD

支持。

自定义连接

  1. 下载 adb ,将 platform-tools 文件夹解压到 MeoAsstGui.exe 的同级目录
  2. 进入软件 设置 - 连接设置,填写自定义 adb 地址(需要填写 IP + 端口,例如 127.0.0.1:5555

注意 : 若是使用手机,在非 16:9 分辨率下,部分功能不稳定(但也凑合能用),尤其是基建,几乎是不可用状态,正在进一步适配中。推荐使用 16:9 分辨率,经过的测试验证最多,也最稳定。

常见问题

软件一打开就闪退

  • 可能性 1: 运行库问题。
    请尝试安装 Visual C++ Redistributable.NET Framework 4.8 后重新运行本软件。
  • 可能性 2: CPU 指令集不支持。
    项目使用 PaddleOCR 对游戏部分界面进行识别。PaddleOCR 用到了较新发布的 CPU 才支持的 AVX 指令集,而一些较老的 CPU 可能并不支持该指令集。
    您可以尝试下载 NoAVX 版本的 PaddleOCR, 解压后替换本软件中同名的文件。这是对于使用不支持 AVX 指令集的 CPU 的用户的性能降低的替代方案,如非必要,请不要使用。
    (具体可以下载 CPU-Z,查看“指令集”中有无 AVX 这一项来判断)
  • 若上述均没有效果,请提 issue。

软件可以正常启动,但一点击开始运行就闪退

设置中的bluestacks.conf, 是给 蓝叠模拟器 Hyper-V 版本 使用的,若非该版本,请不要填写该项。如果确定不是这个问题,请再提 issue ~

连接错误/捕获模拟器窗口错误

提示 : 请根据 使用说明 确定您的模拟器及打开方式正确

  • 方法 1: 使用 自定义连接 的方式连接模拟器
  • 方法 2: 换模拟器,推荐 蓝叠国际版 Nougat 64 bit
  • 方法 3: 根本解决方法 编辑 resource/config.json, 修改(最好是新增)模拟器窗口句柄名,并修改对应的 adb 设置。若您修改后可以提 PR 给我我会感激不尽的_(:з」∠)_

识别错误/任务开始后一直不动、没有反应

提示 : 依次进行,若问题解决,则无需往下

  1. 请根据 模拟器支持情况 确定您的模拟器是受支持的
  2. 修改模拟器分辨率设置,320 dpi
  3. 修改模拟器分辨率设置,横屏 1280 * 720 分辨率
  4. 换模拟器,推荐 蓝叠国际版 Nougat 64 bit ( 请注意蓝叠需要在模拟器设置里开启 adb )
  5. 若仍有问题,请提 issue

自定义连接

  • 下载 adb ,将 platform-tools 文件夹解压到 MeoAsstGui.exe 的同级目录
  • 进入软件 设置 - 连接设置,填写自定义 adb 地址(需要填写 IP + 端口,例如 127.0.0.1:5555

环境变量中已有 adb, 可以不再下载一份么?

可以!请手动修改 resource\config.json - Custom - adb - pathadb.exe, 或其他 adb 的路径

回调消息协议

回调函数原型

typedef void(ASST_CALL* AsstCallback)(int msg, const char* details, void* custom_arg);

参数总览

  • int msg
    消息类型

    enum class AsstMsg
    {
        /* Global Info */
        InternalError = 0,          // 内部错误
        InitFailed,                 // 初始化失败
        ConnectionError,            // 连接相关错误
        AllTasksCompleted,          // 全部任务完成
        /* TaskChain Info */
        TaskChainError = 10000,     // 任务链执行/识别错误
        TaskChainStart,             // 任务链开始
        TaskChainCompleted,         // 任务链完成
        TaskChainExtraInfo,         // 任务链额外信息
        /* SubTask Info */
        SubTaskError = 20000,       // 原子任务执行/识别错误
        SubTaskStart,               // 原子任务开始
        SubTaskCompleted,           // 原子任务完成
        SubTaskExtraInfo            // 原子任务额外信息
    };
    
  • const char* details
    消息详情json 字符串,详见 字段解释

  • void* custom_arg
    调用方自定义参数,会原样传出 AsstCreateEx 接口中的 custom_arg 参数C 系语言可利用该参数传出 this 指针

字段解释

InternalError

Todo

InitFailed

{
    "what": string,     // 错误类型
    "details": object,  // 错误详情
}

ConnectionError

Todo

AllTasksCompleted

{
    "taskchain": string,            // 最后的任务链
    "pre_taskchain": string         // 上一个任务链
}
常见 taskchain 字段
  • StartUp
    开始唤醒
  • Fight
    刷理智
  • Mall
    信用点及购物
  • Recruit
    自动公招
  • RecruitCalc
    公招识别
  • Infrast
    基建换班
  • Roguelike
    无限刷肉鸽
  • Debug
    调试

TaskChain 相关消息

{
    "taskchain": string,            // 当前的任务链
    "pre_taskchain": string         // 上一个任务链
}

TaskChainExtraInfo

Todo

SubTask 相关消息

{
    "subtask": string,             // 子任务名
    "class": string,               // 子任务符号名
    "taskchain": string,           // 当前任务链
    "details": object,             // 详情
}
常见 subtask 字段
  • ProcessTask

    // 对应的 details 字段举例
    {
        "task": "StartButton2",     // 任务名
        "action": 512,
        "exec_times": 1,            // 已执行次数
        "max_times": 999,           // 最大执行次数
        "algorithm": 0
    }
    
  • Todo 其他

常见 task 字段
  • StartButton2
    开始战斗
  • MedicineConfirm
    使用理智药
  • StoneConfirm
    碎石
  • RecruitRefreshConfirm
    公招刷新标签
  • RecruitConfirm
    公招确认招募
  • RecruitNowConfirm
    公招使用加急许可
  • ReportToPenguinStats
    汇报到企鹅数据统计
  • InfrastDormDoubleConfirmButton
    基建宿舍的二次确认按钮,仅当干员冲突时才会有,请提示用户
  • Roguelike1Start
    肉鸽开始探索
  • Roguelike1StageTraderInvestConfirm
    肉鸽投资了源石锭
  • Roguelike1StageTraderInvestSystemFull
    肉鸽投资达到了游戏上限
  • Roguelike1ExitThenAbandon
    肉鸽放弃了本次探索
  • Roguelike1MissionCompletedFlag
    肉鸽战斗完成
  • Roguelike1MissionFailedFlag
    肉鸽战斗失败
  • Roguelike1StageSafeHouseEnter
    肉鸽关卡:诡异行商
  • Roguelike1StageSafeHouseEnter
    肉鸽关卡:安全的角落
  • Roguelike1StageEncounterEnter
    肉鸽关卡:不期而遇/古堡馈赠
  • Roguelike1StageCambatDpsEnter
    肉鸽关卡:普通作战
  • Roguelike1StageEmergencyDps
    肉鸽关卡:紧急作战
  • Roguelike1StageDreadfulFoe
    肉鸽关卡:险路恶敌
  • Todo 其他

SubTaskExtraInfo

{
    "taskchain": string,           // 当前任务链
    "class": string,               // 子任务类型
    "what": string,                // 信息类型
    "details": object,             // 信息详情
}
常见 whatdetails 字段
  • StageDrops
    关卡材料掉落信息

    // 对应的 details 字段举例
    {
        "exceptions": [],
        "resultLabel": true,
        "drops": [              // 本次识别到的掉落材料
            {
                "dropType": "NORMAL_DROP",
                "itemId": "3301",
                "quantity": 2,
                "itemName": "技巧概要·卷1"
            },
            {
                "dropType": "NORMAL_DROP",
                "itemId": "3302",
                "quantity": 1,
                "itemName": "技巧概要·卷2"
            },
            {
                "dropType": "NORMAL_DROP",
                "itemId": "3303",
                "quantity": 2,
                "itemName": "技巧概要·卷3"
            }
        ],
        "dropTypes": [
            {
                "dropTypes": "LMB"
            },
            {
                "dropTypes": "NORMAL_DROP"
            }
        ],
        "stage": {              // 关卡信息
            "stageCode": "CA-5",
            "stageId": "wk_fly_5"
        },
        "stars": 3,             // 行动结束星级
        "fingerprint": "e464bafaa3f92877bbc4fb20209e4169ae49d587499c8d2e72026b96356c591f6a17477a5b345518a00b23be78252e0825070585d33f2109390807672c252a0b",
        "md5": "b40ea51ec7802afa2e86951bffbbc21f",
        "cost": 6.0624,
        "stats": [              // 本次执行期间总的材料掉落
            {
                "itemId": "3301",
                "itemName": "技巧概要·卷1",
                "quantity": 4
            },
            {
                "itemId": "3302",
                "itemName": "技巧概要·卷2",
                "quantity": 3
            },
            {
                "itemId": "3303",
                "itemName": "技巧概要·卷3",
                "quantity": 4
            }
        ]
    }
    
  • RecruitTagsDetected
    公招识别到了 Tags

    // 对应的 details 字段举例
    {
        "tags": [
            "费用回复",
            "防护",
            "先锋干员",
            "辅助干员",
            "近战位"
        ]
    }
    
  • RecruitSpecialTag
    公招识别到了特殊 Tag

    // 对应的 details 字段举例
    {
        "tag": "高级资深干员"
    }
    
  • RecruitResult
    公招识别结果

    // 对应的 details 字段举例
    {
        "level": 4,                 // 总的星级
        "result": [
            {
                "tags": [
                    "削弱"
                ],
                "level": 4,         // 这组 tags 的星级
                "opers": [
                    {
                        "name": "初雪",
                        "level": 5  // 干员星级
                    },
                    {
                        "name": "陨星",
                        "level": 5
                    },
                    {
                        "name": "槐琥",
                        "level": 5
                    },
                    {
                        "name": "夜烟",
                        "level": 4
                    },
                    {
                        "name": "流星",
                        "level": 4
                    }
                ]
            },
            {
                "tags": [
                    "减速",
                    "术师干员"
                ],
                "level": 4,
                "opers": [
                    {
                        "name": "夜魔",
                        "level": 5
                    },
                    {
                        "name": "格雷伊",
                        "level": 4
                    }
                ]
            },
            {
                "tags": [
                    "削弱",
                    "术师干员"
                ],
                "level": 4,
                "opers": [
                    {
                        "name": "夜烟",
                        "level": 4
                    }
                ]
            }
        ]
    }
    
  • RecruitTagsSelected
    公招选择了 Tags

    // 对应的 details 字段举例
    {
        "tags": [
            "减速",
            "术师干员"
        ]
    }
    
  • EnterFacility
    基建进入了设施

    // 对应的 details 字段举例
    {
        "facility": "Mfg",  // 设施名
        "index": 0          // 设施序号
    }
    
  • NotEnoughStaff
    基建可用干员不足

    // 对应的 details 字段举例
    {
        "facility": "Mfg",  // 设施名
        "index": 0          // 设施序号
    }
    
  • ProductOfFacility
    基建产物

    // 对应的 details 字段举例
    {
        "product": "Money", // 产物名
        "facility": "Mfg",  // 设施名
        "index": 0          // 设施序号
    }
    
  • StageInfo
    自动作战关卡信息

    // 对应的 details 字段举例
    {
        "name": string  // 关卡名
    }
    
  • StageInfoError
    自动作战关卡识别错误

  • PenguinId
    企鹅物流 ID

    // 对应的 details 字段举例
    {
        "id": string
    }