Skip to content

Latest commit

 

History

History
364 lines (316 loc) · 8.28 KB

回调消息协议.md

File metadata and controls

364 lines (316 loc) · 8.28 KB

回调消息协议

回调函数原型

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
    基建换班
  • 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
    基建宿舍的二次确认按钮,仅当干员冲突时才会有,请提示用户
  • 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          // 设施序号
    }