回呼訊息協定
約 2310 字大約 8 分鐘
注意
回呼訊息 (Callback) 隨版本更新快速迭代中,本文件可能過時。如需獲取最新內容可參考 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
肉鴿關卡:不期而遇 / 古堡饋贈StageCombatOpsEnter
肉鴿關卡:普通作戰StageEmergencyOps
肉鴿關卡:緊急作戰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 表示仍在辨識中(過程中的數據)。data(string, required):json 字串,格式為 {"物品ID": 數量, ...},例如 {"2001":18000,"31043":317}。
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
請求 Headers 的 Key-Value 設定(不包含 Content-Type,由 UI 層自行加入)。
bodyRequiredstring
請求 Body 內容(通常為 json 格式的字串)。
subtaskRequiredstring
子任務名稱,辨識具體彙報任務,如 ReportToPenguinStats、ReportToYituliu。
