回调消息协议
约 2299 字大约 8 分钟
注意
回调消息随版本更新飞速迭代中,本文档可能过时。如需获取最新内容可参考 C# 集成源码
回调函数原型
typedef void(ASST_CALL* AsstCallback)(int msg, const char* details, void* custom_arg);参数总览
int msg
消息类型enum class AsstMsg { /* Global Info */ InternalError = 0, // 内部错误 InitFailed = 1, // 初始化失败 ConnectionInfo = 2, // 连接相关信息 AllTasksCompleted = 3, // 全部任务完成 AsyncCallInfo = 4, // 外部异步调用信息 Destroyed = 5, // 实例已销毁 /* TaskChain Info */ TaskChainError = 10000, // 任务链执行/识别错误 TaskChainStart = 10001, // 任务链开始 TaskChainCompleted = 10002, // 任务链完成 TaskChainExtraInfo = 10003, // 任务链额外信息 TaskChainStopped = 10004, // 任务链手动停止 /* SubTask Info */ SubTaskError = 20000, // 原子任务执行/识别错误 SubTaskStart = 20001, // 原子任务开始 SubTaskCompleted = 20002, // 原子任务完成 SubTaskExtraInfo = 20003, // 原子任务额外信息 SubTaskStopped = 20004, // 原子任务手动停止 /* Web Request */ ReportRequest = 30000, // 上报请求 };const char* details
消息详情,json 字符串,详见 字段解释void* custom_arg
调用方自定义参数,会原样传出AsstCreateEx接口中的custom_arg参数,C 系语言可利用该参数传出this指针
字段解释
InternalError
details 字段为空。
InitFailed
whatRequiredstring
错误类型。
whyRequiredstring
错误原因。
detailsRequiredobject
错误详情。
ConnectionInfo
whatRequiredstring
信息类型。
whyRequiredstring
信息原因。
uuidstring
设备唯一码(连接失败时为空)。
detailsRequiredobject
连接详情。其结构如下:
adb(string, required):AsstConnect接口adb_path参数。address(string, required):AsstConnect接口address参数。config(string, required):AsstConnect接口config参数。
常见 What 字段
ConnectFailed
连接失败Connected
已连接,注意此时的uuid字段值为空(下一步才是获取)UuidGot
已获取到设备唯一码UnsupportedResolution
分辨率不被支持ResolutionError
分辨率获取错误Reconnecting
连接断开(adb / 模拟器 炸了),正在重连Reconnected
连接断开(adb / 模拟器 炸了),重连成功Disconnect
连接断开(adb / 模拟器 炸了),并重试失败ScreencapFailed
截图失败(adb / 模拟器 炸了),并重试失败TouchModeNotAvailable
不支持的触控模式
AsyncCallInfo
uuidRequiredstring
设备唯一码。
whatRequiredstring
回调类型,例如 Connect | Click | Screencap 等。
async_call_idRequirednumber
异步请求 id,即调用 AsstAsyncXXX 时的返回值。
detailsRequiredobject
异步调用详情。其结构如下:
ret(boolean, required): 实际调用的返回值。cost(number, required): 耗时,单位毫秒。
AllTasksCompleted
taskchainRequiredstring
最后的任务链。
uuidRequiredstring
设备唯一码。
finished_tasksRequiredarray<number>
已经运行过的任务 id 列表。
常见 taskchain 字段
StartUp
开始唤醒CloseDown
关闭游戏Fight
刷理智Mall
信用点及购物Recruit
自动公招Infrast
基建换班Award
领取日常奖励Roguelike
无限刷肉鸽Copilot
自动抄作业SSSCopilot
自动抄保全作业Depot
仓库识别OperBox
干员 box 识别Reclamation
生息演算Custom
自定义任务SingleStep
单步任务VideoRecognition
视频识别任务Debug
调试
TaskChain 相关消息
taskchainRequiredstring
当前的任务链。
taskidRequirednumber
当前任务 TaskId。
uuidRequiredstring
设备唯一码。
TaskChainExtraInfo
details 字段为空。
SubTask 相关消息
subtaskRequiredstring
子任务名。
classRequiredstring
子任务符号名。
taskchainRequiredstring
当前任务链。
taskidRequirednumber
当前任务 TaskId。
detailsRequiredobject
详情。
uuidRequiredstring
设备唯一码。
常见 subtask 字段
ProcessTaskdetails字段内容如下:taskRequired
string任务名。
actionRequired
numberAction ID。
exec_timesRequired
number已执行次数。
max_timesRequired
number最大执行次数。
algorithmRequired
number识别算法。
Todo 其他
常见 task 字段
StartButton2
开始战斗MedicineConfirm
使用理智药ExpiringMedicineConfirm
使用 48 小时内过期的理智药StoneConfirm
碎石RecruitRefreshConfirm
公招刷新标签RecruitConfirm
公招确认招募RecruitNowConfirm
公招使用加急许可ReportToPenguinStats
汇报到企鹅数据统计ReportToYituliu
汇报到一图流大数据InfrastDormDoubleConfirmButton
基建宿舍的二次确认按钮,仅当干员冲突时才会有,请提示用户StartExplore
肉鸽开始探索StageTraderInvestConfirm
肉鸽投资了源石锭StageTraderInvestSystemFull
肉鸽投资达到了游戏上限ExitThenAbandon
肉鸽放弃了本次探索MissionCompletedFlag
肉鸽战斗完成MissionFailedFlag
肉鸽战斗失败StageTraderEnter
肉鸽关卡:诡异行商StageSafeHouseEnter
肉鸽关卡:安全的角落StageEncounterEnter
肉鸽关卡:不期而遇/古堡馈赠StageCombatDpsEnter
肉鸽关卡:普通作战StageEmergencyDps
肉鸽关卡:紧急作战StageDreadfulFoe
肉鸽关卡:险路恶敌StartGameTask打开客户端失败(配置文件与传入 client_type 不匹配)- Todo 其他
SubTaskExtraInfo
taskchainRequiredstring
当前任务链。
classRequiredstring
子任务类型。
whatRequiredstring
信息类型。
detailsRequiredobject
信息详情。
uuidRequiredstring
设备唯一码。
常见 what 及 details 字段
StageDrops
关卡材料掉落信息。details字段结构如下:drops(array, required): 本次识别到的掉落材料,数组每一项包含:itemId(string, required): 材料 ID。quantity(number, required): 掉落数量。itemName(string, required): 材料名称。
stage(object, required): 关卡信息,包含:stageCode(string, required): 关卡编号。stageId(string, required): 关卡 ID。
stars(number, required): 行动结束星级。stats(array, required): 本次执行期间总的材料掉落,数组每一项包含:itemId(string, required): 材料 ID。itemName(string, required): 材料名称。quantity(number, required): 总计数量。addQuantity(number, required): 本次新增的掉落数量。
RecruitTagsDetected
公招识别到了 Tags。details字段内容如下:tagsRequired
array<string>识别到的 Tag 列表。
RecruitSpecialTag
公招识别到了特殊 Tag。details字段内容如下:tagRequired
string特殊 Tag 名称,例如
高级资深干员。RecruitResult
公招识别结果。details字段结构如下:tags(array, required): 所有识别到的 tags,目前固定为 5 个。level(number, required): 组合的最高星级。result(array, required): 具体的组合结果,数组每一项包含:tags(array, required): 参与组合的 tags。level(number, required): 这组 tags 的星级。opers(array, required): 可能招募到的干员,数组每一项包含:name(string, required): 干员名称。level(number, required): 干员星级。
RecruitTagsRefreshed
公招刷新了 Tags。details字段内容如下:countRequired
number当前槽位已刷新次数。
refresh_limitRequired
number当前槽位刷新次数上限。
RecruitNoPermit
公招无招聘许可。details字段内容如下:continueRequired
boolean是否继续刷新。
RecruitTagsSelected
公招选择了 Tags。details字段内容如下:tagsRequired
array<string>选择的 Tag 列表。
RecruitSlotCompleted
当前公招槽位任务完成。details字段为空。RecruitError
公招识别错误。details字段为空。EnterFacility
基建进入了设施。details字段内容如下:facilityRequired
string设施名。
indexRequired
number设施序号。
NotEnoughStaff
基建可用干员不足。details字段内容如下:facilityRequired
string设施名。
indexRequired
number设施序号。
ProductOfFacility
基建产物。details字段内容如下:productRequired
string产物名。
facilityRequired
string设施名。
indexRequired
number设施序号。
StageInfo
自动作战关卡信息。details字段内容如下:nameRequired
string关卡名。
StageInfoError
自动作战关卡识别错误。details字段为空。PenguinId
企鹅物流 ID。details字段内容如下:idRequired
string企鹅物流 ID。
Depot
仓库识别结果。details字段结构如下:done(boolean, required): 是否已经识别完了,为false表示仍在识别中(过程中的数据)。arkplanner(object, required): ArkPlanner 格式的数据。lolicon(object, required): lolicon (Arkntools) 格式的数据。
OperBox
干员识别结果。details字段结构如下:done(boolean, required): 是否已经识别完了,为false表示仍在识别中(过程中的数据)。all_oper(array, required): 全干员列表,数组每一项包含:id(string, required): 干员 ID。name(string, required): 干员名称。own(boolean, required): 是否拥有。rarity(number, required): 干员稀有度 [1, 6]。
own_opers(array, required): 已拥有干员的详细信息列表,数组每一项包含:id(string, required): 干员 ID。name(string, required): 干员名称。own(boolean, required): 是否拥有。elite(number, required): 精英等级 [0, 2]。level(number, required): 干员等级。potential(number, required): 干员潜能 [1, 6]。rarity(number, required): 干员稀有度 [1, 6]。
UnsupportedLevel
自动抄作业,不支持的关卡名。details字段为空。
ReportRequest
该字段主要用于核心模块向 UI 层传递网络请求信息,UI 负责执行具体的 HTTP 上报操作。
urlRequiredstring
请求的完整 URL,例如 https://penguin-stats.io/PenguinStats/api/v2/report。
headersRequiredobject
请求头键值对(不包含 Content-Type,UI 层自行添加)。
bodyRequiredstring
请求体内容(通常是 JSON 格式的字符串)。
subtaskRequiredstring
子任务名称,标识具体上报任务,如 ReportToPenguinStats、ReportToYituliu。
